On Sun, Oct 15, 2017 at 9:24 PM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote: > Most Bay and Cherry Trail devices use a generic DSDT with all possible > peripheral devices present in the DSDT, with their _STA returning 0x00 or > 0x0f based on AML variables which describe what is actually present on > the board. > > Since ACPI device objects with a 0x00 status (not present) still get an > entry under /sys/bus/acpi/devices, and those entry had an acpi:PNPID > modalias, userspace would end up loading modules for non present hardware. > > This commit fixes this by leaving the modalias empty for non present > devices. This results in 10 modules less being loaded with a generic > distro kernel config on my Cherry Trail test-device (a GPD pocket). Well, what about hotplug? On some systems _STA may change from 0 to nonzero for some devices, so what's going to happen to the modalias then? > Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx> > --- > drivers/acpi/device_sysfs.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/acpi/device_sysfs.c b/drivers/acpi/device_sysfs.c > index 24418932612e..a041689e5701 100644 > --- a/drivers/acpi/device_sysfs.c > +++ b/drivers/acpi/device_sysfs.c > @@ -146,6 +146,10 @@ static int create_pnp_modalias(struct acpi_device *acpi_dev, char *modalias, > int count; > struct acpi_hardware_id *id; > > + /* Avoid unnecessarily loading modules for non present devices. */ > + if (!acpi_device_is_present(acpi_dev)) > + return 0; > + > /* > * Since we skip ACPI_DT_NAMESPACE_HID from the modalias below, 0 should > * be returned if ACPI_DT_NAMESPACE_HID is the only ACPI/PNP ID in the > -- -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html