On 07/18/2017 04:09 PM, Fabio Estevam wrote:

   No, it does -- devm_gpiod_get_optinal() will return NULL in that case,
bus->reset_gpio will remanin NULL, and you're removing the NULL checks
around the gpiod_set_value_cansleep() calls. Perhaps it's the problem in the
GPIO support though...

It is perfectly fine to call gpiod_set_value_cansleep() with a NULL
gpio descriptor.

   Depends on whether CONFIG_HPIOLIB is enabled or not.

Please take a look at drivers/gpio/gpiolib.c:

   If CONF(G_GPIOLIB=n, the stub from <linux/gpio/consumer.h gets used.
and devm_gpiod_get_optional() will return NULL in that case.

gpiod_set_value_cansleep() calls VALIDATE_DESC_VOID

Then if you look at the definition of VALIDATE_DESC_VOID you will see
that it does a NULL check on desc and returns immediately if it is
NULL.

   Sre, I did see that.

This means we are safe here :-)

   Sigh...

MBR, Sergei

Reply via email to