On 1 February 2013 12:13, Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> wrote: > Nack the is need to handle by the caller not here You want to get duplicated code? Ok, you will get in the "patch v3" series! :))) > > Best Regards, > J. >> >> Signed-off-by: Antony Pavlov <antonynpavlov@xxxxxxxxx> >> --- >> drivers/gpio/gpio.c | 29 ++++++++++++++++++++++------- >> 1 file changed, 22 insertions(+), 7 deletions(-) >> >> diff --git a/drivers/gpio/gpio.c b/drivers/gpio/gpio.c >> index 5876454..179fc7b 100644 >> --- a/drivers/gpio/gpio.c >> +++ b/drivers/gpio/gpio.c >> @@ -29,22 +29,37 @@ int gpio_request(unsigned gpio, const char *label) >> struct gpio_chip *chip = gi->chip; >> int ret; >> >> - if (!gpio_is_valid(gpio)) >> - return -EINVAL; >> - if (!chip) >> - return -EINVAL; >> - if (gi->requested) >> - return -EBUSY; >> + if (!gpio_is_valid(gpio)) { >> + ret = -EINVAL; >> + goto err; >> + } >> + >> + if (!chip) { >> + ret = -EINVAL; >> + goto err; >> + } >> + >> + if (gi->requested) { >> + ret = -EBUSY; >> + goto err; >> + } >> + >> if (chip->ops->request) { >> ret = chip->ops->request(chip, gpio - chip->base); >> if (ret) >> - return ret; >> + goto err; >> } >> >> gi->requested = true; >> gi->label = xstrdup(label); >> >> return 0; >> + >> +err: >> + pr_err("can't request gpio %d as %s (%d)\n", >> + gpio, label, ret); >> + >> + return ret; >> } >> >> int gpio_request_input(unsigned gpio, const char *label) >> -- >> 1.7.10.4 >> -- Best regards, Antony Pavlov _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox