alistair23-linux/drivers/pci/host
Vitaly Kuznetsov 837d741ea2 PCI: hv: Handle all pending messages in hv_pci_onchannelcallback()
When we have an interrupt from the host we have a bit set in event page
indicating there are messages for the particular channel.  We need to read
them all as we won't get signaled for what was on the queue before we
cleared the bit in vmbus_on_event().  This applies to all Hyper-V drivers
and the pass-through driver should do the same.

I did not meet any bugs; the issue was found by code inspection.  We don't
have many events going through hv_pci_onchannelcallback(), which explains
why nobody reported the issue before.

While on it, fix handling non-zero vmbus_recvpacket_raw() return values by
dropping out.  If the return value is not zero, it is wrong to inspect
buffer or bytes_recvd as these may contain invalid data.

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Jake Oshins <jakeo@microsoft.com>
2016-06-17 12:45:30 -05:00
..
Kconfig PCI changes for the v4.7 merge window: 2016-05-19 13:10:54 -07:00
Makefile PCI changes for the v4.7 merge window: 2016-05-19 13:10:54 -07:00
pci-dra7xx.c PCI: designware: Move Root Complex setup code to dw_pcie_setup_rc() 2016-04-05 17:04:27 -05:00
pci-exynos.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pci-host-common.c PCI: generic, thunder: Use generic ECAM API 2016-05-12 07:07:42 -05:00
pci-host-generic.c PCI: generic, thunder: Use generic ECAM API 2016-05-12 07:07:42 -05:00
pci-hyperv.c PCI: hv: Handle all pending messages in hv_pci_onchannelcallback() 2016-06-17 12:45:30 -05:00
pci-imx6.c PCI: imx6: Implement reset sequence for i.MX6+ 2016-05-02 14:33:17 -05:00
pci-keystone-dw.c PCI: keystone: Add error IRQ handler 2016-04-14 14:40:42 -05:00
pci-keystone.c PCI: keystone: Remove unnecessary goto statement 2016-04-25 14:23:54 -05:00
pci-keystone.h PCI: keystone: Add error IRQ handler 2016-04-14 14:40:42 -05:00
pci-layerscape.c PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
pci-mvebu.c PCI: mvebu: Use SET_NOIRQ_SYSTEM_SLEEP_PM_OPS for mvebu_pcie_pm_ops 2016-04-07 11:48:42 -05:00
pci-rcar-gen2.c PCI: rcar: Add gen2 fallback compatibility string for pci-rcar-gen2 2015-12-09 12:28:21 -06:00
pci-tegra.c PCI: tegra: Support per-lane PHYs 2016-04-29 16:47:54 +02:00
pci-thunder-ecam.c PCI: generic, thunder: Use generic ECAM API 2016-05-12 07:07:42 -05:00
pci-thunder-pem.c Merge branches 'pci/arm64' and 'pci/host-hv' into next 2016-05-17 14:35:46 -05:00
pci-versatile.c PCI: generic,versatile: Remove unused pci_sys_data structures 2015-11-25 12:08:04 -06:00
pci-xgene-msi.c irqdomain/msi: Use fwnode instead of of_node 2015-10-13 19:01:25 +02:00
pci-xgene.c PCI/MSI: xgene: Remove msi_controller assignment 2015-09-25 18:24:28 -05:00
pcie-altera-msi.c PCI changes for the v4.4 merge window: 2015-11-06 11:29:53 -08:00
pcie-altera.c PCI: altera: Fix altera_pcie_link_is_up() 2016-03-11 12:14:39 -06:00
pcie-armada8k.c PCI: armada: Add driver for Marvell Armada 7K/8K PCIe controller 2016-04-26 12:11:54 -05:00
pcie-designware-plat.c PCI: designware: Add driver for prototyping kits based on ARC SDP 2016-03-15 08:50:45 -05:00
pcie-designware.c PCI: designware: Remove incorrect RC memory base/limit configuration 2016-05-02 16:11:48 -05:00
pcie-designware.h PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-hisi.c PCI changes for the v4.5 merge window: 2016-01-21 11:52:16 -08:00
pcie-iproc-bcma.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-msi.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc-platform.c PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-iproc.c PCI: iproc: Allow multiple devices except on PAXC 2016-01-27 16:52:24 -06:00
pcie-iproc.h PCI: iproc: Add iProc PCIe MSI support 2016-01-06 18:04:35 -06:00
pcie-qcom.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-rcar.c PCI: rcar: Remove PCI_PROBE_ONLY handling 2016-02-05 14:22:41 -06:00
pcie-spear13xx.c PCI: designware: Add generic dw_pcie_wait_for_link() 2016-03-15 08:50:45 -05:00
pcie-xilinx-nwl.c PCI: Fix spelling errors 2016-04-05 12:12:45 -05:00
pcie-xilinx.c PCI: xilinx: Don't call pci_fixup_irqs() on Microblaze 2016-03-08 14:06:17 -06:00