From e614397417b73c4c1cfb9777bbfe840387caa2b9 Mon Sep 17 00:00:00 2001 From: Jinwei Chen Date: Mon, 25 Mar 2019 19:38:05 +0800 Subject: [PATCH] qcacld-3.0: configure rx_stack when register tdls peer vdev->osif_rx_stack is overwritten to NULL when register tdls peer, meantime, if there is RX data wait ro be indicated in dp_rx_thread queue, host panic since vdev->osif_rx_stack is NULL. configure rx_stack when register tdls peer if dp_rx_thread is true. Change-Id: I4afebce7f5f89485c9661f6394a8fd484409c05c CRs-Fixed: 2423270 --- core/hdd/src/wlan_hdd_assoc.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c index a413b7c3d7c3..9367125d11df 100644 --- a/core/hdd/src/wlan_hdd_assoc.c +++ b/core/hdd/src/wlan_hdd_assoc.c @@ -4032,7 +4032,14 @@ QDF_STATUS hdd_roam_register_tdlssta(struct hdd_adapter *adapter, /* Register the vdev transmit and receive functions */ qdf_mem_zero(&txrx_ops, sizeof(txrx_ops)); - txrx_ops.rx.rx = hdd_rx_packet_cbk; + if (adapter->hdd_ctx->enable_dp_rx_threads) { + txrx_ops.rx.rx = hdd_rx_pkt_thread_enqueue_cbk; + txrx_ops.rx.rx_stack = hdd_rx_packet_cbk; + } else { + txrx_ops.rx.rx = hdd_rx_packet_cbk; + txrx_ops.rx.rx_stack = NULL; + } + cdp_vdev_register(soc, (struct cdp_vdev *)cdp_get_vdev_from_vdev_id(soc, (struct cdp_pdev *)pdev, adapter->vdev_id),