aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mpi/mpi-mod.c
diff options
context:
space:
mode:
authorFarhan Ali <[email protected]>2025-10-22 16:47:26 +0000
committerHeiko Carstens <[email protected]>2025-10-24 13:25:43 +0000
commitb45873c3f09153d1ad9b3a7bf9e5c0b0387fd2ea (patch)
treebefd5648a15c4e54a3f57ae93789ce433e51b2a6 /lib/mpi/mpi-mod.c
parents390: Update defconfigs (diff)
downloadkernel-b45873c3f09153d1ad9b3a7bf9e5c0b0387fd2ea.tar.gz
kernel-b45873c3f09153d1ad9b3a7bf9e5c0b0387fd2ea.zip
s390/pci: Restore IRQ unconditionally for the zPCI device
Commit c1e18c17bda6 ("s390/pci: add zpci_set_irq()/zpci_clear_irq()"), introduced the zpci_set_irq() and zpci_clear_irq(), to be used while resetting a zPCI device. Commit da995d538d3a ("s390/pci: implement reset_slot for hotplug slot"), mentions zpci_clear_irq() being called in the path for zpci_hot_reset_device(). But that is not the case anymore and these functions are not called outside of this file. Instead zpci_hot_reset_device() relies on zpci_disable_device() also clearing the IRQs, but misses to reset the zdev->irqs_registered flag. However after a CLP disable/enable reset, the device's IRQ are unregistered, but the flag zdev->irq_registered does not get cleared. It creates an inconsistent state and so arch_restore_msi_irqs() doesn't correctly restore the device's IRQ. This becomes a problem when a PCI driver tries to restore the state of the device through pci_restore_state(). Restore IRQ unconditionally for the device and remove the irq_registered flag as its redundant. Fixes: c1e18c17bda6 ("s390/pci: add zpci_set_irq()/zpci_clear_irq()") Cc: [email protected] Reviewed-by: Niklas Schnelle <[email protected]> Reviewed-by: Matthew Rosato <[email protected]> Signed-off-by: Farhan Ali <[email protected]> Signed-off-by: Heiko Carstens <[email protected]>
Diffstat (limited to 'lib/mpi/mpi-mod.c')
0 files changed, 0 insertions, 0 deletions