From: Heiner Kallweit Date: Mon, 24 May 2021 20:18:23 +0000 (+0200) Subject: eeprom: ee1004: Add helper ee1004_cleanup X-Git-Tag: v5.15.73~11623^2~90 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5fe3cba0bf5c2c1331cbf21baea6a99daa0a6f78;p=platform%2Fkernel%2Flinux-rpi.git eeprom: ee1004: Add helper ee1004_cleanup Factor out the cleanup code to a new helper ee1004_cleanup(). Signed-off-by: Heiner Kallweit Link: https://lore.kernel.org/r/9738cbc7-458d-276f-4012-66551f105d90@gmail.com Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/misc/eeprom/ee1004.c b/drivers/misc/eeprom/ee1004.c index 5173d040c7ae..00f61a83d7dd 100644 --- a/drivers/misc/eeprom/ee1004.c +++ b/drivers/misc/eeprom/ee1004.c @@ -159,6 +159,15 @@ static struct bin_attribute *ee1004_attrs[] = { BIN_ATTRIBUTE_GROUPS(ee1004); +static void ee1004_cleanup(int idx) +{ + if (--ee1004_dev_count == 0) + while (--idx >= 0) { + i2c_unregister_device(ee1004_set_page[idx]); + ee1004_set_page[idx] = NULL; + } +} + static int ee1004_probe(struct i2c_client *client) { int err, cnr = 0; @@ -205,12 +214,7 @@ static int ee1004_probe(struct i2c_client *client) return 0; err_clients: - if (--ee1004_dev_count == 0) { - for (cnr--; cnr >= 0; cnr--) { - i2c_unregister_device(ee1004_set_page[cnr]); - ee1004_set_page[cnr] = NULL; - } - } + ee1004_cleanup(cnr); mutex_unlock(&ee1004_bus_lock); return err; @@ -218,16 +222,9 @@ static int ee1004_probe(struct i2c_client *client) static int ee1004_remove(struct i2c_client *client) { - int i; - /* Remove page select clients if this is the last device */ mutex_lock(&ee1004_bus_lock); - if (--ee1004_dev_count == 0) { - for (i = 0; i < EE1004_NUM_PAGES; i++) { - i2c_unregister_device(ee1004_set_page[i]); - ee1004_set_page[i] = NULL; - } - } + ee1004_cleanup(EE1004_NUM_PAGES); mutex_unlock(&ee1004_bus_lock); return 0;