ath10k: prevent CE from looping indefinitely
authorMichal Kazior <michal.kazior@tieto.com>
Tue, 3 Sep 2013 13:09:58 +0000 (15:09 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Sun, 8 Sep 2013 14:59:32 +0000 (17:59 +0300)
commit5440ce253779fd42ae3b0df64d77430274079ab7
tree18a30b00bf4f08be42a7499f2fd8d358ad1ba444
parentb8a1e00f1a9b861512b17038afda9e2f8b9f9bea
ath10k: prevent CE from looping indefinitely

The double while() could end up running forever.
Inner while() would complete very fast. However
the completion processing could take enough time
for more completions to flow in. In that case the
outer while() would not terminate and run again,
and again. This could happen especially on a slow
host system.

This could lead to a system freeze during heavy
traffic. Note: this doesn't solve all known
starvation issues yet.

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