From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754188AbaA1D5m (ORCPT ); Mon, 27 Jan 2014 22:57:42 -0500 Received: from mail-qc0-f171.google.com ([209.85.216.171]:57564 "EHLO mail-qc0-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753428AbaA1D5l (ORCPT ); Mon, 27 Jan 2014 22:57:41 -0500 From: Konrad Rzeszutek Wilk To: linux-kernel@vger.kernel.org, rafael.j.wysocki@intel.com, cpufreq@vger.kernel.org, linux-pm@vger.kernel.org Cc: Konrad Rzeszutek Wilk , Lukasz Majewski , Myungjoo Ham , Viresh Kumar , Boris Ostrovsky Subject: [PATCH] acpi-cpufreq: De-register cpu notifier and free struct msr on error. Date: Mon, 27 Jan 2014 22:58:11 -0500 Message-Id: <1390881491-18998-1-git-send-email-konrad.wilk@oracle.com> X-Mailer: git-send-email 1.7.7.6 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If cpufreq_register_driver() fails we would free the acpi driver related structures but not free the ones allocated by acpi_cpufreq_boost_init() function. This meant that as the driver error-ed out and a CPU online/offline event came we would crash and burn as one of the CPU notifiers would point to garbage. This fixes a regression that commit cfc9c8ed03e4d908f2388af8815f44c87b503aaf "acpi-cpufreq: Adjust the code to use the common boost attribute" introduced. CC: Lukasz Majewski CC: Myungjoo Ham CC: Viresh Kumar CC: Rafael J. Wysocki CC: Boris Ostrovsky Signed-off-by: Konrad Rzeszutek Wilk --- drivers/cpufreq/acpi-cpufreq.c | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c index 79e5608..3e856d6 100644 --- a/drivers/cpufreq/acpi-cpufreq.c +++ b/drivers/cpufreq/acpi-cpufreq.c @@ -969,9 +969,10 @@ static int __init acpi_cpufreq_init(void) acpi_cpufreq_boost_init(); ret = cpufreq_register_driver(&acpi_cpufreq_driver); - if (ret) + if (ret) { free_acpi_perf_data(); - + acpi_cpufreq_boost_exit(); + } return ret; } -- 1.7.7.6