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