Browse Source

i2c-sibyte: Fix an error path

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>
Jean Delvare 17 years ago
parent
commit
5cd6e675f8
1 changed files with 5 additions and 2 deletions
  1. 5 2
      drivers/i2c/busses/i2c-sibyte.c

+ 5 - 2
drivers/i2c/busses/i2c-sibyte.c

@@ -200,11 +200,14 @@ static struct i2c_adapter sibyte_board_adapter[2] = {
 
 
 static int __init i2c_sibyte_init(void)
 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)
 	if (i2c_sibyte_add_bus(&sibyte_board_adapter[0], K_SMB_FREQ_100KHZ) < 0)
 		return -ENODEV;
 		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 -ENODEV;
+	}
 	return 0;
 	return 0;
 }
 }