if (rc) goto register_err;  rc = sysfs_create_file(&bss_hotplug_slot->kobj, &sn_slot_path_attr.attr); 
static int sn_hotplug_slot_register(struct pci_bus *pci_bus){	int device;	struct hotplug_slot *bss_hotplug_slot;	int rc = 0;	/*	 * Currently only four devices are supported,	 * in the future there maybe more -- up to 32.	 */	for (device = 0; device < SN_MAX_HP_SLOTS ; device++) {		if (sn_pci_slot_valid(pci_bus, device) != 1)			continue;		bss_hotplug_slot = kcalloc(1,sizeof(struct hotplug_slot),					   GFP_KERNEL);		if (!bss_hotplug_slot) {			rc = -ENOMEM;			goto alloc_err;		}		bss_hotplug_slot->info =			kcalloc(1,sizeof(struct hotplug_slot_info),				GFP_KERNEL);		if (!bss_hotplug_slot->info) {			rc = -ENOMEM;			goto alloc_err;		}		if (sn_hp_slot_private_alloc(bss_hotplug_slot,					     pci_bus, device)) {			rc = -ENOMEM;			goto alloc_err;		}		bss_hotplug_slot->ops = &sn_hotplug_slot_ops;		bss_hotplug_slot->release = &sn_release_slot;		rc = pci_hp_register(bss_hotplug_slot);		if (rc)			goto register_err;	}	dev_dbg(pci_bus->self, "Registered bus with hotplug\n");	return rc;register_err:	dev_dbg(pci_bus->self, "bus failed to register with err = %d\n",	        rc);alloc_err:	if (rc == -ENOMEM)		dev_dbg(pci_bus->self, "Memory allocation error\n");	/* destroy THIS element */	if (bss_hotplug_slot)		sn_release_slot(bss_hotplug_slot);	/* destroy anything else on the list */	while ((bss_hotplug_slot = sn_hp_destroy()))		pci_hp_deregister(bss_hotplug_slot);	return rc;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1d2450a4a6eb656798c6282b5ffc8e5f9f52ac14/sgi_hotplug.c/clean/drivers/pci/hotplug/sgi_hotplug.c