How about using the interface tracker described in the link bellow ? https://lkml.org/lkml/2014/5/5/55 Abdoulaye. On Sun, Jun 8, 2014 at 2:12 PM, Alexandre Courbot <gnurou@xxxxxxxxx> wrote: > On Thu, Jun 5, 2014 at 3:22 AM, abdoulaye berthe <berthe.ab@xxxxxxxxx> wrote: >> This avoids handling gpiochip remove error in device >> remove handler. >> >> Signed-off-by: abdoulaye berthe <berthe.ab@xxxxxxxxx> >> --- >> drivers/gpio/gpiolib.c | 24 +++++++----------------- >> include/linux/gpio/driver.h | 2 +- >> 2 files changed, 8 insertions(+), 18 deletions(-) >> >> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c >> index f48817d..022543f 100644 >> --- a/drivers/gpio/gpiolib.c >> +++ b/drivers/gpio/gpiolib.c >> @@ -1263,10 +1263,9 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip); >> * >> * A gpio_chip with any GPIOs still requested may not be removed. >> */ >> -int gpiochip_remove(struct gpio_chip *chip) >> +void gpiochip_remove(struct gpio_chip *chip) >> { >> unsigned long flags; >> - int status = 0; >> unsigned id; >> >> acpi_gpiochip_remove(chip); >> @@ -1278,24 +1277,15 @@ int gpiochip_remove(struct gpio_chip *chip) >> of_gpiochip_remove(chip); >> >> for (id = 0; id < chip->ngpio; id++) { >> - if (test_bit(FLAG_REQUESTED, &chip->desc[id].flags)) { >> - status = -EBUSY; >> - break; >> - } >> - } >> - if (status == 0) { >> - for (id = 0; id < chip->ngpio; id++) >> - chip->desc[id].chip = NULL; >> - >> - list_del(&chip->list); >> + if (test_bit(FLAG_REQUESTED, &chip->desc[id].flags)) >> + panic("gpio: removing gpiochip with gpios still requested\n"); > > Really, really I don't think we should panic here. Apparently if you > don't do this things are going to crash later on some platforms. Could > you detail what the problem is exactly so we can try and come with a > solution? > > Event if we crash later with a more obscure reason, using pr_err() > here to provide some information should be helpful enough. > > Alex. -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html