pci_setup_pci_controller(hose);  hose->arch_data = dev; 
static int __init add_bridge(struct device_node *dev){	int len;	struct pci_controller *hose;	char* disp_name;	int *bus_range;	int primary = 1;	struct property *of_prop;	DBG("Adding PCI host bridge %s\n", dev->full_name);	bus_range = (int *) get_property(dev, "bus-range", &len);	if (bus_range == NULL || len < 2 * sizeof(int)) {		printk(KERN_WARNING "Can't get bus-range for %s, assume bus 0\n",		dev->full_name);	}	hose = alloc_bootmem(sizeof(struct pci_controller));	if (hose == NULL)		return -ENOMEM;	pci_setup_pci_controller(hose);	hose->arch_data = dev;	hose->first_busno = bus_range ? bus_range[0] : 0;	hose->last_busno = bus_range ? bus_range[1] : 0xff;	of_prop = alloc_bootmem(sizeof(struct property) +				sizeof(hose->global_number));	if (of_prop) {		memset(of_prop, 0, sizeof(struct property));		of_prop->name = "linux,pci-domain";		of_prop->length = sizeof(hose->global_number);		of_prop->value = (unsigned char *)&of_prop[1];		memcpy(of_prop->value, &hose->global_number, sizeof(hose->global_number));		prom_add_property(dev, of_prop);	}	disp_name = NULL;	if (device_is_compatible(dev, "u3-agp")) {		setup_u3_agp(hose);		disp_name = "U3-AGP";		primary = 0;	} else if (device_is_compatible(dev, "u3-ht")) {		setup_u3_ht(hose);		disp_name = "U3-HT";		primary = 1;	}	printk(KERN_INFO "Found %s PCI host bridge. Firmware bus number: %d->%d\n",		disp_name, hose->first_busno, hose->last_busno);	/* Interpret the "ranges" property */	/* This also maps the I/O region and sets isa_io/mem_base */	pci_process_bridge_OF_ranges(hose, dev, primary);	pci_setup_phb_io(hose, primary);	/* Fixup "bus-range" OF property */	fixup_bus_range(dev);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/b5166cc252190be80465f3b4f050e4a0310f71af/pci.c/buggy/arch/powerpc/platforms/maple/pci.c