瀏覽代碼

qcacmn: Fix invalid osif_vdev issue

Currently as part of TDLS connection if TLDS connection is formed
on secondary vdev, osif_vdev of secondary vdev is updated with
osif_vdev of primary vdev.
Due to osif_vdev update, during vdev delete 1st vdev will call
API to free osif_vdev. When 2nd vdev try to access the osif_vdev
it will result in invalid pointer access.

As current change was done to handle case where osif_vdev
for MLO connection used to point to 2 different interfaces
and where secondary interface used to point to NULL/dummy netdev.
As per latest change osif_vdev will point to per vdev dp_link
which for MLO connection will have single interface. So osif_vdev
update is not required anymore.

So, to fix invalid/stale pointer issue remove osif_vdev update for
TDLS connection.

CRs-Fixed: 3814466
Change-Id: Icac13d88411ca572c9d5823a6bd2d3d5b1ba632f
Amit Mehta 1 年之前
父節點
當前提交
4d9cda5abb
共有 1 個文件被更改,包括 3 次插入6 次删除
  1. 3 6
      dp/wifi3.0/dp_main.c

+ 3 - 6
dp/wifi3.0/dp_main.c

@@ -8896,9 +8896,8 @@ dp_set_vdev_param(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
  * @param: parameter type for vdev
  * @val: value
  *
- * If TDLS connection is from secondary vdev, then copy osif_vdev from
- * primary vdev to support RX, update TX bank register info for primary
- * vdev as well.
+ * If TDLS connection is from secondary vdev, then update TX bank register
+ * info for primary vdev as well.
  * If TDLS connection is from primary vdev, same as before.
  *
  * Return: None
@@ -8953,11 +8952,9 @@ dp_update_mlo_vdev_for_tdls(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
 
 	/* If current vdev is not same as primary vdev */
 	if (pri_vdev && pri_vdev != vdev) {
-		dp_info("primary vdev [%d] %pK different with vdev [%d] %pK",
+		dp_info("primary vdev [%d] %pK different from vdev [%d] %pK",
 			pri_vdev->vdev_id, pri_vdev,
 			vdev->vdev_id, vdev);
-		/* update osif_vdev to support RX for vdev */
-		vdev->osif_vdev = pri_vdev->osif_vdev;
 		dp_set_vdev_param(cdp_soc, pri_vdev->vdev_id,
 				  CDP_UPDATE_TDLS_FLAGS, val);
 	}