Re: [PATCH v3 1/4] s390/pci: Hold fmb_lock when enabling or disabling PCI devices

From: Niklas Schnelle

Date: Tue Jun 09 2026 - 15:57:53 EST


On Mon, 2026-06-08 at 13:18 -0400, Omar Elghoul wrote:
> Ensure that fmb_lock is held by pcibios_enable_device() and
> pcibios_disable_device() when calling zpci_fmb_enable_device() or
> zpci_fmb_disable_device(), respectively. Additionally, assert that the
> fmb_lock is held within the latter two functions to prevent future race
> conditions regarding new callers.
>
> Fixes: af0a8a8453f7 ("s390/pci: implement pcibios_add_device")
> Fixes: 944239c59e93 ("s390/pci: implement pcibios_release_device")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Omar Elghoul <oelghoul@xxxxxxxxxxxxx>
> ---
> arch/s390/pci/pci.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c
> index 39bd2adfc240..2910d4038d39 100644
> --- a/arch/s390/pci/pci.c
> +++ b/arch/s390/pci/pci.c
>
--- snip ---
> @@ -639,7 +643,9 @@ int pcibios_enable_device(struct pci_dev *pdev, int mask)
> struct zpci_dev *zdev = to_zpci(pdev);
>
> zpci_debug_init_device(zdev, dev_name(&pdev->dev));
> + mutex_lock(&zdev->fmb_lock);
> zpci_fmb_enable_device(zdev);
> + mutex_unlock(&zdev->fmb_lock);
>
> return pci_enable_resources(pdev, mask);
> }
> @@ -648,7 +654,9 @@ void pcibios_disable_device(struct pci_dev *pdev)
> {
> struct zpci_dev *zdev = to_zpci(pdev);
>
> + mutex_lock(&zdev->fmb_lock);
> zpci_fmb_disable_device(zdev);
> + mutex_unlock(&zdev->fmb_lock);
> zpci_debug_exit_device(zdev);
> }
>

There are two Sashiko findings[0] which look real to me, but they are
pre-existing issues and should really be handled in separate patches.
The issues do look unlikely to be hit randomly and hard to provoke,
still we will have to look into them further.

For what it does this patch reads correct to me and stands on its own.
I also did a bit of testing with lockdep enabled.

So, feel free to add my:

Reviewed-by: Niklas Schnelle <schnelle@xxxxxxxxxxxxx>

Thanks,
Niklas

[0]
https://sashiko.dev/#/patchset/20260608171850.62829-1-oelghoul%40linux.ibm.com