Re: [PATCH] wifi: brcmfmac: Check for probe() id argument being NULL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 5/10/2023 12:00 PM, Hans de Goede wrote:
The probe() id argument may be NULL in 2 scenarios:

1. brcmf_pcie_pm_leave_D3() calling brcmf_pcie_probe() to reprobe
    the device.

2. If a user tries to manually bind the driver from sysfs then the sdio /
    pcie / usb probe() function gets called with NULL as id argument.

1. Is being hit by users causing the following oops on resume and causing
wifi to stop working:

BUG: kernel NULL pointer dereference, address: 0000000000000018
<snip>
Hardware name: Dell Inc. XPS 13 9350/0PWNCR, BIDS 1.13.0 02/10/2020
Workgueue: events_unbound async_run_entry_fn
RIP: 0010:brcmf_pcie_probe+Ox16b/0x7a0 [brcmfmac]
<snip>
Call Trace:
  <TASK>
  brcmf_pcie_pm_leave_D3+0xc5/8x1a0 [brcmfmac be3b4cefca451e190fa35be8f00db1bbec293887]
  ? pci_pm_resume+0x5b/0xf0
  ? pci_legacy_resume+0x80/0x80
  dpm_run_callback+0x47/0x150
  device_resume+0xa2/0x1f0
  async_resume+0x1d/0x30
<snip>

Fix this by checking for id being NULL.

In the case of brcmf_pcie_probe() also add a manual lookup of the id
when it is NULL so that fwvid will still get set correctly on reprobe
on resume.

Hi Hans,

Thanks for looking into this and coming up with a fix. Does it make sense to proceed with BRCMF_FWVENDOR_INVALID though. I think it will end up in probe failure in brcmf_fwvid_attach() because of it so why not bail out right away.

Regards,
Arend

Fixes: da6d9c8ecd00 ("wifi: brcmfmac: add firmware vendor info in driver info")
Reported-by: Felix <nimrod4garoa@xxxxxxxxx>
Link: https://lore.kernel.org/regressions/4ef3f252ff530cbfa336f5a0d80710020fc5cb1e.camel@xxxxxxxxx/
Cc: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
---
  drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 2 +-
  drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c   | 8 +++++++-
  drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c    | 2 +-
  3 files changed, 9 insertions(+), 3 deletions(-)

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux