[PATCH V3 1/1] nvme: add support for dynamic quirk configuration via module parameter
Keith Busch
kbusch at kernel.org
Wed Feb 4 18:10:02 PST 2026
On Wed, Feb 04, 2026 at 11:55:55AM +0100, Maurizio Lombardi wrote:
> Introduce support for enabling or disabling specific NVMe quirks at module
> load time through the `quirks` module parameter.
> This mechanism allows users to apply known quirks dynamically based on the
> device's PCI vendor and device IDs, without requiring to add hardcoded
> entries in the driver and recompiling the kernel.
>
> While the generic PCI new_id sysfs interface exists for dynamic
> configuration, it is insufficient for scenarios where the system fails
> to boot (for example, this has been reported to happen because of the
> bogus_nid quirk). The new_id attribute is writable only after the system
> has booted and sysfs is mounted.
>
> The `quirks` parameter accepts a list of quirk specifications separated by
> a '-' character in the following format:
>
> <VID>:<DID>:<quirk_names>[-<VID>:<DID>:<quirk_names>-..]
>
> Each quirk is represented by its name and can be prefixed with `^` to
> indicate that the quirk should be disabled; quirk names are separated by
> a ',' character.
>
> Example: enable BOGUS_NID and BROKEN_MSI, disable DEALLOCATE_ZEROES:
>
> $ modprobe nvme quirks=7170:2210:bogus_nid,broken_msi,^deallocate_zeroes
Thanks, applied to nvme-7.0.
More information about the Linux-nvme
mailing list