vfio/pci: Don't regenerate vconfig for all BARs if !bardirty
authorZenghui Yu <yuzenghui@huawei.com>
Mon, 21 Sep 2020 04:51:16 +0000 (12:51 +0800)
committerAlex Williamson <alex.williamson@redhat.com>
Mon, 21 Sep 2020 20:08:12 +0000 (14:08 -0600)
commit1c0f68252a6a8a793ff3352e3580664d18ec5955
tree4972920a78c93715f454de45cbed0d4a2dd6051a
parentba4f184e126b751d1bffad5897f263108befc780
vfio/pci: Don't regenerate vconfig for all BARs if !bardirty

Now we regenerate vconfig for all the BARs via vfio_bar_fixup(), every
time any offset of any of them are read.  Though BARs aren't re-read
regularly, the regeneration can be avoided if no BARs had been written
since they were last read, in which case vdev->bardirty is false.

Let's return immediately in vfio_bar_fixup() if bardirty is false.

Suggested-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
drivers/vfio/pci/vfio_pci_config.c