ath10k: fix bmi exchange tx/rx race
authorMichal Kazior <michal.kazior@tieto.com>
Mon, 14 Jul 2014 13:25:25 +0000 (16:25 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Tue, 15 Jul 2014 08:18:58 +0000 (11:18 +0300)
commit2374b18684dfed2a0588efe4df716d16554da467
tree47be53e5596ff37aafa1a0648778bf3083f63091
parenta491a920ff5c22cc09700a2660f6eac55b1ce4c1
ath10k: fix bmi exchange tx/rx race

It was possible for tx completion not to be
processed. In that case an old stack pointer was
left on copy engine tx ring. Next bmi exchange
would immediately pop it and use complete() on the
completion struct there causing corruption.

Make sure to wait for both tx and rx completions
properly.

Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/pci.c
drivers/net/wireless/ath/ath10k/pci.h