powerpc/powernv: Fix update of NVLink DMA mask
authorAlistair Popple <alistair@popple.id.au>
Fri, 8 Jan 2016 00:35:09 +0000 (11:35 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 11 Jan 2016 09:30:48 +0000 (20:30 +1100)
commit419dbd5e1ff0e45a6e1d28c1f7b74d121d2a56e7
treec6a12df0c929bace0032753a38baef81c9e0259a
parentb0eab5b29a55fd9f31fad28df520337545c813ef
powerpc/powernv: Fix update of NVLink DMA mask

The emulated NVLink PCI devices share the same IODA2 TCE tables but only
support a single TVT (instead of the normal two for PCI devices). This
requires the kernel to manually replace windows with either the bypass
or non-bypass window depending on what the driver has requested.

Unfortunately an incorrect optimisation was made in
pnv_pci_ioda_dma_set_mask() which caused updating of some NPU device PEs
to be skipped in certain configurations due to an incorrect assumption
that a NULL peer PE in the array indicated there were no more peers
present. This patch fixes the problem by ensuring all peer PEs are
updated.

Fixes: 5d2aa710e697 ("powerpc/powernv: Add support for Nvlink NPUs")
Signed-off-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/powernv/pci-ioda.c