• Andy Shevchenko's avatar
    gpiolib: No need to call gpiochip_remove_pin_ranges() twice · 2f4133bb
    Andy Shevchenko authored
    of_gpiochip_add(), when fails, calls gpiochip_remove_pin_ranges().
    
    ADD:
      gpiochip_add_data_with_key() ->
        of_gpiochip_add() -> (ERROR path)
          gpiochip_remove_pin_ranges()
    
    At the same time of_gpiochip_remove() calls exactly the above mentioned
    function unconditionally and so does gpiochip_remove().
    
    REMOVE:
      gpiochip_remove() ->
        gpiochip_remove_pin_ranges()
        of_gpiochip_remove() ->
          gpiochip_remove_pin_ranges()
    
    Since gpiochip_remove() calls gpiochip_remove_pin_ranges() unconditionally,
    we have duplicate call to the same function when it's not necessary.
    
    Move gpiochip_remove_pin_ranges() from of_gpiochip_add() to gpiochip_add()
    to avoid duplicate calls and be consistent with the explicit call in
    gpiochip_remove().
    
    Fixes: e93fa3f2 ("gpiolib: remove duplicate pin range code")
    Depends-on: f7299d44 ("gpio: of: Fix of_gpiochip_add() error path")
    Cc: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    2f4133bb
gpiolib.c 138 KB