Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp10243422ybi; Thu, 11 Jul 2019 02:07:59 -0700 (PDT) X-Google-Smtp-Source: APXvYqzuMVWaSkEl9mMNToHOhcI9CGuqCxqgnHqXlxY1W5MfyW/WEpqCPCk0e/i8XzaBxKyKeR95 X-Received: by 2002:a63:5610:: with SMTP id k16mr3238194pgb.335.1562836079085; Thu, 11 Jul 2019 02:07:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1562836079; cv=none; d=google.com; s=arc-20160816; b=W1uFrzGLhLRY+TEv5K97T3Ug464Ih1w+99EPZDEclrE4ztr523P+onJ8iUy8e+ubvM 451a9mU96nWyxl6FMUXhl5e2sbd0hXrFSetbtgFDBQB7La/CjNBBGQiQyUhyQadhX3bO PElgZIUMuKyy4WU+ZR3ieW1PteeKJvZtXT2rzDgy9sAfzOIe6r8yne6xrk8OHEjDKevS xCmCf9dRSVBmZxVHDneZ+AQ5IYBLBtuBxygIVCI81NU4LquS61NMuBklj7ELzZ7pawpN RVLWeX7EuB9RfaJ22PnGMN/WZFlJ1ISC2wMrMwAw5lfiLgchWDfoA08msKs59QdNijHB 9eGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:dkim-filter; bh=KCVKayAmhQt1xmMkpV80hDJZZictg0cFLCwLgu3mjtY=; b=meRrolsfhviHbKDxGe47FZmiU7/Eq0XCkHr5ZRpAQH5jYHaO+C/jgm6ve9I/izrEHc gj5m7uavvNTf96IoOYD7FkHiCRZNI6wEjh+C+hvJZCa+nOTqsfH+bUqok7QFEhl6THjj WgLG0TIXtkAkiDQhBNl5wOhXrcSbb1E6SPtKfjxsPfhph3cVhmeoI1x2K+HqM1ooN6Fa S4yTBIkI4zFtUK3UTZrvF68bPSSOP2pBa8qU8GM9GqW8H3G4U/gbaVvX30j4FCJi+Q16 txgEhAUJUsDIf2feaDAACjbfnWcPvvCwvFyiwQi5nQwIrjpu01JGhIwLStVc1DOQ73Zo LJmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=dkimrelay header.b=c+UbpN4o; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p97si4571017pjp.34.2019.07.11.02.07.44; Thu, 11 Jul 2019 02:07:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=dkimrelay header.b=c+UbpN4o; spf=pass (google.com: best guess record for domain of linux-wireless-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728308AbfGKJF1 (ORCPT + 99 others); Thu, 11 Jul 2019 05:05:27 -0400 Received: from rnd-relay.smtp.broadcom.com ([192.19.229.170]:59796 "EHLO rnd-relay.smtp.broadcom.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728045AbfGKJFY (ORCPT ); Thu, 11 Jul 2019 05:05:24 -0400 Received: from mail-irv-17.broadcom.com (mail-irv-17.lvn.broadcom.net [10.75.224.233]) by rnd-relay.smtp.broadcom.com (Postfix) with ESMTP id CEFAA30C030; Thu, 11 Jul 2019 02:05:22 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com CEFAA30C030 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1562835922; bh=eXMq3HW7Oh5koNi3ssVzL7XpBJJU9K5kfeDRoTV+WTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=c+UbpN4oiwFv928OYd+ME0K+8yslLpwppJz8B72uAw3P9pEYqfqnjjVOzUJSdArY8 UyHAhAdYTTD65hssR7sZo5UcgFTBQ4ocb+YP5WBqPq0+HQD1u1QfNqJfAUyf7p02h+ kcBgm0IVyktWUiW3T5+2ZAoAE4KLDLhC11p2KvjM= Received: from bld-bun-01.bun.broadcom.com (bld-bun-01.bun.broadcom.com [10.176.128.83]) by mail-irv-17.broadcom.com (Postfix) with ESMTP id D475360D22; Thu, 11 Jul 2019 02:05:22 -0700 (PDT) Received: by bld-bun-01.bun.broadcom.com (Postfix, from userid 25152) id 15998B030A9; Thu, 11 Jul 2019 11:05:19 +0200 (CEST) From: Arend van Spriel To: Kalle Valo Cc: linux-wireless@vger.kernel.org, Arend van Spriel Subject: [PATCH 5/7] brcmfmac: avoid firmware commands when bus is down Date: Thu, 11 Jul 2019 11:05:10 +0200 Message-Id: <1562835912-1404-6-git-send-email-arend.vanspriel@broadcom.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1562835912-1404-1-git-send-email-arend.vanspriel@broadcom.com> References: <1562835912-1404-1-git-send-email-arend.vanspriel@broadcom.com> Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Upon rmmod a few attempts are made to inform firmware, but there is no point as the bus is down and these will fail. Avoid them to keep the logs clean. Reported-by: Stefan Wahren Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Franky Lin Signed-off-by: Arend van Spriel --- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 23 ++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index b6d0df3..4e3e9d44 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -1267,17 +1267,21 @@ static void brcmf_link_down(struct brcmf_cfg80211_vif *vif, u16 reason) { struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(vif->wdev.wiphy); struct brcmf_pub *drvr = cfg->pub; + bool bus_up = drvr->bus_if->state == BRCMF_BUS_UP; s32 err = 0; brcmf_dbg(TRACE, "Enter\n"); if (test_and_clear_bit(BRCMF_VIF_STATUS_CONNECTED, &vif->sme_state)) { - brcmf_dbg(INFO, "Call WLC_DISASSOC to stop excess roaming\n"); - err = brcmf_fil_cmd_data_set(vif->ifp, - BRCMF_C_DISASSOC, NULL, 0); - if (err) { - bphy_err(drvr, "WLC_DISASSOC failed (%d)\n", err); + if (bus_up) { + brcmf_dbg(INFO, "Call WLC_DISASSOC to stop excess roaming\n"); + err = brcmf_fil_cmd_data_set(vif->ifp, + BRCMF_C_DISASSOC, NULL, 0); + if (err) + bphy_err(drvr, "WLC_DISASSOC failed (%d)\n", + err); } + if ((vif->wdev.iftype == NL80211_IFTYPE_STATION) || (vif->wdev.iftype == NL80211_IFTYPE_P2P_CLIENT)) cfg80211_disconnected(vif->wdev.netdev, reason, NULL, 0, @@ -1287,7 +1291,8 @@ static void brcmf_link_down(struct brcmf_cfg80211_vif *vif, u16 reason) clear_bit(BRCMF_SCAN_STATUS_SUPPRESS, &cfg->scan_status); brcmf_btcoex_set_mode(vif, BRCMF_BTCOEX_ENABLED, 0); if (vif->profile.use_fwsup != BRCMF_PROFILE_FWSUP_NONE) { - brcmf_set_pmk(vif->ifp, NULL, 0); + if (bus_up) + brcmf_set_pmk(vif->ifp, NULL, 0); vif->profile.use_fwsup = BRCMF_PROFILE_FWSUP_NONE; } brcmf_dbg(TRACE, "Exit\n"); @@ -4985,18 +4990,16 @@ static int brcmf_cfg80211_get_channel(struct wiphy *wiphy, struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); struct net_device *ndev = wdev->netdev; struct brcmf_pub *drvr = cfg->pub; - struct brcmf_if *ifp; struct brcmu_chan ch; enum nl80211_band band = 0; enum nl80211_chan_width width = 0; u32 chanspec; int freq, err; - if (!ndev) + if (!ndev || drvr->bus_if->state != BRCMF_BUS_UP) return -ENODEV; - ifp = netdev_priv(ndev); - err = brcmf_fil_iovar_int_get(ifp, "chanspec", &chanspec); + err = brcmf_fil_iovar_int_get(netdev_priv(ndev), "chanspec", &chanspec); if (err) { bphy_err(drvr, "chanspec failed (%d)\n", err); return err; -- 1.9.1