linux-next: manual merge of the pm tree with the pci tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxx

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 */

Attachment: pgpXIptd_PdSL.pgp
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux