From: Hector Martin <marcan@marcan.st>
To: Kalle Valo <kvalo@codeaurora.org>,
"David S. Miller" <davem@davemloft.net>,
Jakub Kicinski <kuba@kernel.org>,
Rob Herring <robh+dt@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Len Brown <lenb@kernel.org>, Arend van Spriel <aspriel@gmail.com>,
Franky Lin <franky.lin@broadcom.com>,
Hante Meuleman <hante.meuleman@broadcom.com>,
Wright Feng <wright.feng@infineon.com>,
Dmitry Osipenko <digetx@gmail.com>
Cc: "Hector Martin" <marcan@marcan.st>,
"Sven Peter" <sven@svenpeter.dev>,
"Alyssa Rosenzweig" <alyssa@rosenzweig.io>,
"Mark Kettenis" <kettenis@openbsd.org>,
"Rafał Miłecki" <zajec5@gmail.com>,
"Pieter-Paul Giesberts" <pieter-paul.giesberts@broadcom.com>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Hans de Goede" <hdegoede@redhat.com>,
"John W. Linville" <linville@tuxdriver.com>,
"brian m. carlson" <sandals@crustytoothpaste.net>,
"Andy Shevchenko" <andy.shevchenko@gmail.com>,
linux-wireless@vger.kernel.org, netdev@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com,
SHA-cyfmac-dev-list@infineon.com,
"Arend van Spriel" <arend.vanspriel@broadcom.com>,
stable@vger.kernel.org
Subject: [PATCH v4 6/9] brcmfmac: pcie: Fix crashes due to early IRQs
Date: Tue, 1 Feb 2022 01:07:10 +0900 [thread overview]
Message-ID: <20220131160713.245637-7-marcan@marcan.st> (raw)
In-Reply-To: <20220131160713.245637-1-marcan@marcan.st>
The driver was enabling IRQs before the message processing was
initialized. This could cause IRQs to come in too early and crash the
driver. Instead, move the IRQ enable and hostready to a bus preinit
function, at which point everything is properly initialized.
Fixes: 9e37f045d5e7 ("brcmfmac: Adding PCIe bus layer support.")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st>
---
.../wireless/broadcom/brcm80211/brcmfmac/pcie.c | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
index c25f48db1f60..3ff4997e1c97 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
@@ -1315,6 +1315,18 @@ static void brcmf_pcie_down(struct device *dev)
{
}
+static int brcmf_pcie_preinit(struct device *dev)
+{
+ struct brcmf_bus *bus_if = dev_get_drvdata(dev);
+ struct brcmf_pciedev *buspub = bus_if->bus_priv.pcie;
+
+ brcmf_dbg(PCIE, "Enter\n");
+
+ brcmf_pcie_intr_enable(buspub->devinfo);
+ brcmf_pcie_hostready(buspub->devinfo);
+
+ return 0;
+}
static int brcmf_pcie_tx(struct device *dev, struct sk_buff *skb)
{
@@ -1423,6 +1435,7 @@ static int brcmf_pcie_reset(struct device *dev)
}
static const struct brcmf_bus_ops brcmf_pcie_bus_ops = {
+ .preinit = brcmf_pcie_preinit,
.txdata = brcmf_pcie_tx,
.stop = brcmf_pcie_down,
.txctl = brcmf_pcie_tx_ctlpkt,
@@ -1795,9 +1808,6 @@ static void brcmf_pcie_setup(struct device *dev, int ret,
init_waitqueue_head(&devinfo->mbdata_resp_wait);
- brcmf_pcie_intr_enable(devinfo);
- brcmf_pcie_hostready(devinfo);
-
ret = brcmf_attach(&devinfo->pdev->dev);
if (ret)
goto fail;
--
2.33.0
next prev parent reply other threads:[~2022-01-31 16:09 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-31 16:07 [PATCH v4 0/9] misc brcmfmac fixes (M1/T2 series spin-off) Hector Martin
2022-01-31 16:07 ` [PATCH v4 1/9] brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path Hector Martin
2022-01-31 16:26 ` Andy Shevchenko
2022-02-01 12:27 ` Kalle Valo
2022-01-31 16:07 ` [PATCH v4 2/9] brcmfmac: firmware: Allocate space for default boardrev in nvram Hector Martin
2022-01-31 16:26 ` Andy Shevchenko
2022-01-31 16:07 ` [PATCH v4 3/9] brcmfmac: firmware: Do not crash on a NULL board_type Hector Martin
2022-01-31 16:28 ` Andy Shevchenko
2022-01-31 16:49 ` Kalle Valo
2022-01-31 16:53 ` Hector Martin
2022-02-01 5:12 ` Kalle Valo
2022-01-31 17:49 ` Andy Shevchenko
2022-01-31 16:07 ` [PATCH v4 4/9] brcmfmac: pcie: Declare missing firmware files in pcie.c Hector Martin
2022-01-31 16:07 ` [PATCH v4 5/9] brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio Hector Martin
2022-01-31 16:07 ` Hector Martin [this message]
2022-01-31 16:25 ` [PATCH v4 6/9] brcmfmac: pcie: Fix crashes due to early IRQs Andy Shevchenko
2022-01-31 16:07 ` [PATCH v4 7/9] brcmfmac: of: Use devm_kstrdup for board_type & check for errors Hector Martin
2022-01-31 22:33 ` Piotr Masłowski
2022-01-31 16:07 ` [PATCH v4 8/9] brcmfmac: fwil: Constify iovar name arguments Hector Martin
2022-01-31 16:07 ` [PATCH v4 9/9] brcmfmac: pcie: Read the console on init and shutdown Hector Martin
2022-01-31 16:25 ` Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220131160713.245637-7-marcan@marcan.st \
--to=marcan@marcan.st \
--cc=SHA-cyfmac-dev-list@infineon.com \
--cc=alyssa@rosenzweig.io \
--cc=andy.shevchenko@gmail.com \
--cc=arend.vanspriel@broadcom.com \
--cc=aspriel@gmail.com \
--cc=brcm80211-dev-list.pdl@broadcom.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=digetx@gmail.com \
--cc=franky.lin@broadcom.com \
--cc=hante.meuleman@broadcom.com \
--cc=hdegoede@redhat.com \
--cc=kettenis@openbsd.org \
--cc=kuba@kernel.org \
--cc=kvalo@codeaurora.org \
--cc=lenb@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=netdev@vger.kernel.org \
--cc=pieter-paul.giesberts@broadcom.com \
--cc=rafael@kernel.org \
--cc=robh+dt@kernel.org \
--cc=sandals@crustytoothpaste.net \
--cc=stable@vger.kernel.org \
--cc=sven@svenpeter.dev \
--cc=wright.feng@infineon.com \
--cc=zajec5@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).