Message ID | 20231019101017.425284-4-herve.codina@bootlin.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:2010:b0:403:3b70:6f57 with SMTP id fe16csp276761vqb; Thu, 19 Oct 2023 03:11:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHd2LaMx7+/UL0h0IuSp5+RsuIS0x+QWTixioQufL8ZNXI9JfhrAd8VST8YKOOkzQcl7Qvo X-Received: by 2002:a05:6a21:3d88:b0:16b:f4ca:e3d9 with SMTP id bj8-20020a056a213d8800b0016bf4cae3d9mr1493129pzc.27.1697710261722; Thu, 19 Oct 2023 03:11:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697710261; cv=none; d=google.com; s=arc-20160816; b=NDn27UAjDNZwp4iJfjd9W529abDvxhqdFwojiPiuIWEuZZZr+ag8nnqHEUrgGMRapj kjoXzZ5Hh4SAbDVvoIwQfhUZA0YomFaNp7dzcHoHHc3CWq9GvPvlLaigxiZjzbF/4aSn 1nAeESogP1xgrKnD9yVQh/lnj6Yly3ebpowsTwgV7sqpgHaSnji4Q9uITc4vDGc6Izsb 3OJPy84B9sFTYmN5b7ApNsMBu5ez6gWPjaL2C+3pK6wNO6BEm8tRw5F/P4T2XVPQReS+ m5T3ZqsNQu3K1rWYwc/NLXEvnp+4e4ip/WZgPSlvoyQnr9Pf6sJEhslRB25hkFPpqe72 6BFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=f2DfQVfMOTqX54BnA6Gk9Zbew9GqeeC0hjdrSJyySQk=; fh=i3WS+6AgTKP10/eUP7j46CA4B/XR5qlEIT9hV1ltHe4=; b=MrLJOjdjSW4Dhm1KFPAmnjyUU8KRBMnHE6LB6XXJ+h7nvgoon2bIbtMM9YIWaT4OgU axHhDIcGa4tfCYognIAAFruT5Ggi/vj9YvNtnFTOLyN5vrLbwWZodH4lgfGwWoCmIt52 LPFTXls7bFSX+heDV4kiLplBDpx1wtd4FoJ9dmKqoHKAz0fMs2CdWwHqaEjYNJalEuAy Kw5nlmQt6F+/zvyWddXLs0xwT1Vc/vcH+oZdRuMgWZ4GRF+HBTZsNE1JItfweuy9YSQp hdFSIiJqh7UWtWltlg8vMZ1oaU+/FL2XGDR3abVFOvVnZqCv0JeyjlcBJa+BO59iRoEv WEVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=L1gjMYua; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id h16-20020a170902f55000b001c8920e3021si1969626plf.539.2023.10.19.03.11.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Oct 2023 03:11:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=L1gjMYua; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id A392781A328B; Thu, 19 Oct 2023 03:10:54 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345265AbjJSKKg (ORCPT <rfc822;zwp10758@gmail.com> + 24 others); Thu, 19 Oct 2023 06:10:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47082 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345206AbjJSKK3 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 19 Oct 2023 06:10:29 -0400 Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::226]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E39BF11D; Thu, 19 Oct 2023 03:10:27 -0700 (PDT) Received: by mail.gandi.net (Postfix) with ESMTPA id 28575C0012; Thu, 19 Oct 2023 10:10:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1697710226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=f2DfQVfMOTqX54BnA6Gk9Zbew9GqeeC0hjdrSJyySQk=; b=L1gjMYuaxDZELtkF3+eTQVZ2YaMlzad1cYuHCVsW3VpKNTEusFo2LUj3IADZkPPmJdLFIz 2ObVkQYrkTW4Eciqf5qzd1/sek+1I4YvPc4+OmOG/vIOM5yUIloPFfMCE6yq4GdS6kmvYA +ZOyGg+blKXU0dIMl+69tJvlrNjxgAAdebxYDcNXJopDsiTCWtYATh3MIPvGofFUWYdlAP PmCDbnYA7k4VYX/QPJ7AwHTGT6w3feTHExQ+ORt7Or7KOBKsWa5/mrvlPeijS+o1tXVU6J V8ZTHzO9b5/CDRKvoo6xdenYu1hJob+uvn5uVFdwoB606zRePxe9xaJ9GpOh2g== From: Herve Codina <herve.codina@bootlin.com> To: Wolfram Sang <wsa+renesas@sang-engineering.com>, Peter Rosin <peda@axentia.se>, Stephen Warren <swarren@nvidia.com>, Rob Herring <robh@kernel.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Jonathan Cameron <jic23@kernel.org> Cc: Wolfram Sang <wsa@kernel.org>, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org, Allan Nielsen <allan.nielsen@microchip.com>, Horatiu Vultur <horatiu.vultur@microchip.com>, Steen Hegelund <steen.hegelund@microchip.com>, Thomas Petazzoni <thomas.petazzoni@bootlin.com>, Herve Codina <herve.codina@bootlin.com> Subject: [PATCH v2 3/3] i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node() Date: Thu, 19 Oct 2023 12:10:16 +0200 Message-ID: <20231019101017.425284-4-herve.codina@bootlin.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231019101017.425284-1-herve.codina@bootlin.com> References: <20231019101017.425284-1-herve.codina@bootlin.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: herve.codina@bootlin.com X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Thu, 19 Oct 2023 03:10:54 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780178235399497718 X-GMAIL-MSGID: 1780178235399497718 |
Series |
Fix i2c mux module refcount issues
|
|
Commit Message
Herve Codina
Oct. 19, 2023, 10:10 a.m. UTC
i2c-mux-gpmux uses the pair of_find_i2c_adapter_by_node() / i2c_put_adapter(). These pair alone is not correct to properly lock the I2C parent adapter. Indeed, i2c_put_adapter() decrements the module refcount while of_find_i2c_adapter_by_node() does not increment it. This leads to an underflow of the parent module refcount. Use the dedicated function, of_get_i2c_adapter_by_node(), to handle correctly the module refcount. Fixes: ac8498f0ce53 ("i2c: i2c-mux-gpmux: new driver") Signed-off-by: Herve Codina <herve.codina@bootlin.com> Acked-by: Peter Rosin <peda@axentia.se> --- drivers/i2c/muxes/i2c-mux-gpmux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Thu, Oct 19, 2023 at 12:10:16PM +0200, Herve Codina wrote: > i2c-mux-gpmux uses the pair of_find_i2c_adapter_by_node() / > i2c_put_adapter(). These pair alone is not correct to properly lock the > I2C parent adapter. > > Indeed, i2c_put_adapter() decrements the module refcount while > of_find_i2c_adapter_by_node() does not increment it. This leads to an > underflow of the parent module refcount. > > Use the dedicated function, of_get_i2c_adapter_by_node(), to handle > correctly the module refcount. > > Fixes: ac8498f0ce53 ("i2c: i2c-mux-gpmux: new driver") > Signed-off-by: Herve Codina <herve.codina@bootlin.com> > Acked-by: Peter Rosin <peda@axentia.se> > --- > drivers/i2c/muxes/i2c-mux-gpmux.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Hi, This is the friendly patch-bot of Greg Kroah-Hartman. You have sent him a patch that has triggered this response. He used to manually respond to these common problems, but in order to save his sanity (he kept writing the same thing over and over, yet to different people), I was created. Hopefully you will not take offence and will fix the problem in your patch and resubmit it so that it can be accepted into the Linux kernel tree. You are receiving this message because of the following common error(s) as indicated below: - You have marked a patch with a "Fixes:" tag for a commit that is in an older released kernel, yet you do not have a cc: stable line in the signed-off-by area at all, which means that the patch will not be applied to any older kernel releases. To properly fix this, please follow the documented rules in the Documentation/process/stable-kernel-rules.rst file for how to resolve this. If you wish to discuss this problem further, or you have questions about how to resolve this issue, please feel free to respond to this email and Greg will reply once he has dug out from the pending patches received from other developers. thanks, greg k-h's patch email bot
On Thu, 19 Oct 2023 12:10:16 +0200 Herve Codina <herve.codina@bootlin.com> wrote: > i2c-mux-gpmux uses the pair of_find_i2c_adapter_by_node() / > i2c_put_adapter(). These pair alone is not correct to properly lock the > I2C parent adapter. > > Indeed, i2c_put_adapter() decrements the module refcount while > of_find_i2c_adapter_by_node() does not increment it. This leads to an > underflow of the parent module refcount. > > Use the dedicated function, of_get_i2c_adapter_by_node(), to handle > correctly the module refcount. > > Fixes: ac8498f0ce53 ("i2c: i2c-mux-gpmux: new driver") > Signed-off-by: Herve Codina <herve.codina@bootlin.com> > Acked-by: Peter Rosin <peda@axentia.se> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> > --- > drivers/i2c/muxes/i2c-mux-gpmux.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/i2c/muxes/i2c-mux-gpmux.c b/drivers/i2c/muxes/i2c-mux-gpmux.c > index baccf4bfaf02..8305661e1253 100644 > --- a/drivers/i2c/muxes/i2c-mux-gpmux.c > +++ b/drivers/i2c/muxes/i2c-mux-gpmux.c > @@ -52,7 +52,7 @@ static struct i2c_adapter *mux_parent_adapter(struct device *dev) > dev_err(dev, "Cannot parse i2c-parent\n"); > return ERR_PTR(-ENODEV); > } > - parent = of_find_i2c_adapter_by_node(parent_np); > + parent = of_get_i2c_adapter_by_node(parent_np); > of_node_put(parent_np); > if (!parent) > return ERR_PTR(-EPROBE_DEFER);
diff --git a/drivers/i2c/muxes/i2c-mux-gpmux.c b/drivers/i2c/muxes/i2c-mux-gpmux.c index baccf4bfaf02..8305661e1253 100644 --- a/drivers/i2c/muxes/i2c-mux-gpmux.c +++ b/drivers/i2c/muxes/i2c-mux-gpmux.c @@ -52,7 +52,7 @@ static struct i2c_adapter *mux_parent_adapter(struct device *dev) dev_err(dev, "Cannot parse i2c-parent\n"); return ERR_PTR(-ENODEV); } - parent = of_find_i2c_adapter_by_node(parent_np); + parent = of_get_i2c_adapter_by_node(parent_np); of_node_put(parent_np); if (!parent) return ERR_PTR(-EPROBE_DEFER);