From rshah1@unix-os.sc.intel.com Thu Oct 13 13:21:12 2005 Message-Id: <20051013190822.699063905@csdlinux-2.jf.intel.com> Date: Thu, 13 Oct 2005 12:05:44 -0700 From: rajesh.shah@intel.com To: kristen.c.accardi@intel.com, gregkh@suse.de Cc: david.keck@amd.com, akpm@osdl.org, Rajesh Shah Subject: [patch 9/9] shpchp: fix oops at driver unload Content-Disposition: inline; filename=shpc-09-remove-sysfs-files-on-unload.patch At unload time, the shpchp driver does not remove sysfs files it had created in the driver's probe entry point. This patch fixes this problem. Signed-off-by: Rajesh Shah Signed-off-by: Greg Kroah-Hartman --- drivers/pci/hotplug/shpchp.h | 1 + drivers/pci/hotplug/shpchp_core.c | 1 + drivers/pci/hotplug/shpchp_sysfs.c | 5 +++++ 3 files changed, 7 insertions(+) --- gregkh-2.6.orig/drivers/pci/hotplug/shpchp.h +++ gregkh-2.6/drivers/pci/hotplug/shpchp.h @@ -173,6 +173,7 @@ extern void get_hp_params_from_firmware( struct hotplug_params *hpp); extern int shpchprm_get_physical_slot_number(struct controller *ctrl, u32 *sun, u8 busnum, u8 devnum); +extern void shpchp_remove_ctrl_files(struct controller *ctrl); /* Global variables */ --- gregkh-2.6.orig/drivers/pci/hotplug/shpchp_core.c +++ gregkh-2.6/drivers/pci/hotplug/shpchp_core.c @@ -480,6 +480,7 @@ static void __exit unload_shpchpd(void) ctrl = shpchp_ctrl_list; while (ctrl) { + shpchp_remove_ctrl_files(ctrl); cleanup_slots(ctrl); kfree (ctrl->pci_bus); --- gregkh-2.6.orig/drivers/pci/hotplug/shpchp_sysfs.c +++ gregkh-2.6/drivers/pci/hotplug/shpchp_sysfs.c @@ -89,3 +89,8 @@ void shpchp_create_ctrl_files (struct co { device_create_file (&ctrl->pci_dev->dev, &dev_attr_ctrl); } + +void shpchp_remove_ctrl_files(struct controller *ctrl) +{ + device_remove_file(&ctrl->pci_dev->dev, &dev_attr_ctrl); +}