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]>
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;
}