diff options
author | Jean Delvare <khali@linux-fr.org> | 2007-05-01 17:26:32 -0400 |
---|---|---|
committer | Jean Delvare <khali@hyperion.delvare> | 2007-05-01 17:26:32 -0400 |
commit | b3e820968ad47219f7d559117a30e85cf96b4e4e (patch) | |
tree | 84e5ae3275cea6fa5074b0c9b08eaada55f02bea /drivers/i2c | |
parent | a97f1ed090fc01a5876a7caf2cbdf93470436201 (diff) |
i2c: Make i2c_del_driver a void function
Make i2c_del_driver a void function, like all other driver removal
functions. It always returned 0 even when errors occured, and nobody
ever actually checked the return value anyway. And we cannot fail
a module removal anyway.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/i2c-core.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 0fd4acbffb78..a58f89a6418a 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -599,14 +599,12 @@ EXPORT_SYMBOL(i2c_register_driver); | |||
599 | * i2c_del_driver - unregister I2C driver | 599 | * i2c_del_driver - unregister I2C driver |
600 | * @driver: the driver being unregistered | 600 | * @driver: the driver being unregistered |
601 | */ | 601 | */ |
602 | int i2c_del_driver(struct i2c_driver *driver) | 602 | void i2c_del_driver(struct i2c_driver *driver) |
603 | { | 603 | { |
604 | struct list_head *item1, *item2, *_n; | 604 | struct list_head *item1, *item2, *_n; |
605 | struct i2c_client *client; | 605 | struct i2c_client *client; |
606 | struct i2c_adapter *adap; | 606 | struct i2c_adapter *adap; |
607 | 607 | ||
608 | int res = 0; | ||
609 | |||
610 | mutex_lock(&core_lists); | 608 | mutex_lock(&core_lists); |
611 | 609 | ||
612 | /* new-style driver? */ | 610 | /* new-style driver? */ |
@@ -620,11 +618,10 @@ int i2c_del_driver(struct i2c_driver *driver) | |||
620 | list_for_each(item1,&adapters) { | 618 | list_for_each(item1,&adapters) { |
621 | adap = list_entry(item1, struct i2c_adapter, list); | 619 | adap = list_entry(item1, struct i2c_adapter, list); |
622 | if (driver->detach_adapter) { | 620 | if (driver->detach_adapter) { |
623 | if ((res = driver->detach_adapter(adap))) { | 621 | if (driver->detach_adapter(adap)) { |
624 | dev_err(&adap->dev, "detach_adapter failed " | 622 | dev_err(&adap->dev, "detach_adapter failed " |
625 | "for driver [%s]\n", | 623 | "for driver [%s]\n", |
626 | driver->driver.name); | 624 | driver->driver.name); |
627 | goto out_unlock; | ||
628 | } | 625 | } |
629 | } else { | 626 | } else { |
630 | list_for_each_safe(item2, _n, &adap->clients) { | 627 | list_for_each_safe(item2, _n, &adap->clients) { |
@@ -634,12 +631,11 @@ int i2c_del_driver(struct i2c_driver *driver) | |||
634 | dev_dbg(&adap->dev, "detaching client [%s] " | 631 | dev_dbg(&adap->dev, "detaching client [%s] " |
635 | "at 0x%02x\n", client->name, | 632 | "at 0x%02x\n", client->name, |
636 | client->addr); | 633 | client->addr); |
637 | if ((res = driver->detach_client(client))) { | 634 | if (driver->detach_client(client)) { |
638 | dev_err(&adap->dev, "detach_client " | 635 | dev_err(&adap->dev, "detach_client " |
639 | "failed for client [%s] at " | 636 | "failed for client [%s] at " |
640 | "0x%02x\n", client->name, | 637 | "0x%02x\n", client->name, |
641 | client->addr); | 638 | client->addr); |
642 | goto out_unlock; | ||
643 | } | 639 | } |
644 | } | 640 | } |
645 | } | 641 | } |
@@ -650,9 +646,7 @@ int i2c_del_driver(struct i2c_driver *driver) | |||
650 | list_del(&driver->list); | 646 | list_del(&driver->list); |
651 | pr_debug("i2c-core: driver [%s] unregistered\n", driver->driver.name); | 647 | pr_debug("i2c-core: driver [%s] unregistered\n", driver->driver.name); |
652 | 648 | ||
653 | out_unlock: | ||
654 | mutex_unlock(&core_lists); | 649 | mutex_unlock(&core_lists); |
655 | return 0; | ||
656 | } | 650 | } |
657 | EXPORT_SYMBOL(i2c_del_driver); | 651 | EXPORT_SYMBOL(i2c_del_driver); |
658 | 652 | ||