瀏覽代碼

[PATCH] cm4000_cs: fix return value check

The return value of class_create() need to be checked with IS_ERR().
And register_chrdev() returns errno on failure.
This patch includes these fixes for cm4000_cs and cm4040_cs.

Signed-off-by: Akinbou Mita <akinobu.mita@gmail.com>
Signed-off-by: Harald Welte <laforge@gnumonks.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Akinobu Mita 18 年之前
父節點
當前提交
5eb5fc97d8
共有 2 個文件被更改,包括 6 次插入6 次删除
  1. 3 3
      drivers/char/pcmcia/cm4000_cs.c
  2. 3 3
      drivers/char/pcmcia/cm4040_cs.c

+ 3 - 3
drivers/char/pcmcia/cm4000_cs.c

@@ -1973,14 +1973,14 @@ static int __init cmm_init(void)
 	printk(KERN_INFO "%s\n", version);
 	printk(KERN_INFO "%s\n", version);
 
 
 	cmm_class = class_create(THIS_MODULE, "cardman_4000");
 	cmm_class = class_create(THIS_MODULE, "cardman_4000");
-	if (!cmm_class)
-		return -1;
+	if (IS_ERR(cmm_class))
+		return PTR_ERR(cmm_class);
 
 
 	major = register_chrdev(0, DEVICE_NAME, &cm4000_fops);
 	major = register_chrdev(0, DEVICE_NAME, &cm4000_fops);
 	if (major < 0) {
 	if (major < 0) {
 		printk(KERN_WARNING MODULE_NAME
 		printk(KERN_WARNING MODULE_NAME
 			": could not get major number\n");
 			": could not get major number\n");
-		return -1;
+		return major;
 	}
 	}
 
 
 	rc = pcmcia_register_driver(&cm4000_driver);
 	rc = pcmcia_register_driver(&cm4000_driver);

+ 3 - 3
drivers/char/pcmcia/cm4040_cs.c

@@ -721,14 +721,14 @@ static int __init cm4040_init(void)
 
 
 	printk(KERN_INFO "%s\n", version);
 	printk(KERN_INFO "%s\n", version);
 	cmx_class = class_create(THIS_MODULE, "cardman_4040");
 	cmx_class = class_create(THIS_MODULE, "cardman_4040");
-	if (!cmx_class)
-		return -1;
+	if (IS_ERR(cmx_class))
+		return PTR_ERR(cmx_class);
 
 
 	major = register_chrdev(0, DEVICE_NAME, &reader_fops);
 	major = register_chrdev(0, DEVICE_NAME, &reader_fops);
 	if (major < 0) {
 	if (major < 0) {
 		printk(KERN_WARNING MODULE_NAME
 		printk(KERN_WARNING MODULE_NAME
 			": could not get major number\n");
 			": could not get major number\n");
-		return -1;
+		return major;
 	}
 	}
 
 
 	rc = pcmcia_register_driver(&reader_driver);
 	rc = pcmcia_register_driver(&reader_driver);