From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751857AbcEYTKf (ORCPT ); Wed, 25 May 2016 15:10:35 -0400 Received: from mail-pf0-f173.google.com ([209.85.192.173]:35044 "EHLO mail-pf0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751819AbcEYTKc (ORCPT ); Wed, 25 May 2016 15:10:32 -0400 From: Hoan Tran To: "Rafael J. Wysocki" , Len Brown , Ashwin Chaugule Cc: linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Duc Dang , lho@apm.com, Hoan Tran Subject: [PATCH] acpi: cppc: Prevent cpc_desc_ptr points to the invalid data Date: Wed, 25 May 2016 12:09:23 -0700 Message-Id: <1464203363-20599-1-git-send-email-hotran@apm.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org When CPPC fails to request PCC channel, the CPC data is freed and cpc_desc_ptr points to the invalid data. This change prevents this issue by moving cpc_desc_ptr assignment after PCC channel request. Signed-off-by: Hoan Tran --- drivers/acpi/cppc_acpi.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c index 8adac69..85fd8f7 100644 --- a/drivers/acpi/cppc_acpi.c +++ b/drivers/acpi/cppc_acpi.c @@ -595,9 +595,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) @@ -610,6 +607,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); -- 1.9.1