eeprom: ee1004: Add helper ee1004_cleanup
Factor out the cleanup code to a new helper ee1004_cleanup(). Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Link: https://lore.kernel.org/r/9738cbc7-458d-276f-4012-66551f105d90@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
8700a7328e
commit
5fe3cba0bf
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user