[PATCH][RFC] procfs_failure && possible uses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



description:
audit return code of create_proc_* function is a entry in janitors
TODO list. Audit this return and printk() when it fails, spams log of
system without compiled proc support. So this patch can correct it.

Signed-off-by: Christophe Lucas <[email protected]>


 arch/arm/kernel/apm.c   |    7 ++++---
 arch/arm/kernel/ecard.c |   12 ++++++++++--
 include/linux/proc_fs.h |    5 +++++
 3 files changed, 19 insertions(+), 5 deletions(-)

Index: linux-2.6.13-rc3-mm2/include/linux/proc_fs.h
===================================================================
--- linux-2.6.13-rc3-mm2.orig/include/linux/proc_fs.h
+++ linux-2.6.13-rc3-mm2/include/linux/proc_fs.h
@@ -83,6 +83,9 @@ struct vmcore {
 
 #ifdef CONFIG_PROC_FS
 
+#define procfs_failure(fmt,arg...) \
+	printk(KERN_WARNING fmt,##arg)
+
 extern struct proc_dir_entry proc_root;
 extern struct proc_dir_entry *proc_root_fs;
 extern struct proc_dir_entry *proc_net;
@@ -198,6 +201,8 @@ static inline void proc_net_remove(const
 
 #else
 
+#define procfs_failure(fmt,arg...) do { } while(0)
+
 #define proc_root_driver NULL
 #define proc_net NULL
 #define proc_bus NULL
Index: linux-2.6.13-rc3-mm2/arch/arm/kernel/ecard.c
===================================================================
--- linux-2.6.13-rc3-mm2.orig/arch/arm/kernel/ecard.c
+++ linux-2.6.13-rc3-mm2/arch/arm/kernel/ecard.c
@@ -776,9 +776,17 @@ static struct proc_dir_entry *proc_bus_e
 
 static void ecard_proc_init(void)
 {
+	struct proc_dir_entry *proc_entry;
+
 	proc_bus_ecard_dir = proc_mkdir("ecard", proc_bus);
-	create_proc_info_entry("devices", 0, proc_bus_ecard_dir,
-		get_ecard_dev_info);
+	if (!proc_bus_ecard_dir)
+		procfs_failure("ecard: Unable to create proc dir entry.\n");
+	else {
+		proc_entry = create_proc_info_entry("devices", 0, 
+				proc_bus_ecard_dir, get_ecard_dev_info);
+		if (!proc_entry)
+			procfs_failure("ecard: Unable to create proc entry.\n");
+	}
 }
 
 #define ec_set_resource(ec,nr,st,sz)				\
Index: linux-2.6.13-rc3-mm2/arch/arm/kernel/apm.c
===================================================================
--- linux-2.6.13-rc3-mm2.orig/arch/arm/kernel/apm.c
+++ linux-2.6.13-rc3-mm2/arch/arm/kernel/apm.c
@@ -515,6 +515,7 @@ static int kapmd(void *arg)
 static int __init apm_init(void)
 {
 	int ret;
+	struct proc_dir_entry *proc_entry;
 
 	if (apm_disabled) {
 		printk(KERN_NOTICE "apm: disabled on user request.\n");
@@ -534,9 +535,9 @@ static int __init apm_init(void)
 		return ret;
 	}
 
-#ifdef CONFIG_PROC_FS
-	create_proc_info_entry("apm", 0, NULL, apm_get_info);
-#endif
+	proc_entry = create_proc_info_entry("apm", 0, NULL, apm_get_info);
+	if (!proc_entry)
+		procfs_failure("apm: Unable to create apm proc entry.\n");
 
 	ret = misc_register(&apm_device);
 	if (ret != 0) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux