diff options
| author | David S. Miller <davem@davemloft.net> | 2009-10-13 14:41:34 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2009-10-13 14:41:34 -0400 |
| commit | 417c5233dbe35ffd6fa9e53754773f73690e1ce3 (patch) | |
| tree | 1cfcbeddd1f91d5811de67dcb86f060d194ad6f5 | |
| parent | 91cd1756cbbe9ba8772e6a5908f20cee56019c0d (diff) | |
| parent | c49de94a56f02768fa881cd7cbf58907910ceb8e (diff) | |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
| -rw-r--r-- | drivers/net/wireless/b43/xmit.c | 3 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn.c | 2 | ||||
| -rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 2 | ||||
| -rw-r--r-- | include/net/mac80211.h | 2 | ||||
| -rw-r--r-- | net/mac80211/ibss.c | 4 | ||||
| -rw-r--r-- | net/mac80211/rx.c | 2 |
6 files changed, 11 insertions, 4 deletions
diff --git a/drivers/net/wireless/b43/xmit.c b/drivers/net/wireless/b43/xmit.c index 892573b27d50..f4e9695ec186 100644 --- a/drivers/net/wireless/b43/xmit.c +++ b/drivers/net/wireless/b43/xmit.c | |||
| @@ -690,7 +690,10 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr) | |||
| 690 | } | 690 | } |
| 691 | 691 | ||
| 692 | memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status)); | 692 | memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status)); |
| 693 | |||
| 694 | local_bh_disable(); | ||
| 693 | ieee80211_rx(dev->wl->hw, skb); | 695 | ieee80211_rx(dev->wl->hw, skb); |
| 696 | local_bh_enable(); | ||
| 694 | 697 | ||
| 695 | #if B43_DEBUG | 698 | #if B43_DEBUG |
| 696 | dev->rx_count++; | 699 | dev->rx_count++; |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c index cdc07c477457..9b5ea8ba7216 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c | |||
| @@ -3105,8 +3105,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | |||
| 3105 | out_pci_disable_device: | 3105 | out_pci_disable_device: |
| 3106 | pci_disable_device(pdev); | 3106 | pci_disable_device(pdev); |
| 3107 | out_ieee80211_free_hw: | 3107 | out_ieee80211_free_hw: |
| 3108 | ieee80211_free_hw(priv->hw); | ||
| 3109 | iwl_free_traffic_mem(priv); | 3108 | iwl_free_traffic_mem(priv); |
| 3109 | ieee80211_free_hw(priv->hw); | ||
| 3110 | out: | 3110 | out: |
| 3111 | return err; | 3111 | return err; |
| 3112 | } | 3112 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index c390dbd877e4..837a193221cf 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
| @@ -4096,8 +4096,8 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e | |||
| 4096 | pci_set_drvdata(pdev, NULL); | 4096 | pci_set_drvdata(pdev, NULL); |
| 4097 | pci_disable_device(pdev); | 4097 | pci_disable_device(pdev); |
| 4098 | out_ieee80211_free_hw: | 4098 | out_ieee80211_free_hw: |
| 4099 | ieee80211_free_hw(priv->hw); | ||
| 4100 | iwl_free_traffic_mem(priv); | 4099 | iwl_free_traffic_mem(priv); |
| 4100 | ieee80211_free_hw(priv->hw); | ||
| 4101 | out: | 4101 | out: |
| 4102 | return err; | 4102 | return err; |
| 4103 | } | 4103 | } |
diff --git a/include/net/mac80211.h b/include/net/mac80211.h index 466859b285e1..c75b960c8ac8 100644 --- a/include/net/mac80211.h +++ b/include/net/mac80211.h | |||
| @@ -1669,6 +1669,8 @@ void ieee80211_restart_hw(struct ieee80211_hw *hw); | |||
| 1669 | * to this function and ieee80211_rx_irqsafe() may not be mixed for a | 1669 | * to this function and ieee80211_rx_irqsafe() may not be mixed for a |
| 1670 | * single hardware. | 1670 | * single hardware. |
| 1671 | * | 1671 | * |
| 1672 | * Note that right now, this function must be called with softirqs disabled. | ||
| 1673 | * | ||
| 1672 | * @hw: the hardware this frame came in on | 1674 | * @hw: the hardware this frame came in on |
| 1673 | * @skb: the buffer to receive, owned by mac80211 after this call | 1675 | * @skb: the buffer to receive, owned by mac80211 after this call |
| 1674 | */ | 1676 | */ |
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 920ec8792f4b..6eaf69823439 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c | |||
| @@ -544,7 +544,7 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata) | |||
| 544 | "%pM\n", bss->cbss.bssid, ifibss->bssid); | 544 | "%pM\n", bss->cbss.bssid, ifibss->bssid); |
| 545 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ | 545 | #endif /* CONFIG_MAC80211_IBSS_DEBUG */ |
| 546 | 546 | ||
| 547 | if (bss && memcmp(ifibss->bssid, bss->cbss.bssid, ETH_ALEN)) { | 547 | if (bss && !memcmp(ifibss->bssid, bss->cbss.bssid, ETH_ALEN)) { |
| 548 | printk(KERN_DEBUG "%s: Selected IBSS BSSID %pM" | 548 | printk(KERN_DEBUG "%s: Selected IBSS BSSID %pM" |
| 549 | " based on configured SSID\n", | 549 | " based on configured SSID\n", |
| 550 | sdata->dev->name, bss->cbss.bssid); | 550 | sdata->dev->name, bss->cbss.bssid); |
| @@ -829,7 +829,7 @@ void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local) | |||
| 829 | if (!sdata->u.ibss.ssid_len) | 829 | if (!sdata->u.ibss.ssid_len) |
| 830 | continue; | 830 | continue; |
| 831 | sdata->u.ibss.last_scan_completed = jiffies; | 831 | sdata->u.ibss.last_scan_completed = jiffies; |
| 832 | ieee80211_sta_find_ibss(sdata); | 832 | mod_timer(&sdata->u.ibss.timer, 0); |
| 833 | } | 833 | } |
| 834 | mutex_unlock(&local->iflist_mtx); | 834 | mutex_unlock(&local->iflist_mtx); |
| 835 | } | 835 | } |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 865fbc09be1a..7170bf4565a8 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c | |||
| @@ -2453,6 +2453,8 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb) | |||
| 2453 | struct ieee80211_supported_band *sband; | 2453 | struct ieee80211_supported_band *sband; |
| 2454 | struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); | 2454 | struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb); |
| 2455 | 2455 | ||
| 2456 | WARN_ON_ONCE(softirq_count() == 0); | ||
| 2457 | |||
| 2456 | if (WARN_ON(status->band < 0 || | 2458 | if (WARN_ON(status->band < 0 || |
| 2457 | status->band >= IEEE80211_NUM_BANDS)) | 2459 | status->band >= IEEE80211_NUM_BANDS)) |
| 2458 | goto drop; | 2460 | goto drop; |
