From patchwork Mon Jul 27 18:53:02 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luis Rodriguez X-Patchwork-Id: 37606 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n6RIrCUQ018601 for ; Mon, 27 Jul 2009 18:53:13 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754180AbZG0SxJ (ORCPT ); Mon, 27 Jul 2009 14:53:09 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753571AbZG0SxJ (ORCPT ); Mon, 27 Jul 2009 14:53:09 -0400 Received: from mail.atheros.com ([12.36.123.2]:31178 "EHLO mail.atheros.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754177AbZG0SxI (ORCPT ); Mon, 27 Jul 2009 14:53:08 -0400 Received: from mail.atheros.com ([10.10.20.105]) by sidewinder.atheros.com for ; Mon, 27 Jul 2009 11:53:09 -0700 Received: from smtp.atheros.com (10.10.18.125) by SC1EXHC-01.global.atheros.com (10.10.20.111) with Microsoft SMTP Server (TLS) id 8.0.751.0; Mon, 27 Jul 2009 11:53:08 -0700 Received: by smtp.atheros.com (sSMTP sendmail emulation); Mon, 27 Jul 2009 11:53:08 -0700 From: "Luis R. Rodriguez" To: CC: , , "Luis R. Rodriguez" Subject: [PATCH 1/3] ath9k: re-order cancelling of work on mac80211 workqueue Date: Mon, 27 Jul 2009 11:53:02 -0700 Message-ID: <1248720784-15671-2-git-send-email-lrodriguez@atheros.com> X-Mailer: git-send-email 1.6.3.3 In-Reply-To: <1248720784-15671-1-git-send-email-lrodriguez@atheros.com> References: <1248720784-15671-1-git-send-email-lrodriguez@atheros.com> MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org ath9k uses the mac80211 workqueue for 4 different types of work: * Led blink work * TX hang monitoring work * internal wiphy schedular work * channel change work done for internal wiphy schedular Since the internal wiphy schedular can end up kicking off some channel channel change work we should first cancel the wiphy schedular work and then the channel change work. The TX hang work can be cancelled second since we're going down anyway. Signed-off-by: Luis R. Rodriguez --- drivers/net/wireless/ath/ath9k/main.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index 1ce1de5..dfcd8d9 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c @@ -1253,9 +1253,9 @@ void ath_detach(struct ath_softc *sc) DPRINTF(sc, ATH_DBG_CONFIG, "Detach ATH hw\n"); ath_deinit_leds(sc); - cancel_work_sync(&sc->chan_work); - cancel_delayed_work_sync(&sc->wiphy_work); cancel_delayed_work_sync(&sc->tx_complete_work); + cancel_delayed_work_sync(&sc->wiphy_work); + cancel_work_sync(&sc->chan_work); for (i = 0; i < sc->num_sec_wiphy; i++) { struct ath_wiphy *aphy = sc->sec_wiphy[i];