diff options
| author | Nishanth Aravamudan <[email protected]> | 2025-02-07 20:56:00 +0000 |
|---|---|---|
| committer | Bjorn Helgaas <[email protected]> | 2025-03-04 23:23:21 +0000 |
| commit | 479380efe1625e251008d24b2810283db60d6fcd (patch) | |
| tree | 5e73c9e0c1530db5ef9ce7922157e3808fc90f5f /drivers/pci/controller/dwc/pci-keystone.c | |
| parent | PCI: Log debug messages about reset method (diff) | |
| download | kernel-479380efe1625e251008d24b2810283db60d6fcd.tar.gz kernel-479380efe1625e251008d24b2810283db60d6fcd.zip | |
PCI: Avoid reset when disabled via sysfs
After d88f521da3ef ("PCI: Allow userspace to query and set device reset
mechanism"), userspace can disable reset of specific PCI devices by writing
an empty string to the sysfs reset_method file.
However, pci_slot_resettable() does not check pci_reset_supported(), which
means that pci_reset_function() will still reset the device even if
userspace has disabled all the reset methods.
I was able to reproduce this issue with a vfio device passed to a qemu
guest, where I had disabled PCI reset via sysfs.
Add an explicit check of pci_reset_supported() in both
pci_slot_resettable() and pci_bus_resettable() to ensure both the reset
status and reset execution are bypassed if an administrator disables it for
a device.
Link: https://lore.kernel.org/r/[email protected]
Fixes: d88f521da3ef ("PCI: Allow userspace to query and set device reset mechanism")
Signed-off-by: Nishanth Aravamudan <[email protected]>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <[email protected]>
Cc: Alex Williamson <[email protected]>
Cc: Raphael Norwitz <[email protected]>
Cc: Amey Narkhede <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Cc: Yishai Hadas <[email protected]>
Cc: Shameer Kolothum <[email protected]>
Cc: Kevin Tian <[email protected]>
Diffstat (limited to 'drivers/pci/controller/dwc/pci-keystone.c')
0 files changed, 0 insertions, 0 deletions
