From: Ruan Jinjie <ruanjinjie@huawei.com>
To: "Leo Li" <leoyang.li@nxp.com>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"Codrin Ciubotariu" <codrin.ciubotariu@microchip.com>,
"Andi Shyti" <andi.shyti@kernel.org>,
"Nicolas Ferre" <nicolas.ferre@microchip.com>,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
"Oleksij Rempel" <linux@rempel-privat.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Shawn Guo" <shawnguo@kernel.org>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
dl-linux-imx <linux-imx@nxp.com>, "Wolfram Sang" <wsa@kernel.org>,
"Linus Walleij" <linus.walleij@linaro.org>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Subject: Re: [PATCH -next v2] I2C: Fix return value check for devm_pinctrl_get()
Date: Fri, 18 Aug 2023 10:47:06 +0800 [thread overview]
Message-ID: <18e103b7-98f2-90e8-3395-171f2bdd3f9c@huawei.com> (raw)
In-Reply-To: <AM0PR04MB6289593A2149C9411FA9D5858F1AA@AM0PR04MB6289.eurprd04.prod.outlook.com>
On 2023/8/18 1:30, Leo Li wrote:
>
>
>> -----Original Message-----
>> From: Ruan Jinjie <ruanjinjie@huawei.com>
>> Sent: Wednesday, August 16, 2023 9:20 PM
>> To: linux-i2c@vger.kernel.org; linux-arm-kernel@lists.infradead.org; Codrin
>> Ciubotariu <codrin.ciubotariu@microchip.com>; Andi Shyti
>> <andi.shyti@kernel.org>; Nicolas Ferre <nicolas.ferre@microchip.com>;
>> Alexandre Belloni <alexandre.belloni@bootlin.com>; Claudiu Beznea
>> <claudiu.beznea@tuxon.dev>; Oleksij Rempel <linux@rempel-privat.de>;
>> Pengutronix Kernel Team <kernel@pengutronix.de>; Shawn Guo
>> <shawnguo@kernel.org>; Sascha Hauer <s.hauer@pengutronix.de>; Fabio
>> Estevam <festevam@gmail.com>; dl-linux-imx <linux-imx@nxp.com>;
>> Wolfram Sang <wsa@kernel.org>; Linus Walleij <linus.walleij@linaro.org>;
>> Uwe Kleine-König <u.kleine-koenig@pengutronix.de>; Leo Li
>> <leoyang.li@nxp.com>
>> Cc: ruanjinjie@huawei.com
>> Subject: [PATCH -next v2] I2C: Fix return value check for devm_pinctrl_get()
>>
>> The devm_pinctrl_get() function returns error pointers and never returns
>> NULL. Update the checks accordingly.
>
> Not exactly. It can return NULL when CONFIG_PINCTRL is not defined. We probably should fix that API too.
>
> include/linux/pinctrl/consumer.h:
> static inline struct pinctrl * __must_check devm_pinctrl_get(struct device *dev)
> {
> return NULL;
> }
As ARCH_AT91 select PINCTRL and I2C_AT91 depends on ARCH_AT91, it can
not be NULL except for I2C_AT91 is selected by COMPILE_TEST.
And ARCH_MXC select PINCTRL and I2C_IMX depends on ARCH_MXC it can not
be NULL except for I2C_IMX is selected by ARCH_LAYERSCAPE or COLDFIRE or
COMPILE_TEST.
In general, it is possible to be null.
>
> Regards,
> Leo
>>
>> Fixes: 543aa2c4da8b ("i2c: at91: Move to generic GPIO bus recovery")
>> Fixes: fd8961c5ba9e ("i2c: imx: make bus recovery through pinctrl optional")
>> Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com>
>> ---
>> v2:
>> - Remove NULL check instead of using IS_ERR_OR_NULL() to avoid leaving
>> them behind.
>> - Update the commit title and message.
>> ---
>> drivers/i2c/busses/i2c-at91-master.c | 2 +-
>> drivers/i2c/busses/i2c-imx.c | 2 +-
>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/i2c/busses/i2c-at91-master.c b/drivers/i2c/busses/i2c-
>> at91-master.c
>> index 94cff1cd527e..2bf1df5ef473 100644
>> --- a/drivers/i2c/busses/i2c-at91-master.c
>> +++ b/drivers/i2c/busses/i2c-at91-master.c
>> @@ -831,7 +831,7 @@ static int at91_init_twi_recovery_gpio(struct
>> platform_device *pdev,
>> struct i2c_bus_recovery_info *rinfo = &dev->rinfo;
>>
>> rinfo->pinctrl = devm_pinctrl_get(&pdev->dev);
>> - if (!rinfo->pinctrl || IS_ERR(rinfo->pinctrl)) {
>> + if (IS_ERR(rinfo->pinctrl)) {
>> dev_info(dev->dev, "can't get pinctrl, bus recovery not
>> supported\n");
>> return PTR_ERR(rinfo->pinctrl);
>> }
>> diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index
>> 10e89586ca72..05d55893f04e 100644
>> --- a/drivers/i2c/busses/i2c-imx.c
>> +++ b/drivers/i2c/busses/i2c-imx.c
>> @@ -1388,7 +1388,7 @@ static int i2c_imx_init_recovery_info(struct
>> imx_i2c_struct *i2c_imx,
>> struct i2c_bus_recovery_info *rinfo = &i2c_imx->rinfo;
>>
>> i2c_imx->pinctrl = devm_pinctrl_get(&pdev->dev);
>> - if (!i2c_imx->pinctrl || IS_ERR(i2c_imx->pinctrl)) {
>> + if (IS_ERR(i2c_imx->pinctrl)) {
>> dev_info(&pdev->dev, "can't get pinctrl, bus recovery not
>> supported\n");
>> return PTR_ERR(i2c_imx->pinctrl);
>> }
>> --
>> 2.34.1
>
prev parent reply other threads:[~2023-08-18 2:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-17 2:20 [PATCH -next v2] I2C: Fix return value check for devm_pinctrl_get() Ruan Jinjie
2023-08-17 4:38 ` Oleksij Rempel
2023-08-17 6:58 ` Linus Walleij
2023-08-17 16:01 ` Nicolas Ferre
2023-08-17 17:30 ` Leo Li
2023-08-17 23:07 ` Yann Sionneau
2023-08-18 1:53 ` Ruan Jinjie
2023-08-18 5:32 ` Sascha Hauer
2023-08-18 7:18 ` Linus Walleij
2023-08-18 7:27 ` Ruan Jinjie
2023-08-18 2:47 ` Ruan Jinjie [this message]
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=18e103b7-98f2-90e8-3395-171f2bdd3f9c@huawei.com \
--to=ruanjinjie@huawei.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andi.shyti@kernel.org \
--cc=claudiu.beznea@tuxon.dev \
--cc=codrin.ciubotariu@microchip.com \
--cc=festevam@gmail.com \
--cc=kernel@pengutronix.de \
--cc=leoyang.li@nxp.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-imx@nxp.com \
--cc=linux@rempel-privat.de \
--cc=nicolas.ferre@microchip.com \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=u.kleine-koenig@pengutronix.de \
--cc=wsa@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox