Hi Christoph, On Mon, Sep 15, 2025 at 06:48:22AM -0700, Christoph Hellwig wrote: > On Fri, Sep 12, 2025 at 03:59:31PM -0700, Brian Norris wrote: > > This series primarily adds support for DECLARE_PCI_FIXUP_*() in modules. > > There are a few drivers that already use this, and so they are > > presumably broken when built as modules. > > That's a reall bad idea, because it allows random code to insert quirks > not even bound to the hardware they support.
I see fixups in controller drivers here: drivers/pci/controller/dwc/pci-imx6.c drivers/pci/controller/dwc/pci-keystone.c drivers/pci/controller/dwc/pcie-qcom.c drivers/pci/controller/pci-loongson.c drivers/pci/controller/pci-tegra.c drivers/pci/controller/pcie-iproc-bcma.c drivers/pci/controller/pcie-iproc.c Are any of those somehow wrong? And if they are not wrong, then is this a good reason to disallow making these drivers modular? (Yes, few of them are currently modular; but I don't see why that *must* be the case.) I agree, as with many kernel features, there are plenty of ways to use them incorrectly. But I'm just trying to patch over one rough edge about how to use them incorrectly, and I don't really see why it's such a bad idea. > So no, modules should not allow quirks, but the kernel should probably > be nice enough to fail compilation when someone is attemping that > instead of silently ignoring the quirks. Sure, if consensus says we should not support this, I'd definitely like to make this failure mode more obvious -- likely a build error. Thanks for your thoughts, Brian