Re: [PATCH v5 1/3] tty/serial: Add GPIOLIB helpers for controlling modem lines

Alexander Shiyan shc_work at mail.ru
Tue Mar 4 06:54:24 EST 2014


Hello.

Вторник,  4 марта 2014, 12:37 +01:00 от Richard Genoud <richard.genoud at gmail.com>:
> 2014-03-03 12:27 GMT+01:00 Alexander Shiyan <shc_work at mail.ru>:
> > Hello.
> >
> > Понедельник,  3 марта 2014, 12:11 +01:00 от Richard Genoud <noreply.rgenoud at gmail.com>:
> >> This patch add some helpers to control modem lines (CTS/RTS/DSR...) via
> >> GPIO.
> >> This will be useful for many boards which have a serial controller that
> >> only handle CTS/RTS pins (or even just RX/TX).
> >>
> >> Signed-off-by: Richard Genoud <richard.genoud at gmail.com>
> > ...
> >> +struct mctrl_gpios *mctrl_gpio_init(struct device *dev, unsigned int idx)
> >> +{
> >> +     struct mctrl_gpios *gpios;
> >> +     enum mctrl_gpio_idx i;
> >> +     int err;
> >> +
> >> +     gpios = devm_kzalloc(dev, sizeof(*gpios), GFP_KERNEL);
> >> +     if (!gpios)
> >> +             goto out;
> >
> > if (!gpios)
> >   return ERR_PTR(-ENOMEM);
> I think we are looping here...
> If I returns a ERR_PTR(-ENOMEM), I'll have to change back all tests
> from if (!gpios) to if (IS_ERR_OR_NULL(gpios))
> So, I'll just return NULL here, and change the test in atmel_serial.c
> (that was wrong anyway, as you pointed out)

Yes, a little confused :)
So, let's revert back to check IS_ERR_OR_NULL(gpios).
We able to check error codes in the driver in this case.
gpios = NULL at the end of mctrl_gpio_free() is still needed.

---


More information about the linux-arm-kernel mailing list