Re: [PATCH] I2C update for 2.6.8-rc1

From: Greg KH
Date: Wed Jul 14 2004 - 20:14:06 EST


ChangeSet 1.1784.13.5, 2004/07/08 16:07:27-07:00, lcapitulino@xxxxxxxxxxxxxxxxxxxx

[PATCH] I2C: i2c/i2c-dev.c::i2c_dev_init() cleanup.

This patch does the fallowing cleanup for
drivers/i2c/i2c-dev.c::i2c_dev_init():

*) in a error condition, return the error code of register_chrdev()
insted of -EIO;
*) adds missing audit for class_register();
*) in a error condition, only prints "Driver Initialisation Failed",
insted printing the cause. (Note that the error will be printed by
the return of the error code, and the information about what function
caused the problem need to be done by a debug code).

Only compiled, lack of hardware.

Signed-off-by: Luiz Capitulino <lcapitulino@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <greg@xxxxxxxxx>


drivers/i2c/i2c-dev.c | 33 +++++++++++++++++++++------------
1 files changed, 21 insertions(+), 12 deletions(-)


diff -Nru a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
--- a/drivers/i2c/i2c-dev.c 2004-07-14 17:00:12 -07:00
+++ b/drivers/i2c/i2c-dev.c 2004-07-14 17:00:12 -07:00
@@ -518,20 +518,29 @@

printk(KERN_INFO "i2c /dev entries driver\n");

- if (register_chrdev(I2C_MAJOR,"i2c",&i2cdev_fops)) {
- printk(KERN_ERR "i2c-dev.o: unable to get major %d for i2c bus\n",
- I2C_MAJOR);
- return -EIO;
- }
+ res = register_chrdev(I2C_MAJOR, "i2c", &i2cdev_fops);
+ if (res)
+ goto out;
+
+ res = class_register(&i2c_dev_class);
+ if (res)
+ goto out_unreg_chrdev;
+
+ res = i2c_add_driver(&i2cdev_driver);
+ if (res)
+ goto out_unreg_class;
+
devfs_mk_dir("i2c");
- class_register(&i2c_dev_class);
- if ((res = i2c_add_driver(&i2cdev_driver))) {
- printk(KERN_ERR "i2c-dev.o: Driver registration failed, module not inserted.\n");
- devfs_remove("i2c");
- unregister_chrdev(I2C_MAJOR,"i2c");
- return res;
- }
+
return 0;
+
+out_unreg_class:
+ class_unregister(&i2c_dev_class);
+out_unreg_chrdev:
+ unregister_chrdev(I2C_MAJOR, "i2c");
+out:
+ printk(KERN_ERR "%s: Driver Initialisation failed", __FILE__);
+ return res;
}

static void __exit i2c_dev_exit(void)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/