[PATCH] w1: fix redundant counter decrement in w1_attach_slave_device()

Haoxiang Li posted 1 patch 1 month, 3 weeks ago
drivers/w1/w1.c | 2 --
1 file changed, 2 deletions(-)
[PATCH] w1: fix redundant counter decrement in w1_attach_slave_device()
Posted by Haoxiang Li 1 month, 3 weeks ago
In w1_attach_slave_device(), if __w1_attach_slave_device() fails,
put_device() -> w1_slave_release() is called to do the cleanup job.
In w1_slave_release(), sl->family->refcnt and sl->master->slave_count
have already been decremented. There is no need to decrement twice
in w1_attach_slave_device().

Fixes: 2c927c0c73fd ("w1: Fix slave count on 1-Wire bus (resend)")
Cc: stable@vger.kernel.org
Signed-off-by: Haoxiang Li <lihaoxiang@isrc.iscas.ac.cn>
---
 drivers/w1/w1.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/w1/w1.c b/drivers/w1/w1.c
index 002d2639aa12..5f78b0a0b766 100644
--- a/drivers/w1/w1.c
+++ b/drivers/w1/w1.c
@@ -758,8 +758,6 @@ int w1_attach_slave_device(struct w1_master *dev, struct w1_reg_num *rn)
 	if (err < 0) {
 		dev_err(&dev->dev, "%s: Attaching %s failed.\n", __func__,
 			 sl->name);
-		dev->slave_count--;
-		w1_family_put(sl->family);
 		atomic_dec(&sl->master->refcnt);
 		kfree(sl);
 		return err;
-- 
2.25.1
Re: [PATCH] w1: fix redundant counter decrement in w1_attach_slave_device()
Posted by Krzysztof Kozlowski 1 month, 1 week ago
On Thu, 18 Dec 2025 19:14:14 +0800, Haoxiang Li wrote:
> In w1_attach_slave_device(), if __w1_attach_slave_device() fails,
> put_device() -> w1_slave_release() is called to do the cleanup job.
> In w1_slave_release(), sl->family->refcnt and sl->master->slave_count
> have already been decremented. There is no need to decrement twice
> in w1_attach_slave_device().
> 
> 
> [...]

Applied, thanks!

[1/1] w1: fix redundant counter decrement in w1_attach_slave_device()
      https://git.kernel.org/krzk/linux-w1/c/cc8f92e41eb76f450f05234fef2054afc3633100

Best regards,
-- 
Krzysztof Kozlowski <krzk@kernel.org>