aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Copeland <[email protected]>2011-01-24 23:31:43 -0500
committerJohn W. Linville <[email protected]>2011-01-27 16:40:51 -0500
commit15411c27d203e363592d30ab00803254ebe77b90 (patch)
tree505f58ab21ed2717fe3c67a4b444bf05bac53b6c
parentbc5892c9ec250b36c9287bd52a74d08d75a40152 (diff)
ath5k: fix error handling in ath5k_hw_dma_stop
Review spotted a problem with the error handling in ath5k_hw_dma_stop: a successful return from ath5k_hw_stop_tx_dma will be treated as an error, so we always bail out of the loop after processing a single active queue. As a result, we may not actually stop some queues during reset. Signed-off-by: Bob Copeland <[email protected]> Acked-by: Bruno Randolf <[email protected]> Acked-by: Nick Kossifidis <[email protected]> Reviewed-by: Stanislaw Gruszka <[email protected]> Signed-off-by: John W. Linville <[email protected]>
-rw-r--r--drivers/net/wireless/ath/ath5k/dma.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath5k/dma.c b/drivers/net/wireless/ath/ath5k/dma.c
index 0064be7ce5c9..21091c26a9a5 100644
--- a/drivers/net/wireless/ath/ath5k/dma.c
+++ b/drivers/net/wireless/ath/ath5k/dma.c
@@ -838,9 +838,9 @@ int ath5k_hw_dma_stop(struct ath5k_hw *ah)
for (i = 0; i < qmax; i++) {
err = ath5k_hw_stop_tx_dma(ah, i);
/* -EINVAL -> queue inactive */
- if (err != -EINVAL)
+ if (err && err != -EINVAL)
return err;
}
- return err;
+ return 0;
}