qcacmn: Lock rx_desc_pool to collect nbufs and delete later
When multi page alloc is activated, spinlock for rx_desc_pool is being held for more than 2 seconds, resulting in QDF_BUG. The major proportion of the time period is used in unmapping the nbufs. To fix this, lock rx_desc_pool only to collect nbufs from rx_desc in a list and unmap and free the nbufs after releasing the lock. Change-Id: Iff2078a0de56b51712e2f9a7c5ace7a959e2445d CRs-Fixed: 2779498
This commit is contained in:

zatwierdzone przez
snandini

rodzic
0907c4679d
commit
218ec1c24e
@@ -846,6 +846,12 @@ void dp_rx_process_mic_error(struct dp_soc *soc, qdf_nbuf_t nbuf,
|
||||
void dp_2k_jump_handle(struct dp_soc *soc, qdf_nbuf_t nbuf, uint8_t *rx_tlv_hdr,
|
||||
uint16_t peer_id, uint8_t tid);
|
||||
|
||||
#define DP_RX_HEAD_APPEND(head, elem) \
|
||||
do { \
|
||||
qdf_nbuf_set_next((elem), (head)); \
|
||||
(head) = (elem); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define DP_RX_LIST_APPEND(head, tail, elem) \
|
||||
do { \
|
||||
|
Reference in New Issue
Block a user