if (provider->bus_fixup) { 
if (provider->bus_fixup) 
static void sn_pci_controller_fixup(int segment, int busnum){	int status = 0;	int nasid, cnode;	struct pci_bus *bus;	struct pci_controller *controller;	struct pcibus_bussoft *prom_bussoft_ptr;	struct hubdev_info *hubdev_info;	void *provider_soft;	struct sn_pcibus_provider *provider;	status =	    sal_get_pcibus_info((u64) segment, (u64) busnum,				(u64) ia64_tpa(&prom_bussoft_ptr));	if (status > 0) {		return;		/* bus # does not exist */	}	prom_bussoft_ptr = __va(prom_bussoft_ptr);	controller = sn_alloc_pci_sysdata();	/* controller non-zero is BUG'd in sn_alloc_pci_sysdata */	bus = pci_scan_bus(busnum, &pci_root_ops, controller);	if (bus == NULL) {		return;		/* error, or bus already scanned */	}	/*	 * Per-provider fixup.  Copies the contents from prom to local	 * area and links SN_PCIBUS_BUSSOFT().	 */	if (prom_bussoft_ptr->bs_asic_type >= PCIIO_ASIC_MAX_TYPES) {		return;		/* unsupported asic type */	}	provider = sn_pci_provider[prom_bussoft_ptr->bs_asic_type];	if (provider == NULL) {		return;		/* no provider registerd for this asic */	}	provider_soft = NULL;	if (provider->bus_fixup) {		provider_soft = (*provider->bus_fixup) (prom_bussoft_ptr);	}	if (provider_soft == NULL) {		return;		/* fixup failed or not applicable */	}	/*	 * Generic bus fixup goes here.  Don't reference prom_bussoft_ptr	 * after this point.	 */	bus->sysdata = controller;	PCI_CONTROLLER(bus)->platform_data = provider_soft;	nasid = NASID_GET(SN_PCIBUS_BUSSOFT(bus)->bs_base);	cnode = nasid_to_cnodeid(nasid);	hubdev_info = (struct hubdev_info *)(NODEPDA(cnode)->pdinfo);	SN_PCIBUS_BUSSOFT(bus)->bs_xwidget_info =	    &(hubdev_info->hdi_xwidget_info[SN_PCIBUS_BUSSOFT(bus)->bs_xid]);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6f354b014b51716166f13f68b29212d3c44ed2c4/io_init.c/clean/arch/ia64/sn/kernel/io_init.c