diff options
Diffstat (limited to 'drivers/staging/wlan-ng')
-rw-r--r-- | drivers/staging/wlan-ng/hfa384x_usb.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/staging/wlan-ng/hfa384x_usb.c b/drivers/staging/wlan-ng/hfa384x_usb.c index a41db5dc8c7..563017aaa36 100644 --- a/drivers/staging/wlan-ng/hfa384x_usb.c +++ b/drivers/staging/wlan-ng/hfa384x_usb.c | |||
@@ -2805,11 +2805,13 @@ void hfa384x_tx_timeout(wlandevice_t *wlandev) | |||
2805 | 2805 | ||
2806 | spin_lock_irqsave(&hw->ctlxq.lock, flags); | 2806 | spin_lock_irqsave(&hw->ctlxq.lock, flags); |
2807 | 2807 | ||
2808 | if (!hw->wlandev->hwremoved && | 2808 | if (!hw->wlandev->hwremoved) { |
2809 | /* Note the bitwise OR, not the logical OR. */ | 2809 | int sched; |
2810 | (!test_and_set_bit(WORK_TX_HALT, &hw->usb_flags) | | 2810 | |
2811 | !test_and_set_bit(WORK_RX_HALT, &hw->usb_flags))) { | 2811 | sched = !test_and_set_bit(WORK_TX_HALT, &hw->usb_flags); |
2812 | schedule_work(&hw->usb_work); | 2812 | sched |= !test_and_set_bit(WORK_RX_HALT, &hw->usb_flags); |
2813 | if (sched) | ||
2814 | schedule_work(&hw->usb_work); | ||
2813 | } | 2815 | } |
2814 | 2816 | ||
2815 | spin_unlock_irqrestore(&hw->ctlxq.lock, flags); | 2817 | spin_unlock_irqrestore(&hw->ctlxq.lock, flags); |