diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2012-03-19 15:59:41 +0100 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-03-26 15:07:28 -0400 |
commit | 4e808a38fdcaeeeddbc05942623279ebe7c02373 (patch) | |
tree | 495e82d14143904cc5f1c036bc1bda0be54928c1 /drivers/net/wireless | |
parent | b9fc106108f3faf2e4430c3bd5721677c3d6a4a1 (diff) | |
download | op-kernel-dev-4e808a38fdcaeeeddbc05942623279ebe7c02373.zip op-kernel-dev-4e808a38fdcaeeeddbc05942623279ebe7c02373.tar.gz |
rt2x00: rt2800usb: fix status register reread logic
Another good catch from Jakub Kicinski. This patch fixes my
recent commit: ed61e2b02027935520d1be884fac0b2ffce8379a
"rt2x00: rt2800usb: rework txdone code"
We should reread status register only when nobody else start already
reading status i.e. test_and_set_bit(TX_STATUS_READING, flags) return 0.
Reported-by: Jakub Kicinski <moorray@wp.pl>
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800usb.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c index f97f846..001735f 100644 --- a/drivers/net/wireless/rt2x00/rt2800usb.c +++ b/drivers/net/wireless/rt2x00/rt2800usb.c @@ -184,7 +184,7 @@ stop_reading: * here again if status reading is needed. */ if (rt2800usb_txstatus_pending(rt2x00dev) && - test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags)) + !test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags)) return true; else return false; |