vfio/pci: Fix SR-IOV VF handling with MMIO blocking
authorAlex Williamson <alex.williamson@redhat.com>
Thu, 25 Jun 2020 17:04:23 +0000 (11:04 -0600)
committerAlex Williamson <alex.williamson@redhat.com>
Thu, 25 Jun 2020 17:04:23 +0000 (11:04 -0600)
commitebfa440ce38b7e2e04c3124aa89c8a9f4094cf21
treeb1381bd715219c44e7759a62e23b00e94f2129e4
parentf751820bc319a30d31a80fe511d88642aaefcdee
vfio/pci: Fix SR-IOV VF handling with MMIO blocking

SR-IOV VFs do not implement the memory enable bit of the command
register, therefore this bit is not set in config space after
pci_enable_device().  This leads to an unintended difference
between PF and VF in hand-off state to the user.  We can correct
this by setting the initial value of the memory enable bit in our
virtualized config space.  There's really no need however to
ever fault a user on a VF though as this would only indicate an
error in the user's management of the enable bit, versus a PF
where the same access could trigger hardware faults.

Fixes: abafbc551fdd ("vfio-pci: Invalidate mmaps and block MMIO access on disabled memory")
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/pci/vfio_pci_config.c