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-next>] [day] [month] [year] [list]
Date:	Fri, 15 Feb 2013 12:23:13 +1100
From:	Stephen Rothwell <sfr@...b.auug.org.au>
To:	"Rafael J. Wysocki" <rjw@...k.pl>
Cc:	linux-next@...r.kernel.org, linux-kernel@...r.kernel.org,
	Yinghai Lu <yinghai@...nel.org>,
	Bjorn Helgaas <bhelgaas@...gle.com>,
	Jiang Liu <jiang.liu@...wei.com>
Subject: linux-next: manual merge of the pm tree with the pci tree

Hi Rafael,

Today's linux-next merge of the pm tree got conflicts in
drivers/acpi/scan.c and drivers/pci/hotplug/acpiphp_glue.c between
commits 668192b67820 ("PCI: acpiphp: Move host bridge hotplug to
pci_root.c") and be6d2867b4f6 ("PCI: acpiphp: Remove dead code for PCI
host bridge hotplug") from the pci tree and commit 3757b94802fb ("ACPI /
hotplug: Fix concurrency issues and memory leaks") from the pm tree.

I fixed it up (thanks to Yinghai Lu for the resolution - see below) and
can carry the fix as necessary (no action is required).

-- 
Cheers,
Stephen Rothwell                    sfr@...b.auug.org.au

diff --cc drivers/acpi/scan.c
index a363f87,daee749..0000000
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@@ -1707,7 -1804,7 +1804,9 @@@ int __init acpi_scan_init(void
  
  	acpi_update_all_gpes();
  
 +	acpi_pci_root_hp_init();
 +
- 	return 0;
+  out:
+ 	mutex_unlock(&acpi_scan_lock);
+ 	return result;
  }
diff --cc drivers/pci/hotplug/acpiphp_glue.c
index 4681d2c,a951c22..0000000
--- a/drivers/pci/hotplug/acpiphp_glue.c
+++ b/drivers/pci/hotplug/acpiphp_glue.c
@@@ -1136,11 -1214,29 +1132,13 @@@ static void _handle_hotplug_event_bridg
  	acpi_handle handle;
  	u32 type;
  
 -	hp_work = container_of(work, struct acpiphp_hp_work, work);
 +	hp_work = container_of(work, struct acpi_hp_work, work);
  	handle = hp_work->handle;
  	type = hp_work->type;
 +	bridge = (struct acpiphp_bridge *)hp_work->context;
  
+ 	acpi_scan_lock_acquire();
+ 
 -	if (acpi_bus_get_device(handle, &device)) {
 -		/* This bridge must have just been physically inserted */
 -		handle_bridge_insertion(handle, type);
 -		goto out;
 -	}
 -
 -	bridge = acpiphp_handle_to_bridge(handle);
 -	if (type == ACPI_NOTIFY_BUS_CHECK) {
 -		acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, ACPI_UINT32_MAX,
 -			count_sub_bridges, NULL, &num_sub_bridges, NULL);
 -	}
 -
 -	if (!bridge && !num_sub_bridges) {
 -		err("cannot get bridge info\n");
 -		goto out;
 -	}
 -
  	acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
  
  	switch (type) {
@@@ -1195,6 -1296,8 +1193,7 @@@
  		break;
  	}
  
 -out:
+ 	acpi_scan_lock_release();
  	kfree(hp_work); /* allocated in handle_hotplug_event_bridge */
  }
  
@@@ -1237,6 -1342,10 +1236,8 @@@ static void _handle_hotplug_event_func(
  
  	acpi_get_name(handle, ACPI_FULL_PATHNAME, &buffer);
  
 -	func = (struct acpiphp_func *)context;
 -
+ 	acpi_scan_lock_acquire();
+ 
  	switch (type) {
  	case ACPI_NOTIFY_BUS_CHECK:
  		/* bus re-enumerate */

Content of type "application/pgp-signature" skipped

Powered by blists - more mailing lists