Fix uninitialized local variable "covered" in i386 acpi-cpufreq driver
authorFenghua Yu <fenghua.yu@intel.com>
Tue, 31 Jul 2007 07:37:26 +0000 (00:37 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 31 Jul 2007 22:39:36 +0000 (15:39 -0700)
The local variable "covered" is used without initialization in i386
acpi-cpufreq driver.  The initial value of covered should be 0.  The bug
will cause memory leak when hit.  The following patch fixes this bug.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c

index 6f846bee2103d4b17eec817d4a6e4501b675194c..32d04b083e38f1c592778508909f9239f8f82f5f 100644 (file)
@@ -511,7 +511,6 @@ acpi_cpufreq_guess_freq(struct acpi_cpufreq_data *data, unsigned int cpu)
 static int acpi_cpufreq_early_init(void)
 {
        struct acpi_processor_performance *data;
-       cpumask_t covered;
        unsigned int i, j;
 
        dprintk("acpi_cpufreq_early_init\n");
@@ -520,14 +519,13 @@ static int acpi_cpufreq_early_init(void)
                data = kzalloc(sizeof(struct acpi_processor_performance),
                               GFP_KERNEL);
                if (!data) {
-                       for_each_cpu_mask(j, covered) {
+                       for_each_possible_cpu(j) {
                                kfree(acpi_perf_data[j]);
                                acpi_perf_data[j] = NULL;
                        }
                        return -ENOMEM;
                }
                acpi_perf_data[i] = data;
-               cpu_set(i, covered);
        }
 
        /* Do initialization in ACPI core */