On Thu, May 09, 2024 at 02:21:28PM -0700, Dan Williams wrote: > Recall that there are 461 usages of module_pci_driver() in the kernel. > Every one of those arranges for just registering a PCI driver when the > module is loaded regardless of whether any devices that driver cares > about are present. Sorry, I read your text a bunch of times but I still have no clue what you're trying to tell me. All *I* am saying is since this is a new subsystem and the methods for detecting the scrub functionality are two - either an ACPI table or a GET_SUPPORTED_FEATURES command, then the init function of the subsystem: +static int __init memory_scrub_control_init(void) +{ + return class_register(&scrub_class); +} +subsys_initcall(memory_scrub_control_init); can check for those two things before initializing. If there is no scrubbing functionality, then it can return an error and not load. The same as when we don't load x86 drivers on the wrong vendor and so on. If the check is easy, why not do it? Make more sense? -- Regards/Gruss, Boris. https://people.kernel.org/tglx/notes-about-netiquette