Kaynağa Gözat

qcacld-3.0: Update vdev_id in hdd_rx_pkt_thread_enqueue_cbk

Local peer_id is being cleaned up across DP, HDD and PS/WMA.
So, any references to local peer_id/sta_id will be replaced
by peer mac address and all interactions between the layers
will be based on peer mac address.

This change invloves updating the vdev_id for the network buffer list
in hdd_rx_pkt_thread_enqueue_cbk for later use in
dp_rx_thread_process_nbufq.

Change-Id: Ibaf5c10a7fe77772d2eea2a10398e0116fdd0344
CRs-Fixed: 2522201
Rakshith Suresh Patkar 5 yıl önce
ebeveyn
işleme
68ed495257
1 değiştirilmiş dosya ile 16 ekleme ve 0 silme
  1. 16 0
      core/hdd/src/wlan_hdd_tx_rx.c

+ 16 - 0
core/hdd/src/wlan_hdd_tx_rx.c

@@ -1909,10 +1909,26 @@ QDF_STATUS hdd_rx_thread_gro_flush_ind_cbk(void *adapter, int rx_ctx_id)
 QDF_STATUS hdd_rx_pkt_thread_enqueue_cbk(void *adapter,
 					 qdf_nbuf_t nbuf_list)
 {
+	struct hdd_adapter *hdd_adapter;
+	uint8_t vdev_id;
+	qdf_nbuf_t head_ptr;
+
 	if (qdf_unlikely(!adapter || !nbuf_list)) {
 		hdd_err("Null params being passed");
 		return QDF_STATUS_E_FAILURE;
 	}
+
+	hdd_adapter = (struct hdd_adapter *)adapter;
+	if (hdd_validate_adapter(hdd_adapter))
+		return QDF_STATUS_E_FAILURE;
+
+	vdev_id = hdd_adapter->vdev_id;
+	head_ptr = nbuf_list;
+	while (head_ptr) {
+		qdf_nbuf_cb_update_vdev_id(head_ptr, vdev_id);
+		head_ptr = qdf_nbuf_next(head_ptr);
+	}
+
 	return dp_rx_enqueue_pkt(cds_get_context(QDF_MODULE_ID_SOC), nbuf_list);
 }