if (!pdn->iommu_table) { 
ppci = pdn->data; if (!ppci->iommu_table) { 
static void iommu_bus_setup_pSeriesLP(struct pci_bus *bus){	struct iommu_table *tbl;	struct device_node *dn, *pdn;	unsigned int *dma_window = NULL;	DBG("iommu_bus_setup_pSeriesLP, bus %p, bus->self %p\n", bus, bus->self);	dn = pci_bus_to_OF_node(bus);	/* Find nearest ibm,dma-window, walking up the device tree */	for (pdn = dn; pdn != NULL; pdn = pdn->parent) {		dma_window = (unsigned int *)get_property(pdn, "ibm,dma-window", NULL);		if (dma_window != NULL)			break;	}	if (dma_window == NULL) {		DBG("iommu_bus_setup_pSeriesLP: bus %s seems to have no ibm,dma-window property\n", dn->full_name);		return;	}	if (!pdn->iommu_table) {		/* Bussubno hasn't been copied yet.		 * Do it now because iommu_table_setparms_lpar needs it.		 */		pdn->bussubno = bus->number;		tbl = (struct iommu_table *)kmalloc(sizeof(struct iommu_table),						    GFP_KERNEL);			iommu_table_setparms_lpar(pdn->phb, pdn, tbl, dma_window);		pdn->iommu_table = iommu_init_table(tbl);	}	if (pdn != dn)		dn->iommu_table = pdn->iommu_table;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/1635317facea3094ddf34082cd86797efb1d9f7e/pSeries_iommu.c/buggy/arch/ppc64/kernel/pSeries_iommu.c