• Casey Leedom's avatar
    PCI/cxgb4: Extend T3 PCI quirk to T4+ devices · 7dcf688d
    Casey Leedom authored
    We've run into a problem where our device is attached
    to a Virtual Machine and the use of the new pci_set_vpd_size()
    API doesn't help.  The VM kernel has been informed that
    the accesses are okay, but all of the actual VPD Capability
    Accesses are trapped down into the KVM Hypervisor where it
    goes ahead and imposes the silent denials.
    
    The right idea is to follow the kernel.org
    commit 1c7de2b4 ("PCI: Enable access to non-standard VPD for
    Chelsio devices (cxgb3)") which Alexey Kardashevskiy authored
    to establish a PCI Quirk for our T3-based adapters. This commit
    extends that PCI Quirk to cover Chelsio T4 devices and later.
    
    The advantage of this approach is that the VPD Size gets set early
    in the Base OS/Hypervisor Boot and doesn't require that the cxgb4
    driver even be available in the Base OS/Hypervisor.  Thus PF4 can
    be exported to a Virtual Machine and everything should work.
    
    Fixes: 67e65879 ("cxgb4: Set VPD size so we can read both VPD structures")
    Cc: <stable@vger.kernel.org>  # v4.9+
    Signed-off-by: default avatarCasey Leedom <leedom@chelsio.com>
    Signed-off-by: default avatarArjun Vynipadath <arjun@chelsio.com>
    Signed-off-by: default avatarGanesh Goudar <ganeshgr@chelsio.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    7dcf688d
quirks.c 171 KB