aboutsummaryrefslogtreecommitdiffstats
path: root/net/ieee80211
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2006-01-06 12:11:23 -0500
committerJohn W. Linville <linville@tuxdriver.com>2006-03-22 22:16:52 -0500
commit2dd50801b3ac95988bd5789e4ec576f3480ecc59 (patch)
tree462bcac55a35cc701f7e56000df433bdaba270ee /net/ieee80211
parent5c4df6da580b9317dc0856e235232b95cbc8251c (diff)
[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/ieee80211')
-rw-r--r--net/ieee80211/softmac/ieee80211softmac_assoc.c4
-rw-r--r--net/ieee80211/softmac/ieee80211softmac_auth.c2
-rw-r--r--net/ieee80211/softmac/ieee80211softmac_module.c15
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,
268 if (mac->set_bssid_filter) 268 if (mac->set_bssid_filter)
269 mac->set_bssid_filter(mac->dev, net->bssid); 269 mac->set_bssid_filter(mac->dev, net->bssid);
270 memcpy(mac->ieee->bssid, net->bssid, ETH_ALEN); 270 memcpy(mac->ieee->bssid, net->bssid, ETH_ALEN);
271 mac->dev->flags |= IFF_RUNNING; 271 netif_carrier_on(mac->dev);
272 272
273 mac->association_id = le16_to_cpup(&resp->aid); 273 mac->association_id = le16_to_cpup(&resp->aid);
274} 274}
@@ -346,7 +346,7 @@ ieee80211softmac_handle_disassoc(struct net_device * dev,
346 struct ieee80211softmac_device *mac = ieee80211_priv(dev); 346 struct ieee80211softmac_device *mac = ieee80211_priv(dev);
347 unsigned long flags; 347 unsigned long flags;
348 dprintk(KERN_INFO PFX "got disassoc frame\n"); 348 dprintk(KERN_INFO PFX "got disassoc frame\n");
349 349 netif_carrier_off(dev);
350 spin_lock_irqsave(&mac->lock, flags); 350 spin_lock_irqsave(&mac->lock, flags);
351 mac->associnfo.bssvalid = 0; 351 mac->associnfo.bssvalid = 0;
352 mac->associated = 0; 352 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,
278 kfree(net->challenge); 278 kfree(net->challenge);
279 kfree(net); 279 kfree(net);
280 280
281 /* can't transmit data right now... */
282 netif_carrier_off(mac->dev);
281 /* let's try to re-associate */ 283 /* let's try to re-associate */
282 schedule_work(&mac->associnfo.work); 284 schedule_work(&mac->associnfo.work);
283 spin_unlock_irqrestore(&mac->lock, flags); 285 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)
40 softmac->txrates.default_rate = IEEE80211_CCK_RATE_1MB; 40 softmac->txrates.default_rate = IEEE80211_CCK_RATE_1MB;
41 softmac->txrates.default_fallback = IEEE80211_CCK_RATE_1MB; 41 softmac->txrates.default_fallback = IEEE80211_CCK_RATE_1MB;
42 42
43 /* should we also assign softmac->mgmt_xmit here so 43 /* to start with, we can't send anything ... */
44 * that it is always valid? If so, we probably want 44 netif_carrier_off(dev);
45 * to define a new function for that which just
46 * wraps ieee80211_tx_frame
47 */
48 45
49 /* until associated, we're not ready */
50 dev->flags &= ~IFF_RUNNING;
51
52 return dev; 46 return dev;
53
54err_free_ieee80211:
55 free_ieee80211(dev);
56
57 return NULL;
58} 47}
59 48
60/* Clears the pending work queue items, stops all scans, etc. */ 49/* Clears the pending work queue items, stops all scans, etc. */