|
@@ -650,18 +650,17 @@ static void htt_rx_ring_refill_retry(void *arg)
|
|
qdf_atomic_sub(num, &pdev->rx_ring.refill_debt);
|
|
qdf_atomic_sub(num, &pdev->rx_ring.refill_debt);
|
|
filled = htt_rx_ring_fill_n(pdev, num);
|
|
filled = htt_rx_ring_fill_n(pdev, num);
|
|
|
|
|
|
- qdf_spin_unlock_bh(&(pdev->rx_ring.refill_lock));
|
|
|
|
-
|
|
|
|
if (filled > num) {
|
|
if (filled > num) {
|
|
/* we served ourselves and some other debt */
|
|
/* we served ourselves and some other debt */
|
|
/* sub is safer than = 0 */
|
|
/* sub is safer than = 0 */
|
|
qdf_atomic_sub(filled - num, &pdev->rx_ring.refill_debt);
|
|
qdf_atomic_sub(filled - num, &pdev->rx_ring.refill_debt);
|
|
} else if (num == filled) { /* nothing to be done */
|
|
} else if (num == filled) { /* nothing to be done */
|
|
} else {
|
|
} else {
|
|
|
|
+ qdf_atomic_add(num - filled, &pdev->rx_ring.refill_debt);
|
|
/* we could not fill all, timer must have been started */
|
|
/* we could not fill all, timer must have been started */
|
|
pdev->refill_retry_timer_doubles++;
|
|
pdev->refill_retry_timer_doubles++;
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ qdf_spin_unlock_bh(&(pdev->rx_ring.refill_lock));
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
@@ -3187,13 +3186,14 @@ int htt_rx_msdu_buff_in_order_replenish(htt_pdev_handle pdev, uint32_t num)
|
|
pdev->rx_buff_fill_n_invoked++;
|
|
pdev->rx_buff_fill_n_invoked++;
|
|
filled = htt_rx_ring_fill_n(pdev, num);
|
|
filled = htt_rx_ring_fill_n(pdev, num);
|
|
|
|
|
|
- qdf_spin_unlock_bh(&(pdev->rx_ring.refill_lock));
|
|
|
|
-
|
|
|
|
if (filled > num) {
|
|
if (filled > num) {
|
|
/* we served ourselves and some other debt */
|
|
/* we served ourselves and some other debt */
|
|
/* sub is safer than = 0 */
|
|
/* sub is safer than = 0 */
|
|
qdf_atomic_sub(filled - num, &pdev->rx_ring.refill_debt);
|
|
qdf_atomic_sub(filled - num, &pdev->rx_ring.refill_debt);
|
|
|
|
+ } else {
|
|
|
|
+ qdf_atomic_add(num - filled, &pdev->rx_ring.refill_debt);
|
|
}
|
|
}
|
|
|
|
+ qdf_spin_unlock_bh(&(pdev->rx_ring.refill_lock));
|
|
|
|
|
|
return filled;
|
|
return filled;
|
|
}
|
|
}
|