소스 검색

qcacmn: Fix peer NULL check in peer map handler

For FTM mode we receive peer map events without
peer created. This change checks for peer NULL case
to access peer vdev.

Change-Id: I1998e33ca3d9338dba939dc760dcf7bfdb70d1e3
Crs-fixed: 2212203
sumedh baikady 7 년 전
부모
커밋
68450abc57
1개의 변경된 파일11개의 추가작업 그리고 9개의 파일을 삭제
  1. 11 9
      dp/wifi3.0/dp_peer.c

+ 11 - 9
dp/wifi3.0/dp_peer.c

@@ -969,16 +969,18 @@ dp_rx_peer_map_handler(void *soc_handle, uint16_t peer_id, uint16_t hw_peer_id,
 		peer = dp_peer_find_add_id(soc, peer_mac_addr, peer_id,
 					hw_peer_id, vdev_id);
 
-	qdf_assert_always(peer->vdev);
-	/*
-	 * For every peer MAp message search and set if bss_peer
-	 */
-	if (!(qdf_mem_cmp(peer->mac_addr.raw, peer->vdev->mac_addr.raw,
-					DP_MAC_ADDR_LEN))) {
-		QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
+	if (peer) {
+		qdf_assert_always(peer->vdev);
+		/*
+		 * For every peer MAp message search and set if bss_peer
+		 */
+		if (!(qdf_mem_cmp(peer->mac_addr.raw, peer->vdev->mac_addr.raw,
+				 DP_MAC_ADDR_LEN))) {
+			QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_INFO_HIGH,
 				"vdev bss_peer!!!!");
-		peer->bss_peer = 1;
-		peer->vdev->vap_bss_peer = peer;
+			peer->bss_peer = 1;
+			peer->vdev->vap_bss_peer = peer;
+		}
 	}
 
 	dp_peer_map_ast(soc, peer, peer_mac_addr,