lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1521445.Je1ql4ndX7@vostro.rjw.lan>
Date:	Mon, 10 Feb 2014 01:52:14 +0100
From:	"Rafael J. Wysocki" <rjw@...ysocki.net>
To:	Peter Wu <lekensteyn@...il.com>
Cc:	Bastien Traverse <bastien.traverse@...il.com>,
	linux-kernel@...r.kernel.org, francis.moro@...il.com,
	linux-pm@...r.kernel.org,
	Mika Westerberg <mika.westerberg@...ux.intel.com>
Subject: Re: 3.12: ethernet controller missing after resuming from suspend to RAM

On Monday, February 10, 2014 12:18:16 AM Peter Wu wrote:
> On Sunday 09 February 2014 22:46:05 Rafael J. Wysocki wrote:
> > That most likely would single out one of the ACPIPHP commits without giving
> > us much clue about what's going on.
> > 
> > I fail to see what the connection between those changes and system resume
> > is, however.
> > 
> > Please replace all pr_debug() calls in hotplug_notify() with pr_info() and
> > see if you get any events from there.
> 
> I could not find a hotplug_notify function in the kernel tree, but I
> have dyndbg enabled. Booting with `pci_hotplug.debug=Y
> pci_hotplug.debug_acpi=Y pci_hotplug.dyndbg acpiphp.dyndbg` gives me
> only a few acpiphp_glue messages. After resume:
> 
> [   55.492261] CPU3 is up
> [   55.494710] ACPI: Waking up from system sleep state S3
> [   56.187298] ehci-pci 0000:00:1a.0: System wakeup disabled by ACPI
> [   56.213939] ehci-pci 0000:00:1d.0: System wakeup disabled by ACPI
> [   56.240614] xhci_hcd 0000:02:00.0: System wakeup disabled by ACPI
> [   56.294230] PM: noirq resume of devices complete after 133.375 msecs
> [   56.294507] PM: early resume of devices complete after 0.231 msecs
> [   56.294798] pcieport 0000:00:1c.1: System wakeup disabled by ACPI
> [   56.296628] iwlwifi 0000:05:00.0: RF_KILL bit toggled to enable radio.
> [   56.404258] snd_hda_intel 0000:00:1b.0: irq 48 for MSI/MSI-X
> [   56.627043] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> [   56.627929] ata1.00: configured for UDMA/133
> [   56.628044] sd 0:0:0:0: [sda] Starting disk
> [   56.633730] ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> [   56.640403] ata5: SATA link down (SStatus 0 SControl 300)
> [   56.802771] ata2.00: configured for UDMA/100
> [   57.737542] PM: resume of devices complete after 1443.847 msecs
> [   57.737951] PM: Finishing wakeup.
> [   57.737957] acpiphp_glue: hotplug_event: Bus check notify on \_SB_.PCI0.RP03
> [   57.737960] acpiphp_glue: hotplug_event: re-enumerating slots under \_SB_.PCI0.RP03
> [   57.738080] iwlwifi 0000:05:00.0: no hotplug settings from platform
> [   57.737963] Restarting tasks ... done.
> [   57.740480] video LNXVIDEO:00: Restoring backlight state
> [   57.740487] video LNXVIDEO:01: Restoring backlight state
> [   58.203311] ACPI: \_SB_.AC__: ACPI_NOTIFY_BUS_CHECK event: unsupported
> [   58.204080] acpiphp_glue: hotplug_event: Bus check notify on \_SB_.PCI0.RP01
> [   58.204083] acpiphp_glue: hotplug_event: re-enumerating slots under \_SB_.PCI0.RP01
> [   58.204121] xhci_hcd 0000:02:00.0: no hotplug settings from platform
> [   58.204132] acpiphp_glue: hotplug_event: Bus check notify on \_SB_.PCI0.RP02
> [   58.204134] acpiphp_glue: hotplug_event: re-enumerating slots under \_SB_.PCI0.RP02
> [   58.209339] jme 0000:04:00.5: irq 50 for MSI/MSI-X
> [   58.233503] jme 0000:04:00.5 eth0: Link is down
> [   58.233578] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
> [   58.235113] iwlwifi 0000:05:00.0: L1 Enabled; Disabling L0S
> [   58.242131] iwlwifi 0000:05:00.0: Radio type=0x1-0x3-0x1
> [   58.346311] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
> [   58.392764] acpiphp_glue: hotplug_event: Bus check notify on \_SB_.PCI0.RP03
> [   58.392766] acpiphp_glue: hotplug_event: re-enumerating slots under \_SB_.PCI0.RP03
> [   58.392874] iwlwifi 0000:05:00.0: no hotplug settings from platform
> 
> RP02 is the ACPI Device for 00:1c.1 [1].
> 
> Could the following commit have something to do with it?
> 
> commit 4ebe34503baa0644c9352bcd76d4cf573bffe206
> Author: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> Date:   Tue Jul 16 22:10:35 2013 +0200
> 
>     ACPI / hotplug / PCI: Check for new devices on enabled slots

This one, or another one in that series.  I rather suspect

ab1225901da2 Revert "ACPI / hotplug / PCI: Avoid doing too much for spurious notifies"

from Mika, but it really doesn't matter.

Can you please check the patch below (it is on top of 3.14-rc1, but I think it'll
still apply to 3.13) and report back?

Rafael


---
 drivers/pci/hotplug/acpiphp_glue.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Index: linux-pm/drivers/pci/hotplug/acpiphp_glue.c
===================================================================
--- linux-pm.orig/drivers/pci/hotplug/acpiphp_glue.c
+++ linux-pm/drivers/pci/hotplug/acpiphp_glue.c
@@ -555,10 +555,10 @@ static void __ref enable_slot(struct acp
 	struct pci_dev *dev;
 	struct pci_bus *bus = slot->bus;
 	struct acpiphp_func *func;
-	int max, pass;
+	int nr_found, max, pass, bridges_scanned = 0;
 	LIST_HEAD(add_list);
 
-	acpiphp_rescan_slot(slot);
+	nr_found = 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 +574,14 @@ static void __ref enable_slot(struct acp
 					__pci_bus_size_bridges(dev->subordinate,
 							       &add_list);
 				}
+				bridges_scanned++;
 			}
 		}
 	}
+	/* Nothing more to do here if there are no new devices on this bus. */
+	if (!nr_found && !bridges_scanned && (slot->flags & SLOT_ENABLED))
+		return;
+
 	__pci_bus_assign_resources(bus, &add_list, NULL);
 
 	acpiphp_sanitize_bus(bus);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ