summary refs log tree commit diff
path: root/drivers/misc/hdpuftrs
diff options
context:
space:
mode:
authorChristophe Lucas <clucas@rotomalug.org>2005-09-10 00:26:33 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-09-10 10:06:25 -0700
commit1ac19f4ccd8636dbe76a97cec36c95d7548cc871 (patch)
tree1faa1f44183628138643a9e5eb011b2c4d3f6484 /drivers/misc/hdpuftrs
parentcf85d5ca880c9611906e0ca0c729fdf01c724501 (diff)
downloadlinux-1ac19f4ccd8636dbe76a97cec36c95d7548cc871.tar.gz
[PATCH] hdpu_cpustate.c: misc_register() can fail
Signed-off-by: Christophe Lucas <clucas@rotomalug.org>
Signed-off-by: Domen Puncer <domen@coderock.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/misc/hdpuftrs')
-rw-r--r--drivers/misc/hdpuftrs/hdpu_cpustate.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/drivers/misc/hdpuftrs/hdpu_cpustate.c b/drivers/misc/hdpuftrs/hdpu_cpustate.c
index 7501fab349e4..46de5c940555 100644
--- a/drivers/misc/hdpuftrs/hdpu_cpustate.c
+++ b/drivers/misc/hdpuftrs/hdpu_cpustate.c
@@ -192,22 +192,37 @@ static int hdpu_cpustate_probe(struct device *ddev)
 {
 	struct platform_device *pdev = to_platform_device(ddev);
 	struct resource *res;
+	struct proc_dir_entry *proc_de;
+	int ret;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	cpustate.set_addr = (unsigned long *)res->start;
 	cpustate.clr_addr = (unsigned long *)res->end - 1;
 
-	misc_register(&cpustate_dev);
-	create_proc_read_entry("sky_cpustate", 0, 0, cpustate_read_proc, NULL);
+	ret = misc_register(&cpustate_dev);
+	if (ret) {
+		printk(KERN_WARNING "sky_cpustate: Unable to register misc "
+					"device.\n");
+		cpustate.set_addr = NULL;
+		cpustate.clr_addr = NULL;
+		return ret;
+	}
+
+	proc_de = create_proc_read_entry("sky_cpustate", 0, 0,
+					cpustate_read_proc, NULL);
+	if (proc_de == NULL)
+		printk(KERN_WARNING "sky_cpustate: Unable to create proc "
+					"dir entry\n");
 
 	printk(KERN_INFO "Sky CPU State Driver v" SKY_CPUSTATE_VERSION "\n");
 	return 0;
 }
+
 static int hdpu_cpustate_remove(struct device *ddev)
 {
 
-	cpustate.set_addr = 0;
-	cpustate.clr_addr = 0;
+	cpustate.set_addr = NULL;
+	cpustate.clr_addr = NULL;
 
 	remove_proc_entry("sky_cpustate", NULL);
 	misc_deregister(&cpustate_dev);