From b93e6aea8018fde19d1e4bfd57d31d4ead12d7a2 Mon Sep 17 00:00:00 2001 From: Li Feng Date: Wed, 8 Apr 2020 15:34:47 +0800 Subject: [PATCH] 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 --- core/hdd/src/wlan_hdd_main.c | 2 -- core/hdd/src/wlan_hdd_p2p.c | 7 +++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index be055fc774..01cba6cd72 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/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); diff --git a/core/hdd/src/wlan_hdd_p2p.c b/core/hdd/src/wlan_hdd_p2p.c index cbdbadca38..900ed67cce 100644 --- a/core/hdd/src/wlan_hdd_p2p.c +++ b/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) {