OSDN Git Service

Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
[uclinux-h8/linux.git] / drivers / acpi / processor_perflib.c
index c7cf48a..a651ab3 100644 (file)
@@ -533,7 +533,7 @@ int acpi_processor_notify_smm(struct module *calling_module)
 
 EXPORT_SYMBOL(acpi_processor_notify_smm);
 
-static int acpi_processor_get_psd(struct acpi_processor        *pr)
+int acpi_processor_get_psd(acpi_handle handle, struct acpi_psd_package *pdomain)
 {
        int result = 0;
        acpi_status status = AE_OK;
@@ -541,9 +541,8 @@ static int acpi_processor_get_psd(struct acpi_processor     *pr)
        struct acpi_buffer format = {sizeof("NNNNN"), "NNNNN"};
        struct acpi_buffer state = {0, NULL};
        union acpi_object  *psd = NULL;
-       struct acpi_psd_package *pdomain;
 
-       status = acpi_evaluate_object(pr->handle, "_PSD", NULL, &buffer);
+       status = acpi_evaluate_object(handle, "_PSD", NULL, &buffer);
        if (ACPI_FAILURE(status)) {
                return -ENODEV;
        }
@@ -561,8 +560,6 @@ static int acpi_processor_get_psd(struct acpi_processor     *pr)
                goto end;
        }
 
-       pdomain = &(pr->performance->domain_info);
-
        state.length = sizeof(struct acpi_psd_package);
        state.pointer = pdomain;
 
@@ -597,6 +594,7 @@ end:
        kfree(buffer.pointer);
        return result;
 }
+EXPORT_SYMBOL(acpi_processor_get_psd);
 
 int acpi_processor_preregister_performance(
                struct acpi_processor_performance __percpu *performance)
@@ -645,7 +643,8 @@ int acpi_processor_preregister_performance(
 
                pr->performance = per_cpu_ptr(performance, i);
                cpumask_set_cpu(i, pr->performance->shared_cpu_map);
-               if (acpi_processor_get_psd(pr)) {
+               pdomain = &(pr->performance->domain_info);
+               if (acpi_processor_get_psd(pr->handle, pdomain)) {
                        retval = -EINVAL;
                        continue;
                }