|
@@ -6197,6 +6197,7 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|
|
struct dp_peer *peer =
|
|
|
dp_peer_find_hash_find(soc, peer_mac, 0, vdev_id,
|
|
|
DP_MOD_ID_CDP);
|
|
|
+ enum wlan_op_mode vdev_opmode;
|
|
|
|
|
|
if (!peer)
|
|
|
return QDF_STATUS_E_FAILURE;
|
|
@@ -6207,6 +6208,8 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|
|
goto fail;
|
|
|
}
|
|
|
|
|
|
+ /* save vdev related member in case vdev freed */
|
|
|
+ vdev_opmode = vdev->opmode;
|
|
|
pdev = vdev->pdev;
|
|
|
dp_peer_setup_get_reo_hash(vdev, &reo_dest, &hash_based);
|
|
|
|
|
@@ -6238,7 +6241,8 @@ dp_peer_setup_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
|
|
|
|
|
|
qdf_atomic_set(&peer->is_default_route_set, 1);
|
|
|
|
|
|
- dp_peer_rx_init(pdev, peer);
|
|
|
+ if (vdev_opmode != wlan_op_mode_monitor)
|
|
|
+ dp_peer_rx_init(pdev, peer);
|
|
|
|
|
|
dp_peer_ppdu_delayed_ba_init(peer);
|
|
|
|