ACPI: Rename ACPI processor device bus ID
authorZhao Yakui <yakui.zhao@intel.com>
Wed, 24 Jun 2009 03:46:44 +0000 (11:46 +0800)
committerLen Brown <len.brown@intel.com>
Wed, 24 Jun 2009 05:18:04 +0000 (01:18 -0400)
commit7a04b8491a077471a34938b8ca060c37220953be
tree75408f573f7a871bf82348b8d7dfc2e9c1fb6eba
parent07a2039b8eb0af4ff464efd3dfd95de5c02648c6
ACPI: Rename ACPI processor device bus ID

Some BIOS re-use the same processor bus id
in different scope:

\_SB.SCK0.CPU0
\_SB.SCK1.CPU0

But the (deprecated) /proc/acpi/ interface
assumes the bus-id's are unique, resulting in an OOPS
when the processor driver is loaded:

WARNING: at fs/proc/generic.c:590 proc_register+0x148/0x180()
Hardware name: Sunrise Ridge
proc_dir_entry 'processor/CPU0' already registered
Call Trace:
 [<ffffffff8023f7ef>] warn_slowpath+0xb1/0xe5
 [<ffffffff8036243b>] ? ida_get_new_above+0x190/0x1b1
 [<ffffffff803625a8>] ? idr_pre_get+0x5f/0x75
 [<ffffffff8030b2f6>] proc_register+0x148/0x180
 [<ffffffff8030b4ff>] proc_mkdir_mode+0x3d/0x52
 [<ffffffff8030b525>] proc_mkdir+0x11/0x13
 [<ffffffffa0014b89>] acpi_processor_start+0x755/0x9bc [processor]

Rename the processor device bus id. And the new bus id will be
generated as the following format:
CPU+ CPU ID

For example: If the cpu ID is 5, then the bus ID will be "CPU5".
If the CPU ID is 10, then the bus ID will be "CPUA".

Yes, this will change the directory names seen
in /proc/acpi/processor/* on some systems.
Before this patch, those directory names where
totally arbitrary strings based on the interal AML device strings.

http://bugzilla.kernel.org/show_bug.cgi?id=13612

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/processor_core.c