Преглед изворни кода

qcacld-3.0: Release intf addr if failed to open adapter

Release intf addr which is allocated by wlan_hdd_get_intf_addr()
if failed to open adapter when try to add new virtual interface.

Change-Id: Ifa0f795ca06b15da00f8809a764734e8d0fe288d
CRs-Fixed: 2653590
Li Feng пре 5 година
родитељ
комит
b93e6aea80
2 измењених фајлова са 5 додато и 4 уклоњено
  1. 0 2
      core/hdd/src/wlan_hdd_main.c
  2. 5 2
      core/hdd/src/wlan_hdd_p2p.c

+ 0 - 2
core/hdd/src/wlan_hdd_main.c

@@ -6183,8 +6183,6 @@ struct hdd_adapter *hdd_open_adapter(struct hdd_context *hdd_ctx, uint8_t sessio
 	return adapter;
 
 err_free_netdev:
-	wlan_hdd_release_intf_addr(hdd_ctx, adapter->mac_addr.bytes);
-
 	if (ndev)
 		free_netdev(ndev);
 

+ 5 - 2
core/hdd/src/wlan_hdd_p2p.c

@@ -763,10 +763,13 @@ struct wireless_dev *__wlan_hdd_add_virtual_intf(struct wiphy *wiphy,
 					   p2p_device_address.bytes,
 					   name_assign_type, true);
 	} else {
+		uint8_t *device_address =
+					wlan_hdd_get_intf_addr(hdd_ctx, mode);
 		adapter = hdd_open_adapter(hdd_ctx, mode, name,
-					   wlan_hdd_get_intf_addr(hdd_ctx,
-								  mode),
+					   device_address,
 					   name_assign_type, true);
+		if (!adapter)
+			wlan_hdd_release_intf_addr(hdd_ctx, device_address);
 	}
 
 	if (!adapter) {