Commit a3df3b6f authored by Michael Buesch's avatar Michael Buesch Committed by John W. Linville

[PATCH] softmac: remove netif_tx_disable when scanning

In the scan section of ieee80211softmac, network transmits are
disabled.  When SoftMAC re-enables transmits, it may override the
wishes of a driver that may have very good reasons for disabling
transmits. At least one failure in bcm43xx can be traced to this
problem. In addition, several unexplained problems may arise from
the unexpected enabling of transmits. Note that making this change
introduces a new bug that would allow transmits for the current session
to be transmitted on the wrong channel; however, the new bug is much
less severe than the one being fixed, as the new one only leads to
a few retransmits, whereas the old one can bring the interface down.

A fix that will not introduce new bugs is being investigated; however,
the current, more serious one should be fixed now.
Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent efa53ebe
...@@ -47,7 +47,6 @@ ieee80211softmac_start_scan(struct ieee80211softmac_device *sm) ...@@ -47,7 +47,6 @@ ieee80211softmac_start_scan(struct ieee80211softmac_device *sm)
sm->scanning = 1; sm->scanning = 1;
spin_unlock_irqrestore(&sm->lock, flags); spin_unlock_irqrestore(&sm->lock, flags);
netif_tx_disable(sm->ieee->dev);
ret = sm->start_scan(sm->dev); ret = sm->start_scan(sm->dev);
if (ret) { if (ret) {
spin_lock_irqsave(&sm->lock, flags); spin_lock_irqsave(&sm->lock, flags);
...@@ -248,7 +247,6 @@ void ieee80211softmac_scan_finished(struct ieee80211softmac_device *sm) ...@@ -248,7 +247,6 @@ void ieee80211softmac_scan_finished(struct ieee80211softmac_device *sm)
if (net) if (net)
sm->set_channel(sm->dev, net->channel); sm->set_channel(sm->dev, net->channel);
} }
netif_wake_queue(sm->ieee->dev);
ieee80211softmac_call_events(sm, IEEE80211SOFTMAC_EVENT_SCAN_FINISHED, NULL); ieee80211softmac_call_events(sm, IEEE80211SOFTMAC_EVENT_SCAN_FINISHED, NULL);
} }
EXPORT_SYMBOL_GPL(ieee80211softmac_scan_finished); EXPORT_SYMBOL_GPL(ieee80211softmac_scan_finished);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment