On Thu, Aug 20, 2020 at 01:00:51PM +0000, Michael Kelley wrote:
From: Greg Kroah-Hartman gregkh@linuxfoundation.org Sent: Thursday, August 20, 2020 2:20 AM
From: Wei Hu weh@microsoft.com
[ Upstream commit d6af2ed29c7c1c311b96dac989dcb991e90ee195 ]
Kdump could fail sometime on Hyper-V guest because the retry in hv_pci_enter_d0() releases child device structures in hv_pci_bus_exit().
Although there is a second asynchronous device relations message sending from the host, if this message arrives to the guest after hv_send_resource_allocated() is called, the retry would fail.
Fix the problem by moving retry to hv_pci_probe() and start the retry from hv_pci_query_relations() call. This will cause a device relations message to arrive to the guest synchronously; the guest would then be able to rebuild the child device structures before calling hv_send_resource_allocated().
Link: https://lore.kernel.org/linux-hyperv/20200727071731.18516-1-weh@microsoft.co... Fixes: c81992e7f4aa ("PCI: hv: Retry PCI bus D0 entry on invalid device state") Signed-off-by: Wei Hu weh@microsoft.com [lorenzo.pieralisi@arm.com: fixed a comment and commit log] Signed-off-by: Lorenzo Pieralisi lorenzo.pieralisi@arm.com Reviewed-by: Michael Kelley mikelley@microsoft.com Signed-off-by: Sasha Levin sashal@kernel.org
drivers/pci/controller/pci-hyperv.c | 71 +++++++++++++++-------------- 1 file changed, 37 insertions(+), 34 deletions(-)
This patch came through three days ago, and I indicated then that we don't want it backported to 5.8 and earlier.
Uh, I re-added it by mistake, sorry.