Browse Source

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
Jinwei Chen 6 years ago
parent
commit
e614397417
1 changed files with 8 additions and 1 deletions
  1. 8 1
      core/hdd/src/wlan_hdd_assoc.c

+ 8 - 1
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),