From 6470aba31fbcb07b83513be226ca6f95cb1f8106 Mon Sep 17 00:00:00 2001 From: Dustin Brown Date: Wed, 5 Sep 2018 09:49:58 -0700 Subject: [PATCH] qcacld-3.0: Cancel iface_idle_work in HDD exit The interface idle timeout work is started at the very end of the SoC probe process. During rmmod, this timer is proactively canceled, but a race between probe and rmmod means this cancel is not deterministic. The mirror operation to probe is remove, so cancel this work at the beginning of the remove process. This preserves symmetry between probe and remove, and also deterministically cancels the work, since probe and remove are properly synchronized. Change-Id: Idfd68c0ed638dbe810db72d64f301018db45d522 CRs-Fixed: 2309533 --- core/hdd/src/wlan_hdd_main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index b7491cd852ac..57dea9f098dd 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -6988,6 +6988,8 @@ static void hdd_wlan_exit(struct hdd_context *hdd_ctx) hdd_enter(); + qdf_cancel_delayed_work(&hdd_ctx->iface_idle_work); + hdd_unregister_notifiers(hdd_ctx); #ifdef FEATURE_WLAN_AP_AP_ACS_OPTIMIZE