]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
vfio/pci: Virtualize Maximum Payload Size
authorAlex Williamson <alex.williamson@redhat.com>
Mon, 2 Oct 2017 18:39:09 +0000 (12:39 -0600)
committerSasha Levin <alexander.levin@microsoft.com>
Wed, 23 May 2018 01:36:34 +0000 (21:36 -0400)
commitd805c39aede69ae4b2f0382a8ddde01d1727ebdc
treeb2ab4092f1bd81d60d69bc1970e248380cf9ecf8
parent65cf346b28c2999cf59c5d8cdc3506f1e76d168d
vfio/pci: Virtualize Maximum Payload Size

[ Upstream commit 523184972b282cd9ca17a76f6ca4742394856818 ]

With virtual PCI-Express chipsets, we now see userspace/guest drivers
trying to match the physical MPS setting to a virtual downstream port.
Of course a lone physical device surrounded by virtual interconnects
cannot make a correct decision for a proper MPS setting.  Instead,
let's virtualize the MPS control register so that writes through to
hardware are disallowed.  Userspace drivers like QEMU assume they can
write anything to the device and we'll filter out anything dangerous.
Since mismatched MPS can lead to AER and other faults, let's add it
to the kernel side rather than relying on userspace virtualization to
handle it.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
drivers/vfio/pci/vfio_pci_config.c