From 20209b5300076c8bc04bda9322eb740cb7726b8b Mon Sep 17 00:00:00 2001 From: Vivek Date: Fri, 11 Jan 2019 17:21:31 +0530 Subject: [PATCH] qcacmn: Move to next rx handler when nbuf clone fails When calling registered mgmt rx handlers, we iterate through all handlers, and for each handler, clone the nbuf and if cloned successfully, we call the corresponding handler. In case of clone failure, we would simply continue, and not move to the next rx handler, and would possibly attempt cloning for large number of iterations. Instead, when clone fails, we should move to the next rx handler Change-Id: Ia752a2e7699f6fd92fe2a363a6ae19ca2e0cc5fe CRs-Fixed: 2379751 --- .../mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_tgt_api.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_tgt_api.c b/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_tgt_api.c index 7ece0e058b27..baeee880299f 100644 --- a/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_tgt_api.c +++ b/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_tgt_api.c @@ -991,8 +991,10 @@ QDF_STATUS tgt_mgmt_txrx_rx_frame_handler( while (rx_handler->next) { copy_buf = qdf_nbuf_clone(buf); - if (!copy_buf) + if (!copy_buf) { + rx_handler = rx_handler->next; continue; + } rx_handler->rx_cb(psoc, peer, copy_buf, mgmt_rx_params, frm_type);