Re: [PATCH] driver core: reject devices with unregistered buses

From: Danilo Krummrich

Date: Wed Apr 29 2026 - 07:12:18 EST


On Wed Apr 29, 2026 at 12:11 PM CEST, Johan Hovold wrote:
> On Tue, Apr 28, 2026 at 09:09:04PM +0200, Danilo Krummrich wrote:
>> On Mon Apr 27, 2026 at 12:28 PM CEST, Johan Hovold wrote:
>> > Trying to register a device on a bus which has not yet been registered
>> > used to trigger a NULL-pointer dereference, but since the const bus
>> > structure rework registration instead succeeds without the device being
>> > added to the bus.
>> >
>> > Reject devices with unregistered buses to catch any callers that get
>> > the ordering wrong and to handle bus registration failures more
>> > gracefully.
>> >
>> > Fixes: 5221b82d46f2 ("driver core: bus: bus_add/probe/remove_device() cleanups")
>> > Cc: stable@xxxxxxxxxxxxxxx # 6.3
>>
>> Hm...this sounds like hardening and not like a "real" bug fix. Do you have a
>> specific reason why you added Cc: stable?
>
> It's certainly a bug fix and this change in behaviour was clearly
> unintended.
>
> Any caller getting the ordering wrong would now succeed in registering
> devices, but no driver would ever be bound which is harder to detect
> than the earlier crashes.
>
> Whether any offenders have snuck in since 6.3 I don't know, but I still
> think this warrants a backport.

I see where you are coming from, and I agree that having an explicit error print
is an improvement over "the device just never got probed".

However, this isn't an actual bug -- it just happens to make a "real" bug less
obvious to catch.

That said, I don't see how this warrants a stable backport, i.e. it doesn't even
fall under the "this could be a problem" or "theoretical bug" category, which
typically are not accepted either.

As mentioned in the other thread, if this was relaxed, I'm happy to hear about
it.