OSDN Git Service

powerpc/powernv: Reserve a hole which appears after enabling IOV
authorAlexey Kardashevskiy <aik@ozlabs.ru>
Wed, 27 Sep 2017 06:52:31 +0000 (16:52 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 6 Nov 2017 05:48:12 +0000 (16:48 +1100)
commitd6f934fd48803d9e58040e2cbab2feafe9bb9f01
tree0e0c38ac413efdd2c67f1af91766cbc99f67e0d7
parentb8f89fea599d91e674497aad572613eb63181f31
powerpc/powernv: Reserve a hole which appears after enabling IOV

In order to make generic IOV code work, the physical function IOV BAR
should start from offset of the first VF. Since M64 segments share
PE number space across PHB, and some PEs may be in use at the time
when IOV is enabled, the existing code shifts the IOV BAR to the index
of the first PE/VF. This creates a hole in IOMEM space which can be
potentially taken by some other device.

This reserves a temporary hole on a parent and releases it when IOV is
disabled; the temporary resources are stored in pci_dn to avoid
kmalloc/free.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/pci-bridge.h
arch/powerpc/platforms/powernv/pci-ioda.c