diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2006-01-06 18:11:23 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-03-23 04:16:52 +0100 |
commit | 2dd50801b3ac95988bd5789e4ec576f3480ecc59 (patch) | |
tree | 462bcac55a35cc701f7e56000df433bdaba270ee /net | |
parent | [PATCH] softmac: convert to use global workqueue (diff) | |
download | linux-2dd50801b3ac95988bd5789e4ec576f3480ecc59.tar.xz linux-2dd50801b3ac95988bd5789e4ec576f3480ecc59.zip |
[PATCH] softmac: correctly use netif_carrier_{on,off}
TODO: add callbacks for ifup/ifdown (see mailing list)
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_assoc.c | 4 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_auth.c | 2 | ||||
-rw-r--r-- | net/ieee80211/softmac/ieee80211softmac_module.c | 15 |
3 files changed, 6 insertions, 15 deletions
diff --git a/net/ieee80211/softmac/ieee80211softmac_assoc.c b/net/ieee80211/softmac/ieee80211softmac_assoc.c index 98487448f2d3..085022fd23c0 100644 --- a/net/ieee80211/softmac/ieee80211softmac_assoc.c +++ b/net/ieee80211/softmac/ieee80211softmac_assoc.c @@ -268,7 +268,7 @@ ieee80211softmac_associated(struct ieee80211softmac_device *mac, if (mac->set_bssid_filter) mac->set_bssid_filter(mac->dev, net->bssid); memcpy(mac->ieee->bssid, net->bssid, ETH_ALEN); - mac->dev->flags |= IFF_RUNNING; + netif_carrier_on(mac->dev); mac->association_id = le16_to_cpup(&resp->aid); } @@ -346,7 +346,7 @@ ieee80211softmac_handle_disassoc(struct net_device * dev, struct ieee80211softmac_device *mac = ieee80211_priv(dev); unsigned long flags; dprintk(KERN_INFO PFX "got disassoc frame\n"); - + netif_carrier_off(dev); spin_lock_irqsave(&mac->lock, flags); mac->associnfo.bssvalid = 0; mac->associated = 0; diff --git a/net/ieee80211/softmac/ieee80211softmac_auth.c b/net/ieee80211/softmac/ieee80211softmac_auth.c index 5a773528110f..6eab2be91870 100644 --- a/net/ieee80211/softmac/ieee80211softmac_auth.c +++ b/net/ieee80211/softmac/ieee80211softmac_auth.c @@ -278,6 +278,8 @@ ieee80211softmac_deauth_from_net(struct ieee80211softmac_device *mac, kfree(net->challenge); kfree(net); + /* can't transmit data right now... */ + netif_carrier_off(mac->dev); /* let's try to re-associate */ schedule_work(&mac->associnfo.work); spin_unlock_irqrestore(&mac->lock, flags); diff --git a/net/ieee80211/softmac/ieee80211softmac_module.c b/net/ieee80211/softmac/ieee80211softmac_module.c index 79ef959a2c11..ea4a19e1122c 100644 --- a/net/ieee80211/softmac/ieee80211softmac_module.c +++ b/net/ieee80211/softmac/ieee80211softmac_module.c @@ -40,21 +40,10 @@ struct net_device *alloc_ieee80211softmac(int sizeof_priv) softmac->txrates.default_rate = IEEE80211_CCK_RATE_1MB; softmac->txrates.default_fallback = IEEE80211_CCK_RATE_1MB; - /* should we also assign softmac->mgmt_xmit here so - * that it is always valid? If so, we probably want - * to define a new function for that which just - * wraps ieee80211_tx_frame - */ + /* to start with, we can't send anything ... */ + netif_carrier_off(dev); - /* until associated, we're not ready */ - dev->flags &= ~IFF_RUNNING; - return dev; - -err_free_ieee80211: - free_ieee80211(dev); - - return NULL; } /* Clears the pending work queue items, stops all scans, etc. */ |