PCI: hv: Fix hv_pci_remove() for hot-remove
authorDexuan Cui <decui@microsoft.com>
Thu, 10 Nov 2016 07:18:47 +0000 (07:18 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 16 Nov 2016 22:45:32 +0000 (16:45 -0600)
commit17978524a636d007e6b929304ae3eb5ea0371019
tree84f473f1e2f106f30ff7149b52066db49a8368ca
parent8286e96d95f2dd01a72e3500322ad95153a469c2
PCI: hv: Fix hv_pci_remove() for hot-remove

1. We don't really need such a big on-stack buffer when sending the
teardown_packet: vmbus_sendpacket() here only uses sizeof(struct
pci_message).

2. In the hot-remove case (PCI_EJECT), after we send PCI_EJECTION_COMPLETE
to the host, the host will send a RESCIND_CHANNEL message to us and the
host won't access the per-channel ringbuffer any longer, so we needn't send
PCI_RESOURCES_RELEASED/PCI_BUS_D0EXIT to the host, and we shouldn't expect
the host's completion message of PCI_BUS_D0EXIT, which will never come.

3. We should send PCI_BUS_D0EXIT after hv_send_resources_released().

Signed-off-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Jake Oshins <jakeo@microsoft.com>
Acked-by: K. Y. Srinivasan <kys@microsoft.com>
CC: Haiyang Zhang <haiyangz@microsoft.com>
CC: Vitaly Kuznetsov <vkuznets@redhat.com>
drivers/pci/host/pci-hyperv.c