On Tue, 17 Jul 2018 11:02:04 -0600 Logan Gunthorpe <logang@xxxxxxxxxxxx> wrote: > In order to support P2P traffic on a segment of the PCI hierarchy, > we must be able to disable the ACS redirect bits for select > PCI bridges. The bridges must be selected before the devices are > discovered by the kernel and the IOMMU groups created. Therefore, > a kernel command line parameter is created to specify devices > which must have their ACS bits disabled. > > The new parameter takes a list of devices separated by a semicolon. > Each device specified will have it's ACS redirect bits disabled. > This is similar to the existing 'resource_alignment' parameter. > > The ACS Request P2P Request Redirect, P2P Completion Redirect and P2P > Egress Control bits are disabled which is sufficient to always allow > passing P2P traffic uninterrupted. The bits are set after the kernel > (optionally) enables the ACS bits itself. It is also done regardless of > whether the kernel sets the bits or not seeing some BIOS firmware is known > to set the bits on boot. > > If the user tries to disable the ACS redirct for a device without the > ACS capability, a warning is printed to dmesg. > > Signed-off-by: Logan Gunthorpe <logang@xxxxxxxxxxxx> > Reviewed-by: Stephen Bates <sbates@xxxxxxxxxxxx> > Acked-by: Christian König <christian.koenig@xxxxxxx> > --- > Documentation/admin-guide/kernel-parameters.txt | 9 +++ > drivers/pci/pci.c | 76 ++++++++++++++++++++++++- > 2 files changed, 83 insertions(+), 2 deletions(-) Thanks for the re-spins! Reviewed-by: Alex Williamson <alex.williamson@xxxxxxxxxx>