Re: [PATCH v4 2/4] s390/pci: Add quirk support and set pdev-non_compliant_bars for ISM devices

Niklas Schnelle
2024-06-26T11:20:58Z

On Wed, 2024-06-26 at 13:15 +0200, Niklas Schnelle wrote:
> On s390 there is a virtual PCI device called ISM which has a few
> pecularities. For one it claims to have a 256 TiB PCI BAR which leads to
> any attempt to ioremap() in its entirety failing. This is problematic
> since mapping the whole BAR is the default behavior of for example QEMU
> with VFIO_PCI_MMAP enabled.
>
> Even if one tried to map this BAR only partially the mapping would not
> be usable on systems with MIO support enabled unless using the function
> handle based PCI instructions directly. This is because of another
> oddity in that this virtual PCI device does not support the newer memory
> I/O (MIO) PCI instructions and legacy PCI instructions are not
> accessible through writeq()/readq() or by user-space when MIO is in use.
>
> Indicate that ISM's BAR is special and does not conform to PCI BAR
> expectations by setting pdev->non_compliant_bars such that drivers not
> specifically developed for ISM can easily ignore it. To this end add
> basic PCI quirks support modeled after x86's arch/x86/pci/fixup.c and
> move the ISM device's PCI ID to the common header to make it accessible.
> Also enable CONFIG_PCI_QUIRKS whenever CONFIG_PCI is enabled.
>
> Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
> ---
>

Fixed the '-' instead of '->' typo in the patch subject locally.
Chances are we get a v5 anyway.

Thanks,
Niklas