devices: vfio: Fix overlapping only if pba offset is greater than table offset
devices: vfio: Fix overlapping only if pba offset is greater than table offset

This fixes a bug introduced by [1] when msix pba table offset is smaller than
msix table offset.

An error may occure when booting guest with some vfio devices:

[ERROR:src/panic_hook.rs:90] thread 'main' panicked at 'attempt to subtract with overflow', devices/src/pci/vfio_pci.rs:274:26

[1] https://chromium.googlesource.com/chromiumos/platform/crosvm/+/7458a3a19bed4bc4870cd8a969e651bf95af6129

So limit the adjustment of table size only if pba table offset is greater than
table offset.

BUG=b:1971693450
TEST=passthrough a nvme which the msix table offset is greater than pba
table offset, boot and verify MSIX-capable passed-through devices work
properly.

Change-Id: I1432c2290feaa5f6db088ebd416dc346547e7952
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3279957
Reviewed-by: Tina Zhang <62198d639fa8e461845c7cb6bea9c787fde04863@intel.corp-partner.google.com>
Reviewed-by: Daniel Verkamp <72bc170b46ec491f7bdd4359a1c0bfed274de40c@chromium.org>
Tested-by: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
Commit-Queue: Daniel Verkamp <72bc170b46ec491f7bdd4359a1c0bfed274de40c@chromium.org>

google/crosvm,google/crosvm,google/crosvm,google/crosvm