On 01.08.19 22:33, Uwe Kleine-König wrote: > On Thu, Aug 01, 2019 at 06:45:21PM +0000, Schrempf Frieder wrote: >> From: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx> >> >> If CONFIG_GPIOLIB is not enabled, mctrl_gpio_init() and >> mctrl_gpio_init_noauto() will currently return an error pointer with >> -ENOSYS. As the mctrl GPIOs are usually optional, drivers need to >> check for this condition to allow continue probing. >> >> To avoid the need for this check in each driver, we return NULL >> instead, as all the mctrl_gpio_*() functions are skipped anyway. >> We also adapt mctrl_gpio_to_gpiod() to be in line with this change. >> >> Signed-off-by: Frieder Schrempf <frieder.schrempf@xxxxxxxxxx> >> Reviewed-by: Fabio Estevam <festevam@xxxxxxxxx> > > nitpick: put your S-o-b last. Ok. >> --- >> Changes in v2 >> ============= >> * Move the sh_sci changes to a separate patch >> * Add a patch for the 8250 driver >> * Add Fabio's R-b tag >> --- >> drivers/tty/serial/serial_mctrl_gpio.c | 3 +++ >> drivers/tty/serial/serial_mctrl_gpio.h | 6 +++--- >> 2 files changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/tty/serial/serial_mctrl_gpio.c b/drivers/tty/serial/serial_mctrl_gpio.c >> index 2b400189be91..54c43e02e375 100644 >> --- a/drivers/tty/serial/serial_mctrl_gpio.c >> +++ b/drivers/tty/serial/serial_mctrl_gpio.c >> @@ -61,6 +61,9 @@ EXPORT_SYMBOL_GPL(mctrl_gpio_set); >> struct gpio_desc *mctrl_gpio_to_gpiod(struct mctrl_gpios *gpios, >> enum mctrl_gpio_idx gidx) >> { >> + if (gpios == NULL) >> + return NULL; >> + > > I wonder why you need this. If GPIOLIB is off this code isn't active and > with GPIOLIB calling mctrl_gpio_to_gpiod with a gpios == NULL is a bug > that IMHO should not be silently ignored. > > Am I missing something (again)? No, you're right. My thoughts were, that if the mctrl_gpio functions are allowed to be passed a NULL pointer in general, they all should have a NULL check, even if in the current context (GPIOLIB disabled) this code is not active. Apparently there are other cases when a NULL pointer is passed, see [1]. So you can't really consider gpios == NULL to be a bug as this seems to be allowed in general. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=434be0ae7aa746f481c3a22139e472dbc3f4f817 > >> return gpios->gpio[gidx]; >> } > > Best regards > Uwe >