In case of parallel rx execution, fill_count was being updated by multiple threads and this was causing fill_count to be incorrect in parallel rx execution cases. This was causing rx ring to be under filled and in time was causing rx starvation (data stall). Fix this by: - making sure that we always fill the right number of buffers based on the msdu_count in the in_order_indication message. - making sure that only one execution thread fills the ring - making sure that the lock holder (filling the ring) does not run too long by introducing a max fill limit, in which case the filler will give up and the contender (the other rx execution thread) takes the lock and fills the ring itself. CRs-Fixed: 1103851 Change-Id: I59ee2903d51877afc112a1a76b7a5529f1c6a5c0 |
||
---|---|---|
.. | ||
bmi | ||
cds | ||
dp | ||
hdd | ||
mac | ||
pld | ||
sap | ||
sme | ||
wma |