cpqhp_event_stop_thread(); 
if (initialized) cpqhp_event_stop_thread(); 
static void __exit unload_cpqphpd(void){	struct pci_func *next;	struct pci_func *TempSlot;	int loop;	u32 rc;	struct controller *ctrl;	struct controller *tctrl;	struct pci_resource *res;	struct pci_resource *tres;	rc = compaq_nvram_store(cpqhp_rom_start);	ctrl = cpqhp_ctrl_list;	while (ctrl) {		if (ctrl->hpc_reg) {			u16 misc;			rc = read_slot_enable (ctrl);						writeb(0, ctrl->hpc_reg + SLOT_SERR);			writel(0xFFFFFFC0L | ~rc, ctrl->hpc_reg + INT_MASK);						misc = readw(ctrl->hpc_reg + MISC);			misc &= 0xFFFD;			writew(misc, ctrl->hpc_reg + MISC);		}		ctrl_slot_cleanup(ctrl);		res = ctrl->io_head;		while (res) {			tres = res;			res = res->next;			kfree(tres);		}		res = ctrl->mem_head;		while (res) {			tres = res;			res = res->next;			kfree(tres);		}		res = ctrl->p_mem_head;		while (res) {			tres = res;			res = res->next;			kfree(tres);		}		res = ctrl->bus_head;		while (res) {			tres = res;			res = res->next;			kfree(tres);		}		kfree (ctrl->pci_bus);		tctrl = ctrl;		ctrl = ctrl->next;		kfree(tctrl);	}	for (loop = 0; loop < 256; loop++) {		next = cpqhp_slot_list[loop];		while (next != NULL) {			res = next->io_head;			while (res) {				tres = res;				res = res->next;				kfree(tres);			}			res = next->mem_head;			while (res) {				tres = res;				res = res->next;				kfree(tres);			}			res = next->p_mem_head;			while (res) {				tres = res;				res = res->next;				kfree(tres);			}			res = next->bus_head;			while (res) {				tres = res;				res = res->next;				kfree(tres);			}			TempSlot = next;			next = next->next;			kfree(TempSlot);		}	}	// Stop the notification mechanism	cpqhp_event_stop_thread();	//unmap the rom address	if (cpqhp_rom_start)		iounmap(cpqhp_rom_start);	if (smbios_start)		iounmap(smbios_start);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4002307d2b563a6ab317ca4d7eb1d201a6673d37/cpqphp_core.c/clean/drivers/pci/hotplug/cpqphp_core.c