[PATCH] PCI Hotplug changes for 2.5.50

From: Greg KH (greg@kroah.com)
Date: Mon Dec 02 2002 - 03:25:25 EST


ChangeSet 1.871.3.1, 2002/11/26 11:23:49-08:00, greg@kroah.com

PCI hotplug: moved cpci_hotplug.o to be built into pci_hotplug.o if enabled.

diff -Nru a/drivers/hotplug/Makefile b/drivers/hotplug/Makefile
--- a/drivers/hotplug/Makefile Sun Dec 1 23:26:33 2002
+++ b/drivers/hotplug/Makefile Sun Dec 1 23:26:33 2002
@@ -8,13 +8,17 @@
 obj-$(CONFIG_HOTPLUG_PCI_COMPAQ) += cpqphp.o
 obj-$(CONFIG_HOTPLUG_PCI_IBM) += ibmphp.o
 obj-$(CONFIG_HOTPLUG_PCI_ACPI) += acpiphp.o
-obj-$(CONFIG_HOTPLUG_PCI_CPCI) += cpci_hotplug.o
 obj-$(CONFIG_HOTPLUG_PCI_CPCI_ZT5550) += cpcihp_zt5550.o
 obj-$(CONFIG_HOTPLUG_PCI_CPCI_GENERIC) += cpcihp_generic.o
 
 pci_hotplug-objs := pci_hotplug_core.o \
                                 pci_hotplug_util.o
 
+ifdef CONFIG_HOTPLUG_PCI_CPCI
+pci_hotplug-objs += cpci_hotplug_core.o \
+ cpci_hotplug_pci.o
+endif
+
 cpqphp-objs := cpqphp_core.o \
                                 cpqphp_ctrl.o \
                                 cpqphp_proc.o \
@@ -30,9 +34,6 @@
                                 acpiphp_glue.o \
                                 acpiphp_pci.o \
                                 acpiphp_res.o
-
-cpci_hotplug-objs := cpci_hotplug_core.o \
- cpci_hotplug_pci.o
 
 ifdef CONFIG_HOTPLUG_PCI_ACPI
   EXTRA_CFLAGS += -D_LINUX -I$(TOPDIR)/drivers/acpi
diff -Nru a/drivers/hotplug/cpci_hotplug_core.c b/drivers/hotplug/cpci_hotplug_core.c
--- a/drivers/hotplug/cpci_hotplug_core.c Sun Dec 1 23:26:33 2002
+++ b/drivers/hotplug/cpci_hotplug_core.c Sun Dec 1 23:26:33 2002
@@ -891,16 +891,17 @@
         return;
 }
 
-static int __init
-cpci_hotplug_init(void)
+int __init
+cpci_hotplug_init(int debug)
 {
         spin_lock_init(&list_lock);
+ cpci_debug = debug;
 
         info(DRIVER_DESC " version: " DRIVER_VERSION);
         return 0;
 }
 
-static void __exit
+void __exit
 cpci_hotplug_exit(void)
 {
         /*
@@ -909,14 +910,6 @@
         cleanup_slots();
 }
 
-module_init(cpci_hotplug_init);
-module_exit(cpci_hotplug_exit);
-
-MODULE_AUTHOR(DRIVER_AUTHOR);
-MODULE_DESCRIPTION(DRIVER_DESC);
-MODULE_LICENSE("GPL");
-MODULE_PARM(cpci_debug, "i");
-MODULE_PARM_DESC(cpci_debug, "Debugging mode");
 
 EXPORT_SYMBOL_GPL(cpci_hp_register_controller);
 EXPORT_SYMBOL_GPL(cpci_hp_unregister_controller);
diff -Nru a/drivers/hotplug/pci_hotplug_core.c b/drivers/hotplug/pci_hotplug_core.c
--- a/drivers/hotplug/pci_hotplug_core.c Sun Dec 1 23:26:33 2002
+++ b/drivers/hotplug/pci_hotplug_core.c Sun Dec 1 23:26:33 2002
@@ -60,8 +60,8 @@
 /* local variables */
 static int debug;
 
-#define DRIVER_VERSION "0.4"
-#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>"
+#define DRIVER_VERSION "0.5"
+#define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Scott Murray <scottm@somanetworks.com>"
 #define DRIVER_DESC "PCI Hot Plug PCI Core"
 
 
@@ -89,7 +89,7 @@
 static spinlock_t mount_lock; /* protects our mount_count */
 static spinlock_t list_lock;
 
-LIST_HEAD(pci_hotplug_slot_list);
+static LIST_HEAD(pci_hotplug_slot_list);
 
 /* these strings match up with the values in pci_bus_speed */
 static char *pci_bus_speed_strings[] = {
@@ -121,6 +121,14 @@
 static const char *slotdir_name = "slots";
 #endif
 
+#ifdef CONFIG_HOTPLUG_PCI_CPCI
+extern int cpci_hotplug_init(int debug);
+extern void cpci_hotplug_exit(void);
+#else
+static inline int cpci_hotplug_init(int debug) { return 0; }
+static inline void cpci_hotplug_exit(void) { }
+#endif
+
 static struct inode *pcihpfs_get_inode (struct super_block *sb, int mode, dev_t dev)
 {
         struct inode *inode = new_inode(sb);
@@ -1273,19 +1281,30 @@
                 goto exit;
         }
 
+ result = cpci_hotplug_init(debug);
+ if (result) {
+ err ("cpci_hotplug_init with error %d\n", result);
+ goto error_fs;
+ }
+
 #ifdef CONFIG_PROC_FS
         /* create mount point for pcihpfs */
         slotdir = proc_mkdir(slotdir_name, proc_bus_pci_dir);
 #endif
 
         info (DRIVER_DESC " version: " DRIVER_VERSION "\n");
-
+ goto exit;
+
+error_fs:
+ unregister_filesystem(&pcihpfs_type);
 exit:
         return result;
 }
 
 static void __exit pci_hotplug_exit (void)
 {
+ cpci_hotplug_exit();
+
         unregister_filesystem(&pcihpfs_type);
 
 #ifdef CONFIG_PROC_FS
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Dec 07 2002 - 22:00:12 EST