From 3e530de7b072920503c0c957a52a6418c9344ef5 Mon Sep 17 00:00:00 2001 From: avishad verma Date: Mon, 18 Mar 2024 03:35:25 -0500 Subject: [PATCH 252/296] brcmfmac: OOB crash Fix on iMX platform KSO changes are added in ISR code to fix 43022 DS2 issue. KSO sequence have sleep function which are getting called from ISR context causing the kernel panic. KSO changes in ISR are moved to Inband interrupt case only. Signed-off-by: avishad verma --- .../net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c index 711d2f105cb3..246ecbe5fe4a 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -4426,19 +4426,19 @@ void brcmf_sdio_isr(struct brcmf_sdio *bus, bool in_isr) return; } - /* Wake up the bus if in sleep */ - if (brcmf_sdio_bus_sleep_state(bus)) { - brcmf_sdio_bus_sleep(bus, false, false); - } - /* Count the interrupt call */ bus->sdcnt.intrcount++; if (in_isr) atomic_set(&bus->ipend, 1); - else + else { + /* Wake up the bus if in sleep */ + if (brcmf_sdio_bus_sleep_state(bus)) + brcmf_sdio_bus_sleep(bus, false, false); + if (brcmf_sdio_intr_rstatus(bus)) { brcmf_err("failed backplane access\n"); } + } /* Disable additional interrupts (is this needed now)? */ if (!bus->intr) -- 2.25.1