From: gregkh@linuxfoundation.org gregkh@linuxfoundation.org Sent: Tuesday, October 8, 2019 10:19 AM To: Dexuan Cui decui@microsoft.com; lorenzo.pieralisi@arm.com Cc: stable@vger.kernel.org Subject: FAILED: patch "[PATCH] PCI: hv: Avoid use of hv_pci_dev->pci_slot after freeing it" failed to apply to 4.14-stable tree
The patch below does not apply to the 4.14-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to stable@vger.kernel.org.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 533ca1feed98b0bf024779a14760694c7cb4d431 Mon Sep 17 00:00:00 2001 From: Dexuan Cui decui@microsoft.com Date: Fri, 2 Aug 2019 22:50:20 +0000 Subject: [PATCH] PCI: hv: Avoid use of hv_pci_dev->pci_slot after freeing it
The slot must be removed before the pci_dev is removed, otherwise a panic can happen due to use-after-free.
Fixes: 15becc2b56c6 ("PCI: hv: Add hv_pci_remove_slots() when we unload the driver") Signed-off-by: Dexuan Cui decui@microsoft.com Signed-off-by: Lorenzo Pieralisi lorenzo.pieralisi@arm.com Cc: stable@vger.kernel.org
diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c index 40b625458afa..2b53976cd9f9 100644 --- a/drivers/pci/controller/pci-hyperv.c +++ b/drivers/pci/controller/pci-hyperv.c @@ -2701,8 +2701,8 @@ static int hv_pci_remove(struct hv_device *hdev) /* Remove the bus from PCI's point of view. */ pci_lock_rescan_remove(); pci_stop_root_bus(hbus->pci_bus);
hv_pci_remove_slots(hbus);pci_remove_root_bus(hbus->pci_bus);
pci_unlock_rescan_remove(); hbus->state = hv_pcibus_removed; }pci_remove_root_bus(hbus->pci_bus);
It looks this mail is also generated in error, because the commit 533ca1feed98b0bf024779a14760694c7cb4d431 has already been in v4.14.148.
Thanks, Dexuan