public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] PnP Fixes for 2.6.0-test5
@ 2003-09-21 20:09 Adam Belay
  2003-09-21 20:10 ` Adam Belay
                   ` (6 more replies)
  0 siblings, 7 replies; 10+ messages in thread
From: Adam Belay @ 2003-09-21 20:09 UTC (permalink / raw)
  To: linux-kernel

# --------------------------------------------
# 03/09/21	ambx1@neo.rr.com	1.1354
# [PNPBIOS] compilation fix for pnpbios without proc support
#
# Here's an updated patch that will correct the compile error when PROC
# FS is disabled.  It also introduces better proc error recovery and
# moves the local proc functions to the local include file.  Thanks to
# Daniele Bellucci for finding the problem and contributing to this
# patch.
#
# --------------------------------------------
#
diff -Nru a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
--- a/drivers/pnp/pnpbios/core.c	Sun Sep 21 19:46:16 2003
+++ b/drivers/pnp/pnpbios/core.c	Sun Sep 21 19:46:16 2003
@@ -431,14 +431,15 @@
 	}
 
 	/* register with the pnp layer */
-	pnp_register_protocol(&pnpbios_protocol);
+	if (pnp_register_protocol(&pnpbios_protocol)) {
+		printk(KERN_ERR "PnPBIOS: Unable to register driver.  Aborting.\n");
+		return -EIO;
+	}
 
-#ifdef CONFIG_PROC_FS
 	/* start the proc interface */
 	ret = pnpbios_proc_init();
 	if (ret)
-		return ret;
-#endif
+		printk(KERN_ERR "PnPBIOS: Failed to create proc interface.\n");
 
 	/* scan for pnpbios devices */
 	build_devlist();
diff -Nru a/drivers/pnp/pnpbios/pnpbios.h b/drivers/pnp/pnpbios/pnpbios.h
--- a/drivers/pnp/pnpbios/pnpbios.h	Sun Sep 21 19:46:16 2003
+++ b/drivers/pnp/pnpbios/pnpbios.h	Sun Sep 21 19:46:16 2003
@@ -9,3 +9,13 @@
 
 extern void pnpbios_print_status(const char * module, u16 status);
 extern int pnpbios_probe_installation(void);
+
+#ifdef CONFIG_PROC_FS
+extern int pnpbios_interface_attach_device(struct pnp_bios_node * node);
+extern int pnpbios_proc_init (void);
+extern void pnpbios_proc_exit (void);
+#else
+static inline int pnpbios_interface_attach_device(struct pnp_bios_node * node) { return 0; }
+static inline int pnpbios_proc_init (void) { return 0; }
+static inline void pnpbios_proc_exit (void) { ; }
+#endif /* CONFIG_PROC */
diff -Nru a/drivers/pnp/pnpbios/proc.c b/drivers/pnp/pnpbios/proc.c
--- a/drivers/pnp/pnpbios/proc.c	Sun Sep 21 19:46:16 2003
+++ b/drivers/pnp/pnpbios/proc.c	Sun Sep 21 19:46:16 2003
@@ -31,6 +31,8 @@
 
 #include <asm/uaccess.h>
 
+#include "pnpbios.h"
+
 static struct proc_dir_entry *proc_pnp = NULL;
 static struct proc_dir_entry *proc_pnp_boot = NULL;
 
@@ -213,6 +215,9 @@
 	struct proc_dir_entry *ent;
 
 	sprintf(name, "%02x", node->handle);
+
+	if (!proc_pnp)
+		return -EIO;
 	if ( !pnpbios_dont_use_current_config ) {
 		ent = create_proc_entry(name, 0, proc_pnp);
 		if (ent) {
@@ -221,6 +226,9 @@
 			ent->data = (void *)(long)(node->handle);
 		}
 	}
+
+	if (!proc_pnp_boot)
+		return -EIO;
 	ent = create_proc_entry(name, 0, proc_pnp_boot);
 	if (ent) {
 		ent->read_proc = proc_read_node;
@@ -228,6 +236,7 @@
 		ent->data = (void *)(long)(node->handle+0x100);
 		return 0;
 	}
+
 	return -EIO;
 }
 
@@ -257,8 +266,9 @@
 {
 	int i;
 	char name[3];
-	
-	if (!proc_pnp) return;
+
+	if (!proc_pnp)
+		return;
 
 	for (i=0; i<0xff; i++) {
 		sprintf(name, "%02x", i);
diff -Nru a/include/linux/pnpbios.h b/include/linux/pnpbios.h
--- a/include/linux/pnpbios.h	Sun Sep 21 19:46:16 2003
+++ b/include/linux/pnpbios.h	Sun Sep 21 19:46:16 2003
@@ -26,7 +26,7 @@
 #ifdef __KERNEL__
 
 #include <linux/types.h>
-#include <linux/pci.h>
+#include <linux/pnp.h>
 
 /*
  * Return codes
@@ -135,9 +135,6 @@
 extern struct pnp_dev_node_info node_info;
 extern void *pnpbios_kmalloc(size_t size, int f);
 extern int pnpbios_init (void);
-extern int pnpbios_interface_attach_device(struct pnp_bios_node * node);
-extern int pnpbios_proc_init (void);
-extern void pnpbios_proc_exit (void);
 
 extern int pnp_bios_dev_node_info (struct pnp_dev_node_info *data);
 extern int pnp_bios_get_dev_node (u8 *nodenum, char config, struct pnp_bios_node *data);

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2003-09-24 20:33 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-21 20:09 [PATCH] PnP Fixes for 2.6.0-test5 Adam Belay
2003-09-21 20:10 ` Adam Belay
2003-09-21 20:10 ` Adam Belay
2003-09-21 20:11 ` Adam Belay
2003-09-22 11:32   ` Alan Cox
2003-09-24 16:25     ` Adam Belay
2003-09-21 20:11 ` Adam Belay
2003-09-21 20:12 ` Adam Belay
2003-09-21 20:12 ` Adam Belay
2003-09-21 20:13 ` Adam Belay

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox