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@xxxxxxxxxxxxx> > --- > Fixed the '-' instead of '->' typo in the patch subject locally. Chances are we get a v5 anyway. Thanks, Niklas