When in doubt, say N.
 
 config HOTPLUG_PCI_ACPI
-       tristate "ACPI PCI Hotplug driver"
-       depends on (!ACPI_DOCK && ACPI) || (ACPI_DOCK)
+       bool "ACPI PCI Hotplug driver"
+       depends on HOTPLUG_PCI=y && ((!ACPI_DOCK && ACPI) || (ACPI_DOCK))
        help
          Say Y here if you have a system that supports PCI Hotplug using
          ACPI.
 
-         To compile this driver as a module, choose M here: the
-         module will be called acpiphp.
-
          When in doubt, say N.
 
 config HOTPLUG_PCI_ACPI_IBM
 
 #define SLOT_NAME_SIZE  21              /* {_SUN} */
 
 bool acpiphp_debug;
+bool acpiphp_disabled;
 
 /* local variables */
 static struct acpiphp_attention_info *attention_info;
 MODULE_DESCRIPTION(DRIVER_DESC);
 MODULE_LICENSE("GPL");
 MODULE_PARM_DESC(debug, "Debugging mode enabled or not");
+MODULE_PARM_DESC(disable, "disable acpiphp driver");
 module_param_named(debug, acpiphp_debug, bool, 0644);
+module_param_named(disable, acpiphp_disabled, bool, 0444);
 
 /* export the attention callback registration methods */
 EXPORT_SYMBOL_GPL(acpiphp_register_attention);
 
 static int __init acpiphp_init(void)
 {
-       info(DRIVER_DESC " version: " DRIVER_VERSION "\n");
+       info(DRIVER_DESC " version: " DRIVER_VERSION "%s\n",
+               acpiphp_disabled ? ", disabled by user; please report a bug"
+                                : "");
 
-       if (acpi_pci_disabled)
+       if (acpi_pci_disabled || acpiphp_disabled)
                return 0;
 
        /* read all the ACPI info from the system */
 }
 
 
-static void __exit acpiphp_exit(void)
-{
-       if (acpi_pci_disabled)
-               return;
-
-       /* deallocate internal data structures etc. */
-       acpiphp_glue_exit();
-}
-
 module_init(acpiphp_init);
-module_exit(acpiphp_exit);