mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-02-05 10:46:58 +00:00
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>
This commit is contained in:
parent
b0eab5b29a
commit
419dbd5e1f
@ -1612,7 +1612,10 @@ static int pnv_pci_ioda_dma_set_mask(struct pci_dev *pdev, u64 dma_mask)
|
||||
|
||||
/* Update peer npu devices */
|
||||
if (pe->flags & PNV_IODA_PE_PEER)
|
||||
for (i = 0; pe->peers[i]; i++) {
|
||||
for (i = 0; i < PNV_IODA_MAX_PEER_PES; i++) {
|
||||
if (!pe->peers[i])
|
||||
continue;
|
||||
|
||||
linked_npu_dev = pe->peers[i]->pdev;
|
||||
if (dma_get_mask(&linked_npu_dev->dev) != dma_mask)
|
||||
dma_set_mask(&linked_npu_dev->dev, dma_mask);
|
||||
|
Loading…
x
Reference in New Issue
Block a user