[prev in list] [next in list] [prev in thread] [next in thread] 

List:       git-commits-head
Subject:    Revert "ACPI / hotplug / PCI: Avoid doing too much for spurious notifies"
From:       "Linux Kernel Mailing List" <linux-kernel () vger ! kernel ! org>
Date:       2013-10-31 18:53:45
Message-ID: 20131031185345.12DB066024B () gitolite ! kernel ! org
[Download RAW message or body]

Gitweb:     http://git.kernel.org/linus/;a=commit;h=ab1225901da2d4cd2dcbae6840e93abbef417064
Commit:     ab1225901da2d4cd2dcbae6840e93abbef417064
Parent:     59612d187912750f416fbffe0c00bc0811c54ab5
Author:     Mika Westerberg <mika.westerberg@linux.intel.com>
AuthorDate: Wed Oct 30 14:40:36 2013 +0200
Committer:  Rafael J. Wysocki <rafael.j.wysocki@intel.com>
CommitDate: Wed Oct 30 15:28:52 2013 +0100

    Revert "ACPI / hotplug / PCI: Avoid doing too much for spurious notifies"
    
    Commit 2dc4128 (ACPI / hotplug / PCI: Avoid doing too much for
    spurious notifies) changed the enable_slot() to check return value of
    pci_scan_slot() and if it is zero return early from the function. It
    means that there were no new devices in this particular slot.
    
    However, if a device appeared deeper in the hierarchy the code now
    ignores it causing things like Thunderbolt chaining fail to recognize
    new devices.
    
    The problem with Alex Williamson's machine was solved with commit
    a47d8c8 (ACPI / hotplug / PCI: Avoid parent bus rescans on spurious
    device checks) and hence we should be able to restore the original
    functionality that we always rescan on bus check notification.
    
    On a device check notification we still check what acpiphp_rescan_slot()
    returns and on zero bail out early.
    
    Fixes: 2dc41281b1d1 (ACPI / hotplug / PCI: Avoid doing too much for spurious notifies)
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Tested-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/pci/hotplug/acpiphp_glue.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)

diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c
index be12fbf..1ea7523 100644
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@ -552,9 +552,8 @@ static void __ref enable_slot(struct acpiphp_slot *slot)
 	struct acpiphp_func *func;
 	int max, pass;
 	LIST_HEAD(add_list);
-	int nr_found;
 
-	nr_found = acpiphp_rescan_slot(slot);
+	acpiphp_rescan_slot(slot);
 	max = acpiphp_max_busnr(bus);
 	for (pass = 0; pass < 2; pass++) {
 		list_for_each_entry(dev, &bus->devices, bus_list) {
@@ -574,9 +573,6 @@ static void __ref enable_slot(struct acpiphp_slot *slot)
 		}
 	}
 	__pci_bus_assign_resources(bus, &add_list, NULL);
-	/* Nothing more to do here if there are no new devices on this bus. */
-	if (!nr_found && (slot->flags & SLOT_ENABLED))
-		return;
 
 	acpiphp_sanitize_bus(bus);
 	acpiphp_set_hpp_values(bus);
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic