]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit76d01f2dc953245266e1ed519d08b5629bf25124
tree18a30b00bf4f08be42a7499f2fd8d358ad1ba444
parent9c7c181c8afe3ee984f336227af7f660fc9f8ac3
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