Quellcode durchsuchen

qcacld-3.0: Discard msdu and do not try to access vdev and vdev->pdev

Discard msdu and do not try to access vdev and vdev->pdev, because in
some cases, vdev or vdev->pdev is already freed, but some packet just
received right after wmi vdev delete command is sent.

Change-Id: Ia38768d800da97e361ffa1688ce53c25be6cd597
CRs-Fixed: 2372557
hangtian vor 6 Jahren
Ursprung
Commit
06a41355e6
1 geänderte Dateien mit 2 neuen und 10 gelöschten Zeilen
  1. 2 10
      core/dp/txrx/ol_rx.c

+ 2 - 10
core/dp/txrx/ol_rx.c

@@ -1350,20 +1350,12 @@ ol_rx_discard(struct ol_txrx_vdev_t *vdev,
 	      struct ol_txrx_peer_t *peer, unsigned int tid,
 	      qdf_nbuf_t msdu_list)
 {
-	ol_txrx_pdev_handle pdev = vdev->pdev;
-	htt_pdev_handle htt_pdev = pdev->htt_pdev;
-
 	while (msdu_list) {
 		qdf_nbuf_t msdu = msdu_list;
 
 		msdu_list = qdf_nbuf_next(msdu_list);
-		ol_txrx_dbg(
-			"discard rx %pK from partly-deleted peer %pK (%02x:%02x:%02x:%02x:%02x:%02x)\n",
-			msdu, peer,
-			peer->mac_addr.raw[0], peer->mac_addr.raw[1],
-			peer->mac_addr.raw[2], peer->mac_addr.raw[3],
-			peer->mac_addr.raw[4], peer->mac_addr.raw[5]);
-		htt_rx_desc_frame_free(htt_pdev, msdu);
+		ol_txrx_dbg("discard rx %pK", msdu);
+		qdf_nbuf_free(msdu);
 	}
 }