Skip to content

Commit

Permalink
create sysfs link from acpi device to sysdev for cpu
Browse files Browse the repository at this point in the history
Sys I/F under acpi device node and sysdev device node are both
needed for cpu hot-removal. User space need this link so that
they know they are poking the sys I/F for the same cpu.
http://bugzilla.kernel.org/show_bug.cgi?id=9772

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
  • Loading branch information
Zhang Rui authored and Andi Kleen committed Jul 16, 2008
1 parent b62b8ef commit 9f1eb99
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/acpi/processor_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -621,7 +621,7 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
int result = 0;
acpi_status status = AE_OK;
struct acpi_processor *pr;

struct sys_device *sysdev;

pr = acpi_driver_data(device);

Expand Down Expand Up @@ -652,6 +652,10 @@ static int __cpuinit acpi_processor_start(struct acpi_device *device)
if (result)
goto end;

sysdev = get_cpu_sysdev(pr->id);
if (sysfs_create_link(&device->dev.kobj, &sysdev->kobj, "sysdev"))
return -EFAULT;

status = acpi_install_notify_handler(pr->handle, ACPI_DEVICE_NOTIFY,
acpi_processor_notify, pr);

Expand Down Expand Up @@ -810,6 +814,8 @@ static int acpi_processor_remove(struct acpi_device *device, int type)
status = acpi_remove_notify_handler(pr->handle, ACPI_DEVICE_NOTIFY,
acpi_processor_notify);

sysfs_remove_link(&device->dev.kobj, "sysdev");

acpi_processor_remove_fs(device);

if (pr->cdev) {
Expand Down

0 comments on commit 9f1eb99

Please sign in to comment.