[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>
This commit is contained in:
Родитель
5c4df6da58
Коммит
2dd50801b3
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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. */
|
||||
|
|
Загрузка…
Ссылка в новой задаче