From: Krzysztof Kozlowski <krzk@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Josef Bacik <josef@toxicpanda.com>,
linux-kernel@vger.kernel.org, stable <stable@kernel.org>
Subject: Re: [PATCH 1/9] w1: use the bus mutex for the "rw" file
Date: Fri, 30 Oct 2026 13:23:27 +0100 [thread overview]
Message-ID: <34280aad-a01e-4f84-ada7-c715b2958cb1@kernel.org> (raw)
In-Reply-To: <20261027-llm-char-misc-w1-v1-1-d2e6bfafb6a4@linuxfoundation.org>
On 27/10/2026 17:04, Greg Kroah-Hartman wrote:
> From: Josef Bacik <josef@toxicpanda.com>
>
> Commit b02f8bede217 ("W1: split master mutex to avoid deadlocks.") gave
> the bus a mutex of its own, because the lock which protects the list of
> slaves is held while a slave is removed, which waits for the sysfs
> callbacks of the slave, so these must not take it. It converted all the
> slave drivers, but not the "rw" file of the default family in w1.c,
> which still takes the mutex of the master to talk on the bus. That has
> two consequences:
>
> - A deadlock. w1_process() holds the mutex of the master while it
> searches the bus and detaches the slaves which have gone:
>
> w1_process() read() of .../rw
> mutex_lock(&dev->mutex) kernfs active reference
> w1_search_process() rw_read()
> w1_slave_detach() mutex_lock(&master->mutex)
> w1_unref_slave() waits
> device_unregister()
> waits for the reference
>
> The file is readable for everybody.
>
> - The accesses through this file are not serialised with those of the
> slave drivers, which take bus_mutex, so that two transactions can get
> mixed up on the wire.
>
> Take bus_mutex here as well. It also excludes the search, which takes it
> for every pass.
>
> Fixes: b02f8bede217 ("W1: split master mutex to avoid deadlocks.")
> Cc: stable <stable@kernel.org>
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Best regards,
Krzysztof
next prev parent reply other threads:[~2026-10-30 12:23 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-27 16:04 [PATCH 0/9] w1: a bunch of llm-found fixes Greg Kroah-Hartman
2026-10-27 16:04 ` [PATCH 1/9] w1: use the bus mutex for the "rw" file Greg Kroah-Hartman
2026-10-30 12:23 ` Krzysztof Kozlowski [this message]
2026-10-27 16:04 ` [PATCH 2/9] w1: remove the master's files before taking its locks Greg Kroah-Hartman
2026-10-30 12:56 ` Krzysztof Kozlowski
2026-10-27 16:04 ` [PATCH 3/9] w1: ds2482: set the strong pull-up with its byte Greg Kroah-Hartman
2026-10-30 13:09 ` Krzysztof Kozlowski
2026-10-27 16:04 ` [PATCH 4/9] w1: ds28e04: use the bus mutex to talk on the bus Greg Kroah-Hartman
2026-10-30 13:10 ` Krzysztof Kozlowski
2026-10-27 16:04 ` [PATCH 5/9] w1: ds2805: " Greg Kroah-Hartman
2026-10-30 13:11 ` Krzysztof Kozlowski
2026-10-30 13:17 ` Krzysztof Kozlowski
2026-10-27 16:04 ` [PATCH 6/9] w1: netlink: drop the slave after the bus is unlocked Greg Kroah-Hartman
2026-10-30 13:41 ` Krzysztof Kozlowski
2026-10-27 16:04 ` [PATCH 7/9] w1: don't hold list_mutex while a slave is torn down Greg Kroah-Hartman
2026-10-30 13:42 ` Krzysztof Kozlowski
2026-10-27 16:04 ` [PATCH 8/9] w1: w1_therm: lock the list of slaves for the bulk read Greg Kroah-Hartman
2026-10-30 13:44 ` Krzysztof Kozlowski
2026-10-27 16:04 ` [PATCH 9/9] w1: w1_therm: leave the slaves of other families alone Greg Kroah-Hartman
2026-10-30 13:45 ` Krzysztof Kozlowski
2026-10-30 8:14 ` [PATCH 0/9] w1: a bunch of llm-found fixes Krzysztof Kozlowski
2026-10-30 8:22 ` Greg Kroah-Hartman
2026-10-30 8:43 ` Krzysztof Kozlowski
2026-10-30 13:45 ` Krzysztof Kozlowski
2026-10-30 13:49 ` Greg Kroah-Hartman
2026-11-04 13:09 ` Greg Kroah-Hartman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=34280aad-a01e-4f84-ada7-c715b2958cb1@kernel.org \
--to=krzk@kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=josef@toxicpanda.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.