• Alistair Popple's avatar
    powerpc/powernv: Fix update of NVLink DMA mask · 419dbd5e
    Alistair Popple authored
    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: 5d2aa710 ("powerpc/powernv: Add support for Nvlink NPUs")
    Signed-off-by: default avatarAlistair Popple <alistair@popple.id.au>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    419dbd5e
pci-ioda.c 88.5 KB