]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
PCI/cxgb4: Extend T3 PCI quirk to T4+ devices
authorCasey Leedom <leedom@chelsio.com>
Thu, 15 Feb 2018 14:33:18 +0000 (20:03 +0530)
committerSeth Forshee <seth.forshee@canonical.com>
Wed, 28 Feb 2018 14:47:22 +0000 (08:47 -0600)
commitac4ae55a4fc0c21fa5d02fcaa0bc9da6089696c4
treefa8ecd9d8149abf3b7b279b7745b8de62706de0b
parent03394169a185bf69b91404c85fb919ccf43d6753
PCI/cxgb4: Extend T3 PCI quirk to T4+ devices

BugLink: https://bugs.launchpad.net/bugs/1752317
commit 7dcf688d4c78a18ba9538b2bf1b11dc7a43fe9be upstream.

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 1c7de2b4ff88 ("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: 67e658794ca1 ("cxgb4: Set VPD size so we can read both VPD structures")
Cc: <stable@vger.kernel.org> # v4.9+
Signed-off-by: Casey Leedom <leedom@chelsio.com>
Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
drivers/pci/quirks.c