浏览代码

qcacmn: Handle peer Rx TID allocation failure

In case where memory alloction failure for RX TID return
appropriate status for CP

Change-Id: I96a3694b05f84034ebacd15d87e58cd1f59207de
CRs-Fixed: 3365642
Chaithanya Garrepalli 2 年之前
父节点
当前提交
e7b9b355df
共有 1 个文件被更改,包括 13 次插入3 次删除
  1. 13 3
      dp/wifi3.0/dp_main.c

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

@@ -7913,7 +7913,13 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
 		dp_peer_vdev_list_add(soc, vdev, peer);
 		dp_peer_find_hash_add(soc, peer);
 
-		dp_peer_rx_tids_create(peer);
+		if (dp_peer_rx_tids_create(peer) != QDF_STATUS_SUCCESS) {
+			dp_alert("RX tid alloc fail for peer %pK (" QDF_MAC_ADDR_FMT ")",
+				 peer, QDF_MAC_ADDR_REF(peer->mac_addr.raw));
+			dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_CDP);
+			return QDF_STATUS_E_FAILURE;
+		}
+
 		if (IS_MLO_DP_MLD_PEER(peer))
 			dp_mld_peer_init_link_peers_info(peer);
 
@@ -8069,7 +8075,11 @@ dp_peer_create_wifi3(struct cdp_soc_t *soc_hdl, uint8_t vdev_id,
 		peer->sta_self_peer = 1;
 	}
 
-	dp_peer_rx_tids_create(peer);
+	if (dp_peer_rx_tids_create(peer) != QDF_STATUS_SUCCESS) {
+		dp_alert("RX tid alloc fail for peer %pK (" QDF_MAC_ADDR_FMT ")",
+			 peer, QDF_MAC_ADDR_REF(peer->mac_addr.raw));
+		goto fail;
+	}
 
 	peer->valid = 1;
 	dp_local_peer_id_alloc(pdev, peer);
@@ -12160,7 +12170,7 @@ QDF_STATUS dp_sysfs_deinitialize_stats(struct dp_soc *soc_hdl)
 
 	status = qdf_event_destroy(&soc->sysfs_config->sysfs_txrx_fw_request_done);
 	if (status != QDF_STATUS_SUCCESS)
-		dp_cdp_err("Failed to destroy event sysfs_txrx_fw_request_done ");
+		dp_cdp_err("Failed to destroy event sysfs_txrx_fw_request_done");
 
 	qdf_mutex_destroy(&soc->sysfs_config->sysfs_read_lock);
 	qdf_spinlock_destroy(&soc->sysfs_config->rw_stats_lock);