Hello, > Problem is still present in 6.3-rc1 . Bisecting, the first bad commit > is d6fb6ee1820c . There is a small timeframe where the (now deleted) struct acpi_device::driver is different from acpi_device::dev->driver. That's because the latter is assigned to in drivers/base/dd.c's really_probe() before the acpi probe function is called, while the former is assigned only later. So acpi_drv->ops.add(acpi_dev) is called with the driver set while that was not true before d6fb6ee1820c. To test if this is the culprit, can you please try a 5.19 kernel plus the following patch?: diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c index e2db1bdd9dd2..657a2520a3e1 100644 --- a/drivers/acpi/bus.c +++ b/drivers/acpi/bus.c @@ -1022,6 +1022,8 @@ static int acpi_device_probe(struct device *dev) struct acpi_driver *acpi_drv = to_acpi_driver(dev->driver); int ret; + acpi_dev->driver = acpi_drv; + if (acpi_dev->handler && !acpi_is_pnp_device(acpi_dev)) return -EINVAL; @@ -1032,8 +1034,6 @@ static int acpi_device_probe(struct device *dev) if (ret) return ret; - acpi_dev->driver = acpi_drv; - pr_debug("Driver [%s] successfully bound to device [%s]\n", acpi_drv->name, acpi_dev->pnp.bus_id); If the above patch breaks 5.19 that's the trail we have to follow. That this is timing-related is strange though. Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | https://www.pengutronix.de/ |
Attachment:
signature.asc
Description: PGP signature