Message ID | 20230913145231.f7795a1ccdab.I2b84810a743469a1bcabf3628262cf54311593f4@changeid (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Johannes Berg |
Headers | show |
Series | wifi: iwlwifi: updates - 2023-09-13 | expand |
On Wed, 2023-09-13 at 14:56 +0300, gregory.greenman@intel.com wrote: > From: Johannes Berg <johannes.berg@intel.com> > > If the bus has no parent due to the topology, platform level device > reset (PLDR) wouldn't work. I learned later that this description is really pretty much wrong - it shouldn't really reference PLDR at all, that's not what's going on here. It should be talking about just the rescanning not working, or so, that's the only part here that matters. Anyway, I can fix it when I commit it, just wanted to state it in public and not just silently do it. johannes
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index a9e00a2cd9ba..51012435e39b 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -2112,8 +2112,11 @@ static void iwl_trans_pcie_removal_wk(struct work_struct *wk) pci_lock_rescan_remove(); pci_dev_put(pdev); pci_stop_and_remove_bus_device(pdev); - if (removal->rescan) - pci_rescan_bus(bus->parent); + if (removal->rescan && bus) { + if (bus->parent) + bus = bus->parent; + pci_rescan_bus(bus); + } pci_unlock_rescan_remove(); kfree(removal);