diff options
author | David S. Miller <davem@davemloft.net> | 2008-06-28 04:19:40 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-06-28 04:19:40 -0400 |
commit | 1b63ba8a86c85524a8d7e5953b314ce71ebcb9c9 (patch) | |
tree | fe3dc41cbb47ae12b7c3faf6a88b097349e50d5a /drivers/net/wireless/b43 | |
parent | e35c3269edba151e1c703d87068a28ce2cd65bb0 (diff) | |
parent | d420895efb259a78dda50f95289571faa6e10e41 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/wireless/iwlwifi/iwl4965-base.c
Diffstat (limited to 'drivers/net/wireless/b43')
-rw-r--r-- | drivers/net/wireless/b43/leds.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/b43/main.c | 12 |
2 files changed, 11 insertions, 4 deletions
diff --git a/drivers/net/wireless/b43/leds.c b/drivers/net/wireless/b43/leds.c index 36a9c42df835..76f4c7bad8b8 100644 --- a/drivers/net/wireless/b43/leds.c +++ b/drivers/net/wireless/b43/leds.c | |||
@@ -72,6 +72,9 @@ static void b43_led_brightness_set(struct led_classdev *led_dev, | |||
72 | struct b43_wldev *dev = led->dev; | 72 | struct b43_wldev *dev = led->dev; |
73 | bool radio_enabled; | 73 | bool radio_enabled; |
74 | 74 | ||
75 | if (unlikely(b43_status(dev) < B43_STAT_INITIALIZED)) | ||
76 | return; | ||
77 | |||
75 | /* Checking the radio-enabled status here is slightly racy, | 78 | /* Checking the radio-enabled status here is slightly racy, |
76 | * but we want to avoid the locking overhead and we don't care | 79 | * but we want to avoid the locking overhead and we don't care |
77 | * whether the LED has the wrong state for a second. */ | 80 | * whether the LED has the wrong state for a second. */ |
diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index 7bca8e981512..704dd3551fff 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c | |||
@@ -2976,12 +2976,11 @@ static int b43_op_tx(struct ieee80211_hw *hw, | |||
2976 | 2976 | ||
2977 | if (unlikely(skb->len < 2 + 2 + 6)) { | 2977 | if (unlikely(skb->len < 2 + 2 + 6)) { |
2978 | /* Too short, this can't be a valid frame. */ | 2978 | /* Too short, this can't be a valid frame. */ |
2979 | dev_kfree_skb_any(skb); | 2979 | goto drop_packet; |
2980 | return NETDEV_TX_OK; | ||
2981 | } | 2980 | } |
2982 | B43_WARN_ON(skb_shinfo(skb)->nr_frags); | 2981 | B43_WARN_ON(skb_shinfo(skb)->nr_frags); |
2983 | if (unlikely(!dev)) | 2982 | if (unlikely(!dev)) |
2984 | return NETDEV_TX_BUSY; | 2983 | goto drop_packet; |
2985 | 2984 | ||
2986 | /* Transmissions on seperate queues can run concurrently. */ | 2985 | /* Transmissions on seperate queues can run concurrently. */ |
2987 | read_lock_irqsave(&wl->tx_lock, flags); | 2986 | read_lock_irqsave(&wl->tx_lock, flags); |
@@ -2997,7 +2996,12 @@ static int b43_op_tx(struct ieee80211_hw *hw, | |||
2997 | read_unlock_irqrestore(&wl->tx_lock, flags); | 2996 | read_unlock_irqrestore(&wl->tx_lock, flags); |
2998 | 2997 | ||
2999 | if (unlikely(err)) | 2998 | if (unlikely(err)) |
3000 | return NETDEV_TX_BUSY; | 2999 | goto drop_packet; |
3000 | return NETDEV_TX_OK; | ||
3001 | |||
3002 | drop_packet: | ||
3003 | /* We can not transmit this packet. Drop it. */ | ||
3004 | dev_kfree_skb_any(skb); | ||
3001 | return NETDEV_TX_OK; | 3005 | return NETDEV_TX_OK; |
3002 | } | 3006 | } |
3003 | 3007 | ||