Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3eff3408 authored by Ananya Gupta's avatar Ananya Gupta Committed by Madan Koyyalamudi
Browse files

qcacld-3.0: Drop packets when vdev_id is invalid

There is a race condition when adapter is deleted after it is
validated in DP rx path and is assigned an invalid vdev id and
eventually invalid net_device.
To fix this, dropping packets if vdev id is found to be invalid
right before assignment to skb->cb.

Change-Id: I4e483363f59a22b45e18da929f749cd9807cc2fc
CRs-Fixed: 3084556
parent 3801523a
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -2150,6 +2150,13 @@ QDF_STATUS hdd_rx_pkt_thread_enqueue_cbk(void *adapter,
		return hdd_adapter->rx_stack(adapter, nbuf_list);

	vdev_id = hdd_adapter->vdev_id;

	if (vdev_id >= WLAN_UMAC_VDEV_ID_MAX) {
		hdd_info_rl("Vdev invalid. Dropping packets");
		qdf_nbuf_list_free(nbuf_list);
		return QDF_STATUS_E_NETDOWN;
	}

	head_ptr = nbuf_list;
	while (head_ptr) {
		qdf_nbuf_cb_update_vdev_id(head_ptr, vdev_id);