Unregister gpiochip device (used to export information through sysfs)
before removing it internally. This way removal will reverse addition.
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
        unsigned long   flags;
        unsigned        id;
 
+       gpiochip_unexport(chip);
+
        gpiochip_irqchip_remove(chip);
 
        acpi_gpiochip_remove(chip);
 
        list_del(&chip->list);
        spin_unlock_irqrestore(&gpio_lock, flags);
-       gpiochip_unexport(chip);
 
        kfree(chip->desc);
        chip->desc = NULL;