Star64_linux/drivers/pci/controller
Dexuan Cui e5d2f910cf PCI: hv: Add a paravirtual backchannel in software
Windows SR-IOV provides a backchannel mechanism in software for communication
between a VF driver and a PF driver.  These "configuration blocks" are
similar in concept to PCI configuration space, but instead of doing reads and
writes in 32-bit chunks through a very slow path, packets of up to 128 bytes
can be sent or received asynchronously.

Nearly every SR-IOV device contains just such a communications channel in
hardware, so using this one in software is usually optional.  Using the
software channel, however, allows driver implementers to leverage software
tools that fuzz the communications channel looking for vulnerabilities.

The usage model for these packets puts the responsibility for reading or
writing on the VF driver.  The VF driver sends a read or a write packet,
indicating which "block" is being referred to by number.

If the PF driver wishes to initiate communication, it can "invalidate" one or
more of the first 64 blocks.  This invalidation is delivered via a callback
supplied by the VF driver by this driver.

No protocol is implied, except that supplied by the PF and VF drivers.

Signed-off-by: Jake Oshins <jakeo@microsoft.com>
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Cc: Haiyang Zhang <haiyangz@microsoft.com>
Cc: K. Y. Srinivasan <kys@microsoft.com>
Cc: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-08-22 00:25:12 -07:00
..
dwc Merge branch 'pci/trivial' 2019-07-12 17:08:41 -05:00
Kconfig PCI: altera-msi: Allow building as module 2019-05-30 15:34:54 +01:00
Makefile PCI: mobiveil: Add Kconfig/Makefile entries 2018-07-30 14:30:16 +01:00
pci-aardvark.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00
pci-ftpci100.c PCI: faraday: Fix I/O space page leak 2018-07-18 17:01:14 -05:00
pci-host-common.c PCI: Remove unnecessary check of device_type == pci 2018-09-25 09:40:03 +01:00
pci-host-generic.c PCI: Fix comment typos 2019-04-13 11:17:15 -05:00
pci-hyperv.c PCI: hv: Add a paravirtual backchannel in software 2019-08-22 00:25:12 -07:00
pci-mvebu.c PCI: pci-bridge-emul: Extend pci_bridge_emul_init() with flags 2019-02-22 10:51:14 +00:00
pci-rcar-gen2.c
pci-tegra.c PCI: tegra: Enable Relaxed Ordering only for Tegra20 & Tegra30 2019-07-05 13:59:59 +01:00
pci-thunder-ecam.c
pci-thunder-pem.c
pci-v3-semi.c PCI: v3-semi: Fix I/O space page leak 2018-07-18 17:02:13 -05:00
pci-versatile.c PCI: versatile: Fix I/O space page leak 2018-07-18 17:00:11 -05:00
pci-xgene-msi.c
pci-xgene.c PCI: xgene: Fix I/O space page leak 2018-07-18 16:59:40 -05:00
pcie-altera-msi.c PCI: altera-msi: Allow building as module 2019-05-30 15:34:54 +01:00
pcie-altera.c PCI: altera: Fix configuration type based on secondary number 2019-06-17 12:22:25 +01:00
pcie-cadence-ep.c PCI: cadence: Remove pci_epf_linkup() from Cadence EP driver 2019-02-15 10:02:38 +00:00
pcie-cadence-host.c PCI: Remove unnecessary check of device_type == pci 2018-09-25 09:40:03 +01:00
pcie-cadence.c pci-v4.20-changes 2018-10-25 06:50:48 -07:00
pcie-cadence.h PCI: cadence: Add Power Management ops for host and EP 2018-07-12 12:44:14 +01:00
pcie-iproc-bcma.c
pcie-iproc-msi.c PCI: Fix comment typos 2019-04-13 11:17:15 -05:00
pcie-iproc-platform.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00
pcie-iproc.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00
pcie-iproc.h PCI: iproc: Reject unconfigured physical functions from PAXC 2018-07-13 11:56:55 +01:00
pcie-mediatek.c Merge branch 'remotes/lorenzo/pci/misc' 2019-05-13 18:34:44 -05:00
pcie-mobiveil.c PCI: mobiveil: Fix INTx interrupt clearing in mobiveil_pcie_isr() 2019-07-08 12:39:09 +01:00
pcie-rcar.c Merge branch 'remotes/lorenzo/pci/rcar' 2019-05-13 18:34:42 -05:00
pcie-rockchip-ep.c PCI: rockchip: Fix rockchip_pcie_ep_assert_intx() bitwise operations 2019-04-15 10:39:26 +01:00
pcie-rockchip-host.c PCI: rockchip: Fix a leaked reference by adding missing of_node_put() 2019-04-01 10:42:24 +01:00
pcie-rockchip.c
pcie-rockchip.h
pcie-tango.c
pcie-xilinx-nwl.c PCI: xilinx-nwl: Fix Multi MSI data programming 2019-06-26 10:56:51 +01:00
pcie-xilinx.c PCI: xilinx: Check for __get_free_pages() failure 2019-03-29 16:28:20 +00:00
vmd.c PCI: Fix typos and whitespace errors 2019-07-09 07:24:53 -05:00