Pārlūkot izejas kodu

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 gadi atpakaļ
vecāks
revīzija
68450abc57
1 mainītis faili ar 11 papildinājumiem un 9 dzēšanām
  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,
 		peer = dp_peer_find_add_id(soc, peer_mac_addr, peer_id,
 					hw_peer_id, vdev_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!!!!");
 				"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,
 	dp_peer_map_ast(soc, peer, peer_mac_addr,