Explorar o código

qcacld-3.0: Get vdev using API dp_vdev_get_ref_by_id

To get the VDEV use API dp_vdev_get_ref_by_id instead of
dp_get_vdev_from_soc_vdev_id_wifi3.

Change-Id: I7d764df517baab0ab92f20e9b8ecaaedd3b44ecd
CRs-Fixed: 2753830
Alok Kumar %!s(int64=4) %!d(string=hai) anos
pai
achega
8504feaebf
Modificáronse 1 ficheiros con 12 adicións e 4 borrados
  1. 12 4
      core/dp/txrx3.0/dp_fisa_rx.c

+ 12 - 4
core/dp/txrx3.0/dp_fisa_rx.c

@@ -817,8 +817,10 @@ dp_rx_fisa_flush_udp_flow(struct dp_vdev *vdev,
 
 	hex_dump_skb_data(fisa_flow->head_skb, false);
 
-	fisa_flow_vdev = dp_get_vdev_from_soc_vdev_id_wifi3(fisa_flow->soc_hdl,
-				QDF_NBUF_CB_RX_VDEV_ID(fisa_flow->head_skb));
+	fisa_flow_vdev = dp_vdev_get_ref_by_id(
+				fisa_flow->soc_hdl,
+				QDF_NBUF_CB_RX_VDEV_ID(fisa_flow->head_skb),
+				DP_MOD_ID_RX);
 	if (qdf_unlikely(!fisa_flow_vdev ||
 					(fisa_flow_vdev != fisa_flow->vdev))) {
 		qdf_nbuf_free(fisa_flow->head_skb);
@@ -851,6 +853,10 @@ dp_rx_fisa_flush_udp_flow(struct dp_vdev *vdev,
 	}
 
 out:
+	if (fisa_flow_vdev)
+		dp_vdev_unref_delete(fisa_flow->soc_hdl,
+				     fisa_flow_vdev,
+				     DP_MOD_ID_RX);
 	fisa_flow->head_skb = NULL;
 	fisa_flow->last_skb = NULL;
 
@@ -1351,7 +1357,7 @@ QDF_STATUS dp_rx_fisa_flush_by_vdev_id(struct dp_soc *soc, uint8_t vdev_id)
 	int i;
 	struct dp_vdev *vdev;
 
-	vdev = dp_get_vdev_from_soc_vdev_id_wifi3(soc, vdev_id);
+	vdev = dp_vdev_get_ref_by_id(soc, vdev_id, DP_MOD_ID_RX);
 	if (qdf_unlikely(!vdev)) {
 		dp_err("null vdev by vdev_id %d", vdev_id);
 		return QDF_STATUS_E_FAILURE;
@@ -1364,6 +1370,7 @@ QDF_STATUS dp_rx_fisa_flush_by_vdev_id(struct dp_soc *soc, uint8_t vdev_id)
 			dp_rx_fisa_flush_flow_wrap(&sw_ft_entry[i]);
 		}
 	}
+	dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_RX);
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -1374,9 +1381,10 @@ void dp_set_fisa_disallowed_for_vdev(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
 	struct dp_soc *soc = (struct dp_soc *)cdp_soc;
 	struct dp_vdev *vdev;
 
-	vdev = dp_get_vdev_from_soc_vdev_id_wifi3(soc, vdev_id);
+	vdev = dp_vdev_get_ref_by_id(soc, vdev_id, DP_MOD_ID_RX);
 	if (qdf_unlikely(!vdev))
 		return;
 
 	vdev->fisa_disallowed[rx_ctx_id] = val;
+	dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_RX);
 }