aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/acpi/processor.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/acpi/processor.c')
-rw-r--r--arch/x86/kernel/acpi/processor.c34
1 files changed, 1 insertions, 33 deletions
diff --git a/arch/x86/kernel/acpi/processor.c b/arch/x86/kernel/acpi/processor.c
index bcb6efe08c5d..967860b43f2a 100644
--- a/arch/x86/kernel/acpi/processor.c
+++ b/arch/x86/kernel/acpi/processor.c
@@ -14,31 +14,7 @@
14 14
15static void init_intel_pdc(struct acpi_processor *pr, struct cpuinfo_x86 *c) 15static void init_intel_pdc(struct acpi_processor *pr, struct cpuinfo_x86 *c)
16{ 16{
17 struct acpi_object_list *obj_list; 17 u32 *buf = (u32 *)pr->pdc->pointer->buffer.pointer;
18 union acpi_object *obj;
19 u32 *buf;
20
21 /* allocate and initialize pdc. It will be used later. */
22 obj_list = kmalloc(sizeof(struct acpi_object_list), GFP_KERNEL);
23 if (!obj_list) {
24 printk(KERN_ERR "Memory allocation error\n");
25 return;
26 }
27
28 obj = kmalloc(sizeof(union acpi_object), GFP_KERNEL);
29 if (!obj) {
30 printk(KERN_ERR "Memory allocation error\n");
31 kfree(obj_list);
32 return;
33 }
34
35 buf = kmalloc(12, GFP_KERNEL);
36 if (!buf) {
37 printk(KERN_ERR "Memory allocation error\n");
38 kfree(obj);
39 kfree(obj_list);
40 return;
41 }
42 18
43 buf[0] = ACPI_PDC_REVISION_ID; 19 buf[0] = ACPI_PDC_REVISION_ID;
44 buf[1] = 1; 20 buf[1] = 1;
@@ -62,13 +38,6 @@ static void init_intel_pdc(struct acpi_processor *pr, struct cpuinfo_x86 *c)
62 if (!cpu_has(c, X86_FEATURE_MWAIT)) 38 if (!cpu_has(c, X86_FEATURE_MWAIT))
63 buf[2] &= ~(ACPI_PDC_C_C2C3_FFH); 39 buf[2] &= ~(ACPI_PDC_C_C2C3_FFH);
64 40
65 obj->type = ACPI_TYPE_BUFFER;
66 obj->buffer.length = 12;
67 obj->buffer.pointer = (u8 *) buf;
68 obj_list->count = 1;
69 obj_list->pointer = obj;
70 pr->pdc = obj_list;
71
72 return; 41 return;
73} 42}
74 43
@@ -78,7 +47,6 @@ void arch_acpi_processor_init_pdc(struct acpi_processor *pr)
78{ 47{
79 struct cpuinfo_x86 *c = &cpu_data(pr->id); 48 struct cpuinfo_x86 *c = &cpu_data(pr->id);
80 49
81 pr->pdc = NULL;
82 init_intel_pdc(pr, c); 50 init_intel_pdc(pr, c);
83 51
84 return; 52 return;