diff options
| author | Gavin Shan | 2015-03-27 01:29:00 +0100 | 
|---|---|---|
| committer | Benjamin Herrenschmidt | 2015-03-31 04:10:40 +0200 | 
| commit | 027fa02f84e851e21daffdf8900d6117071890f8 (patch) | |
| tree | b0a0edef182df124404e010ba5ad3a38a1694949 /arch/powerpc | |
| parent | powerpc/eeh: Fix PE#0 check in eeh_add_to_parent_pe() (diff) | |
| download | kernel-qcow2-linux-027fa02f84e851e21daffdf8900d6117071890f8.tar.gz kernel-qcow2-linux-027fa02f84e851e21daffdf8900d6117071890f8.tar.xz kernel-qcow2-linux-027fa02f84e851e21daffdf8900d6117071890f8.zip | |
powerpc/powernv: Don't map M64 segments using M32DT
If M64 has been supported, the prefetchable 64-bits memory resources
shouldn't be mapped to the corresponding PE# via M32DT. Unfortunately,
we're doing that in pnv_ioda_setup_pe_seg() wrongly. The issue was
introduced by commit 262af55 ("powerpc/powernv: Enable M64 aperatus
for PHB3"). The patch fixes the issue by simply skipping M64 resources
when updating to M32DT.
Cc: <stable@vger.kernel.org>  # v3.17+
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc')
| -rw-r--r-- | arch/powerpc/platforms/powernv/pci-ioda.c | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c index 26fe09936935..76b344125cef 100644 --- a/arch/powerpc/platforms/powernv/pci-ioda.c +++ b/arch/powerpc/platforms/powernv/pci-ioda.c @@ -1777,7 +1777,8 @@ static void pnv_ioda_setup_pe_seg(struct pci_controller *hose,  				region.start += phb->ioda.io_segsize;  				index++;  			} -		} else if (res->flags & IORESOURCE_MEM) { +		} else if ((res->flags & IORESOURCE_MEM) && +			   !pnv_pci_is_mem_pref_64(res->flags)) {  			region.start = res->start -  				       hose->mem_offset[0] -  				       phb->ioda.m32_pci_base; | 
