mirror of
https://github.com/torvalds/linux.git
synced 2026-06-05 21:15:53 +02:00
ACPI / CPPC: Prevent cpc_desc_ptr points to the invalid data
commit 2324d15447 upstream.
When CPPC fails to request a PCC channel, the CPC data is freed
and cpc_desc_ptr points to the invalid data.
Avoid this issue by moving the cpc_desc_ptr assignment after the PCC
channel request.
Signed-off-by: Hoan Tran <hotran@apm.com>
Acked-by: Ashwin Chaugule <ashwin.chaugule@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
cd84d3158f
commit
5f009361d6
|
|
@ -508,9 +508,6 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
|
|||
/* Store CPU Logical ID */
|
||||
cpc_ptr->cpu_id = pr->id;
|
||||
|
||||
/* Plug it into this CPUs CPC descriptor. */
|
||||
per_cpu(cpc_desc_ptr, pr->id) = cpc_ptr;
|
||||
|
||||
/* Parse PSD data for this CPU */
|
||||
ret = acpi_get_psd(cpc_ptr, handle);
|
||||
if (ret)
|
||||
|
|
@ -523,6 +520,9 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr)
|
|||
goto out_free;
|
||||
}
|
||||
|
||||
/* Plug PSD data into this CPUs CPC descriptor. */
|
||||
per_cpu(cpc_desc_ptr, pr->id) = cpc_ptr;
|
||||
|
||||
/* Everything looks okay */
|
||||
pr_debug("Parsed CPC struct for CPU: %d\n", pr->id);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user