]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Nov 2020 13:25:36 +0000 (14:25 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Nov 2020 13:25:36 +0000 (14:25 +0100)
added patches:
pci-add-device-even-if-driver-attach-failed.patch

queue-4.9/pci-add-device-even-if-driver-attach-failed.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/pci-add-device-even-if-driver-attach-failed.patch b/queue-4.9/pci-add-device-even-if-driver-attach-failed.patch
new file mode 100644 (file)
index 0000000..7a33984
--- /dev/null
@@ -0,0 +1,47 @@
+From 2194bc7c39610be7cabe7456c5f63a570604f015 Mon Sep 17 00:00:00 2001
+From: Rajat Jain <rajatja@google.com>
+Date: Mon, 6 Jul 2020 16:32:40 -0700
+Subject: PCI: Add device even if driver attach failed
+
+From: Rajat Jain <rajatja@google.com>
+
+commit 2194bc7c39610be7cabe7456c5f63a570604f015 upstream.
+
+device_attach() returning failure indicates a driver error while trying to
+probe the device. In such a scenario, the PCI device should still be added
+in the system and be visible to the user.
+
+When device_attach() fails, merely warn about it and keep the PCI device in
+the system.
+
+This partially reverts ab1a187bba5c ("PCI: Check device_attach() return
+value always").
+
+Link: https://lore.kernel.org/r/20200706233240.3245512-1-rajatja@google.com
+Signed-off-by: Rajat Jain <rajatja@google.com>
+Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
+Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: stable@vger.kernel.org     # v4.6+
+[sudip: use dev_warn]
+Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/pci/bus.c |    6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+--- a/drivers/pci/bus.c
++++ b/drivers/pci/bus.c
+@@ -324,12 +324,8 @@ void pci_bus_add_device(struct pci_dev *
+       dev->match_driver = true;
+       retval = device_attach(&dev->dev);
+-      if (retval < 0 && retval != -EPROBE_DEFER) {
++      if (retval < 0 && retval != -EPROBE_DEFER)
+               dev_warn(&dev->dev, "device attach failed (%d)\n", retval);
+-              pci_proc_detach_device(dev);
+-              pci_remove_sysfs_dev_files(dev);
+-              return;
+-      }
+       dev->is_added = 1;
+ }
index 8dc2bb307fe27ad04168fa9f443f1fc3a456d680..07e9cd1655fd33063b7d6547831d0d22215d312f 100644 (file)
@@ -1,2 +1,3 @@
 perf-event-check-ref_reloc_sym-before-using-it.patch
 mm-userfaultfd-do-not-access-vma-vm_mm-after-calling-handle_userfault.patch
+pci-add-device-even-if-driver-attach-failed.patch