From c66d4bf13cb68d19734142fafa1bde8d3d10b879 Mon Sep 17 00:00:00 2001 From: Frank Liu Date: Fri, 26 Jan 2018 16:18:18 +0800 Subject: [PATCH] qcacld-3.0: Fix TDLS timer leak when unloading If firmware is stuck while driver unloading, sme_close_session will return failure, and cause later timer leak, in this case continue to release vdev. Change-Id: I137d8d29ec18af1b222eb0b967916fa20b998894 CRs-Fixed: 2176949 --- core/hdd/src/wlan_hdd_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index d7a071f66ead..863eec1c34e5 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -3628,10 +3628,11 @@ int hdd_vdev_destroy(struct hdd_adapter *adapter) } release_vdev: - /* In SSR case, directly exit may cause objects leaks, - * if sme_close_session failed.Free objects anyway. + /* + * In SSR or driver unloading case, directly exit may cause objects + * leak, if sme_close_session failed. Free objects anyway. */ - if (errno && !cds_is_driver_recovering()) + if (errno && !(cds_is_driver_recovering() || cds_is_driver_unloading())) return errno; /* do vdev logical destroy via objmgr */