aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi')
-rw-r--r--drivers/acpi/processor_pdc.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c
index 48df08ebcec4..e786e2ce1882 100644
--- a/drivers/acpi/processor_pdc.c
+++ b/drivers/acpi/processor_pdc.c
@@ -1,3 +1,12 @@
1/*
2 * Copyright (C) 2005 Intel Corporation
3 * Copyright (C) 2009 Hewlett-Packard Development Company, L.P.
4 *
5 * Alex Chiang <achiang@hp.com>
6 * - Unified x86/ia64 implementations
7 * Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
8 * - Added _PDC for platforms with Intel CPUs
9 */
1#include <linux/dmi.h> 10#include <linux/dmi.h>
2 11
3#include <acpi/acpi_drivers.h> 12#include <acpi/acpi_drivers.h>
@@ -121,6 +130,16 @@ static int acpi_processor_eval_pdc(struct acpi_processor *pr)
121 return status; 130 return status;
122} 131}
123 132
133static void acpi_processor_cleanup_pdc(struct acpi_processor *pr)
134{
135 if (pr->pdc) {
136 kfree(pr->pdc->pointer->buffer.pointer);
137 kfree(pr->pdc->pointer);
138 kfree(pr->pdc);
139 pr->pdc = NULL;
140 }
141}
142
124void acpi_processor_set_pdc(struct acpi_processor *pr) 143void acpi_processor_set_pdc(struct acpi_processor *pr)
125{ 144{
126 if (arch_has_acpi_pdc() == false) 145 if (arch_has_acpi_pdc() == false)
@@ -128,7 +147,7 @@ void acpi_processor_set_pdc(struct acpi_processor *pr)
128 147
129 acpi_processor_init_pdc(pr); 148 acpi_processor_init_pdc(pr);
130 acpi_processor_eval_pdc(pr); 149 acpi_processor_eval_pdc(pr);
131 arch_acpi_processor_cleanup_pdc(pr); 150 acpi_processor_cleanup_pdc(pr);
132} 151}
133EXPORT_SYMBOL_GPL(acpi_processor_set_pdc); 152EXPORT_SYMBOL_GPL(acpi_processor_set_pdc);
134 153