APPLIED: [SRU][N/O][PATCH v2 0/1] s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs

Mehmet Basaran mehmet.basaran at canonical.com
Mon Jun 2 10:12:54 UTC 2025


oracular:linux master-next branch had this patch via upstream stable patchset 2025-05-27.
(LP: #2111782)

Applied to noble:linux master-next branch. Thanks


-------------- next part --------------
Zixing Liu <zixing.liu at canonical.com> writes:

> BugLink: https://bugs.launchpad.net/bugs/2111599
>
> SRU Justification:
>
> [Impact]
>
>  * For non-VFs, function zpci_bus_is_isolated_vf() should return false,
>    because they aren't VFs.
>    While zpci_iov_find_parent_pf() specifically checks if a function is a VF,
>    it then simply returns that there is no parent.
>
>  * The simplistic check for a parent then leads to these functions being
>    confused with isolated VFs, and isolating them on their own domain even
>    if sibling PFs should share the domain.
>
> [Fix]
>
>  * This is fixed by explicitly checking if a function is not a VF.
>    (Notice that at this point the case where RIDs are ignored is already
>     handled - and in this case all PCI functions get isolated by being
>     properly detected in zpci_bus_is_multifunction_root().)
>
>  * 8691abd3afaa "s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs"
>
> [Test Plan]
>
>  * Setup Ubuntu Server (24.04/24.10) for s390x on an IBM z17
>    or LinuxONE 5 LPAR.
>
>  * Have at least two PCIe adapters that support PF/VF (like RoCE Express)
>    available in that LPAR.
>
>  * Attach multiple PFs of a PF access mode device (notice that this is only
>    possible with z17 and L1-5 hardware), such as the two PFs of a NETD
>    to the same LPAR.
>
>  * Observe that they are put into separate PCI domains
>    instead of sharing the same domain as expected by drivers.
>
>  * Due to lack of hardware, the verification will be conducted by IBM.
>
>  * The fix was discussed upstream and flagged a stable kernel update.
>
> [Where problems could occur]
>
>  * The modification is limited to one additional if statement
>    across two lines) in function zpci_bus_is_isolated_vf()
>    in file arch/s390/pci/pci_bus.c.
>
>  * Hence the modification will be limited to the s390x-specific parts of
>    the PCI code in the kernel (sometimes refers to as zPCI),
>    and will NOT impact any other architecture!
>
>  * If add. if-statement is not correct and a wrong bool is returned,
>    function zpci_bus_is_isolated_vf() might report and incorrect zpci_bus
>    status. Either isolated when it's not or not-isolated when it really is.
>
>  * And since the new if statement got inserted before the already existing
>   'if (!pdev)', the latter code in function zpci_bus_is_isolated_vf()
>    might be accidentally skipped.
>
>  * All this might lead to a similar confusion of the functions in regard to
>    isolated VFs status and whether isolating them on their own domain even
>    or not, hence proper testing is needed.
>
> [Other Info]
>
>  * Since the commit got upstream accepted with v6.15-rc1,
>    'Questing' is not affected.
>
>  * Plucky got fixed with
>    https://bugs.launchpad.net/bugs/2108854
>    (cherry-picked as https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/plucky/commit/?id=58412b2aa12aa43c90d5414e22898a041ec05e8a)
>
>  * Hence the only remaining affected releases, that contain the offending
>    commit ("s390/pci: Fix handling of isolated VFs"), are oracular and noble.
>
>  * Since this issue does not happen (thus cannot be recreated nor tested)
>    on the IBM Z hardware we have in Canonical, the verification(s) will be
>    done by IBM on most recent hardware.
>
> Niklas Schnelle (1):
>   s390/pci: Fix zpci_bus_is_isolated_vf() for non-VFs
>
>  arch/s390/pci/pci_bus.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> --
> 2.48.1
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 873 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20250602/16a01ec4/attachment.sig>


More information about the kernel-team mailing list