Re: [PATCH 6/9] w1: netlink: drop the slave after the bus is unlocked

From: Krzysztof Kozlowski

Date: Fri Oct 30 2026 - 09:41:31 EST


On 27/10/2026 17:04, Greg Kroah-Hartman wrote:
> From: Josef Bacik <josef@xxxxxxxxxxxxxx>
>
> w1_process_cb() executes the commands of a netlink message with bus_mutex
> held, and drops the reference to the slave which the message was
> addressed to before it unlocks the mutex. If the slave has been detached
> in the meantime, this is the last reference, and w1_unref_slave() tears
> the slave down on the spot. That waits
>
> - in device_unregister(), for the sysfs callbacks of the slave which are
> running, and
>
> - in w1_therm_remove_slave(), for the readers which have taken a
> reference to the family data,
>
> and both kinds take bus_mutex to talk to the slave. Whoever is waiting
> for the mutex at that moment is never going to finish, and neither is the
> thread of the bus master.
>
> Unlock the bus first. The reference keeps the slave, and with it the
> master, alive until then.
>
> Fixes: d3a8a9dbb903 ("w1: hold bus_mutex in netlink and search")
> Cc: stable <stable@xxxxxxxxxx>
> Signed-off-by: Josef Bacik <josef@xxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxxxxx>

Best regards,
Krzysztof