i2c-sibyte: Fix an error path
authorJean Delvare <khali@linux-fr.org>
Mon, 14 Jan 2008 20:53:31 +0000 (21:53 +0100)
committerJean Delvare <khali@hyperion.delvare>
Mon, 14 Jan 2008 20:53:31 +0000 (21:53 +0100)
If the registration of the second I2C channel fails, we really want to
unregister the first one before we return with an error.

While we're here, fix the printk right above so that it displays the
real driver name.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
drivers/i2c/busses/i2c-sibyte.c

index 0ca599d3b4029851ddf022bab424759824060ec2..503a134ec803c13edd0cd43dd71432179216f60a 100644 (file)
@@ -200,11 +200,14 @@ static struct i2c_adapter sibyte_board_adapter[2] = {
 
 static int __init i2c_sibyte_init(void)
 {
-       printk("i2c-swarm.o: i2c SMBus adapter module for SiByte board\n");
+       pr_info("i2c-sibyte: i2c SMBus adapter module for SiByte board\n");
        if (i2c_sibyte_add_bus(&sibyte_board_adapter[0], K_SMB_FREQ_100KHZ) < 0)
                return -ENODEV;
-       if (i2c_sibyte_add_bus(&sibyte_board_adapter[1], K_SMB_FREQ_400KHZ) < 0)
+       if (i2c_sibyte_add_bus(&sibyte_board_adapter[1],
+                              K_SMB_FREQ_400KHZ) < 0) {
+               i2c_del_adapter(&sibyte_board_adapter[0]);
                return -ENODEV;
+       }
        return 0;
 }