On Wed, 2025-08-13 at 10:08 -0700, Farhan Ali wrote:Yeah agreed, will remove the irqs_registered from zdev as its not needed anymore.
Commit c1e18c17bda6 ("s390/pci: add zpci_set_irq()/zpci_clear_irq()"),This would make zdev->irqs_registered effectively without function so
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.
However after a CLP disable/enable reset (zpci_hot_reset_device),
the airq setup of the device will need to be restored. Since we
are no longer calling zpci_clear_airq() in the reset path, we should
restore the airq for device unconditionally.
Signed-off-by: Farhan Ali <alifm@xxxxxxxxxxxxx>
---
arch/s390/pci/pci_irq.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/s390/pci/pci_irq.c b/arch/s390/pci/pci_irq.c
index 84482a921332..8b5493f0dee0 100644
--- a/arch/s390/pci/pci_irq.c
+++ b/arch/s390/pci/pci_irq.c
@@ -427,8 +427,7 @@ bool arch_restore_msi_irqs(struct pci_dev *pdev)
{
struct zpci_dev *zdev = to_zpci(pdev);
- if (!zdev->irqs_registered)
- zpci_set_irq(zdev);
+ zpci_set_irq(zdev);
return true;
}
the patch should remove that field from struct zpci_dev and
zpci_set_irq()/zpci_clear_irq(). Alternatively you could also clear
zdev->irqs_registed in zpci_disable_device(). I think the former is
cleaner though.
Thanks,
Niklas