lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADRPPNT=+amxRcea=N7m96=wKgdbRmU8R5cBACvTn7XffKofzQ@mail.gmail.com>
Date:	Fri, 15 Jan 2016 16:46:06 +0800
From:	Li Yang <leoli@...escale.com>
To:	Uwe Kleine-König 
	<u.kleine-koenig@...gutronix.de>
Cc:	Li Yang <leoyang.li@....com>, Gao Pan <pandy.gao@....com>,
	Wolfram Sang <wsa@...-dreams.de>,
	Linus Walleij <linus.walleij@...aro.org>,
	lkml <linux-kernel@...r.kernel.org>, linux-gpio@...r.kernel.org,
	"linux-i2c@...r.kernel.org" <linux-i2c@...r.kernel.org>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>
Subject: Re: [PATCH v3] i2c: imx: make bus recovery through pinctrl optional

On Fri, Jan 15, 2016 at 3:53 PM, Uwe Kleine-König
<u.kleine-koenig@...gutronix.de> wrote:
> Hello,
>
> On Fri, Jan 15, 2016 at 01:27:24AM -0600, Li Yang wrote:
>> diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
>> index a2b132c..1239bfa 100644
>> --- a/drivers/i2c/busses/i2c-imx.c
>> +++ b/drivers/i2c/busses/i2c-imx.c
>> @@ -1081,8 +1081,11 @@ static int i2c_imx_probe(struct platform_device *pdev)
>>               return ret;
>>       }
>>
>> +     /* optional bus recovery feature through pinctrl */
>>       i2c_imx->pinctrl = devm_pinctrl_get(&pdev->dev);
>> -     if (IS_ERR(i2c_imx->pinctrl)) {
>> +     /* bailout on -ENOMEM or -EPROBE_DEFER, continue for other errors */
>> +     if (PTR_ERR(i2c_imx->pinctrl) == -ENOMEM ||
>> +                     PTR_ERR(i2c_imx->pinctrl) == -EPROBE_DEFER) {
>>               ret = PTR_ERR(i2c_imx->pinctrl);
>>               goto clk_disable;
>>       }
>> @@ -1125,7 +1128,10 @@ static int i2c_imx_probe(struct platform_device *pdev)
>>                       i2c_imx, IMX_I2C_I2CR);
>>       imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
>>
>> -     i2c_imx_init_recovery_info(i2c_imx, pdev);
>> +     if (IS_ERR_OR_NULL(i2c_imx->pinctrl))
>
> I'd prefer to set i2c_imx->pinctrl to NULL if it's not used and then use
>
>         if (!i2c_imx->pinctrl)
>
> here. (Or maybe make i2c_imx_init_recovery_info aware of this situation
> to keep the caller simple?)

Setting not used pointer to NULL might be a good coding practice
generally.  But in this case neither the driver nor gpio framework
checks if the pinctrl is NULL before accessing it.  We still need the
driver to make sure pinctrl is not used in this situation.  The
benefit of the proposed change seems to be pretty limited.  :)

Regards,
Leo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ