PCI: vmd: Use PCI_POSSIBLE_ERROR() to check config reads
authorNaveen Naidu <naveennaidu479@gmail.com>
Thu, 18 Nov 2021 14:03:27 +0000 (19:33 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 18 Nov 2021 20:13:18 +0000 (14:13 -0600)
When config pci_ops.read() can detect failed PCI transactions, the data
returned to the CPU is PCI_ERROR_RESPONSE (~0 or 0xffffffff).

Obviously a successful PCI config read may *also* return that data if a
config register happens to contain ~0, so it doesn't definitively indicate
an error unless we know the register cannot contain ~0.

Use PCI_POSSIBLE_ERROR() to check the response we get when we read data
from hardware.  This unifies PCI error response checking and makes error
checks consistent and easier to find.

Link: https://lore.kernel.org/r/ed01cad87a2e35f3865275b5fb34290817a1ebf8.1637243717.git.naveennaidu479@gmail.com
Signed-off-by: Naveen Naidu <naveennaidu479@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Jonathan Derrick <jonathan.derrick@linux.dev>
drivers/pci/controller/vmd.c

index a45e8e59d3d4861882a58d7e64167dbeba524c04..515d05605204a0c182139696b1ea15d98daf2887 100644 (file)
@@ -541,7 +541,7 @@ static int vmd_get_phys_offsets(struct vmd_dev *vmd, bool native_hint,
                int ret;
 
                ret = pci_read_config_dword(dev, PCI_REG_VMLOCK, &vmlock);
-               if (ret || vmlock == ~0)
+               if (ret || PCI_POSSIBLE_ERROR(vmlock))
                        return -ENODEV;
 
                if (MB2_SHADOW_EN(vmlock)) {