Skip to content

Commit 417c523

Browse files
committed
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
2 parents 91cd175 + c49de94 commit 417c523

File tree

6 files changed

+11
-4
lines changed

6 files changed

+11
-4
lines changed

drivers/net/wireless/b43/xmit.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,10 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr)
690690
}
691691

692692
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
693+
694+
local_bh_disable();
693695
ieee80211_rx(dev->wl->hw, skb);
696+
local_bh_enable();
694697

695698
#if B43_DEBUG
696699
dev->rx_count++;

drivers/net/wireless/iwlwifi/iwl-agn.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3105,8 +3105,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
31053105
out_pci_disable_device:
31063106
pci_disable_device(pdev);
31073107
out_ieee80211_free_hw:
3108-
ieee80211_free_hw(priv->hw);
31093108
iwl_free_traffic_mem(priv);
3109+
ieee80211_free_hw(priv->hw);
31103110
out:
31113111
return err;
31123112
}

drivers/net/wireless/iwlwifi/iwl3945-base.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4096,8 +4096,8 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
40964096
pci_set_drvdata(pdev, NULL);
40974097
pci_disable_device(pdev);
40984098
out_ieee80211_free_hw:
4099-
ieee80211_free_hw(priv->hw);
41004099
iwl_free_traffic_mem(priv);
4100+
ieee80211_free_hw(priv->hw);
41014101
out:
41024102
return err;
41034103
}

include/net/mac80211.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1669,6 +1669,8 @@ void ieee80211_restart_hw(struct ieee80211_hw *hw);
16691669
* to this function and ieee80211_rx_irqsafe() may not be mixed for a
16701670
* single hardware.
16711671
*
1672+
* Note that right now, this function must be called with softirqs disabled.
1673+
*
16721674
* @hw: the hardware this frame came in on
16731675
* @skb: the buffer to receive, owned by mac80211 after this call
16741676
*/

net/mac80211/ibss.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -544,7 +544,7 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata)
544544
"%pM\n", bss->cbss.bssid, ifibss->bssid);
545545
#endif /* CONFIG_MAC80211_IBSS_DEBUG */
546546

547-
if (bss && memcmp(ifibss->bssid, bss->cbss.bssid, ETH_ALEN)) {
547+
if (bss && !memcmp(ifibss->bssid, bss->cbss.bssid, ETH_ALEN)) {
548548
printk(KERN_DEBUG "%s: Selected IBSS BSSID %pM"
549549
" based on configured SSID\n",
550550
sdata->dev->name, bss->cbss.bssid);
@@ -829,7 +829,7 @@ void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local)
829829
if (!sdata->u.ibss.ssid_len)
830830
continue;
831831
sdata->u.ibss.last_scan_completed = jiffies;
832-
ieee80211_sta_find_ibss(sdata);
832+
mod_timer(&sdata->u.ibss.timer, 0);
833833
}
834834
mutex_unlock(&local->iflist_mtx);
835835
}

net/mac80211/rx.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2453,6 +2453,8 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb)
24532453
struct ieee80211_supported_band *sband;
24542454
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
24552455

2456+
WARN_ON_ONCE(softirq_count() == 0);
2457+
24562458
if (WARN_ON(status->band < 0 ||
24572459
status->band >= IEEE80211_NUM_BANDS))
24582460
goto drop;

0 commit comments

Comments
 (0)