diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries/iommu.c')
| -rw-r--r-- | arch/powerpc/platforms/pseries/iommu.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c index b7dfc1359d01..3e8865b187de 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -927,7 +927,7 @@ static int query_ddw(struct pci_dev *dev, const u32 *ddw_avail,  	dn = pci_device_to_OF_node(dev);  	pdn = PCI_DN(dn);  	buid = pdn->phb->buid; -	cfg_addr = (pdn->busno << 8) | pdn->devfn; +	cfg_addr = ((pdn->busno << 16) | (pdn->devfn << 8));  	ret = rtas_call(ddw_avail[0], 3, 5, (u32 *)query,  		  cfg_addr, BUID_HI(buid), BUID_LO(buid)); @@ -956,7 +956,7 @@ static int create_ddw(struct pci_dev *dev, const u32 *ddw_avail,  	dn = pci_device_to_OF_node(dev);  	pdn = PCI_DN(dn);  	buid = pdn->phb->buid; -	cfg_addr = (pdn->busno << 8) | pdn->devfn; +	cfg_addr = ((pdn->busno << 16) | (pdn->devfn << 8));  	do {  		/* extra outputs are LIOBN and dma-addr (hi, lo) */  | 
