소스 검색

qcacld-3.0: Fix peer rx tid queue not set up after roaming

After roaming, old peer is deleted and new peer is created,
rx tid queue of new peer need set up again.
In dp_rx_tid_setup_wifi3, if CM is in ROAMING state,
dp_peer_rx_reorder_queue_setup isn't called, REO queue descriptor
isn't configured correctly by host for FW to do reorder/pn check.

To fix it, in dp_rx_tid_setup_wifi3, if CM is in ROAMING state
and not ROAM_START substate, but ROAM SYNC state after roam sync
event received, dp_peer_rx_reorder_queue_setup still can be called,
rx tid queue of new peer will be set up.

Change-Id: I34fbb60ad509a0bc70e112c7ec53a862c8f9ce2d
CRs-Fixed: 3090061
Jianmin Zhu 3 년 전
부모
커밋
fb4cf93504
2개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 1
      core/wma/inc/wma.h
  2. 1 1
      core/wma/src/wma_data.c

+ 1 - 1
core/wma/inc/wma.h

@@ -2325,7 +2325,7 @@ int wma_dp_send_delba_ind(uint8_t vdev_id,
  * is_roam_inprogress() - Is vdev in progress
  * @vdev_id: vdev of interest
  *
- * Return: true if roaming, false otherwise
+ * Return: true if roaming started,  false during roam sync and otherwise
  */
 bool wma_is_roam_in_progress(uint32_t vdev_id);
 

+ 1 - 1
core/wma/src/wma_data.c

@@ -3187,5 +3187,5 @@ bool wma_is_roam_in_progress(uint32_t vdev_id)
 	if (opmode != QDF_STA_MODE && opmode != QDF_P2P_CLIENT_MODE)
 		return false;
 
-	return wlan_cm_is_vdev_roaming(wma->interfaces[vdev_id].vdev);
+	return wlan_cm_is_vdev_roam_started(wma->interfaces[vdev_id].vdev);
 }