lkml.org 
[lkml]   [2009]   [Oct]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[079/136] [CPUFREQ] Fix NULL ptr regression in powernow-k8
    2.6.31-stable review patch.  If anyone has any objections, please let us know.

    ------------------
    From: Kurt Roeckx <kurt@roeckx.be>

    commit f0adb134d8dc9993a9998dc50845ec4f6ff4fadc upstream.

    Fixes bugzilla #13780

    From: Kurt Roeckx <kurt@roeckx.be>
    Signed-off-by: Dave Jones <davej@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/x86/kernel/cpu/cpufreq/powernow-k8.c | 15 ++++++++-------
    1 file changed, 8 insertions(+), 7 deletions(-)

    --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
    +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c
    @@ -605,9 +605,10 @@ static int check_pst_table(struct powern
    return 0;
    }

    -static void invalidate_entry(struct powernow_k8_data *data, unsigned int entry)
    +static void invalidate_entry(struct cpufreq_frequency_table *powernow_table,
    + unsigned int entry)
    {
    - data->powernow_table[entry].frequency = CPUFREQ_ENTRY_INVALID;
    + powernow_table[entry].frequency = CPUFREQ_ENTRY_INVALID;
    }

    static void print_basics(struct powernow_k8_data *data)
    @@ -914,13 +915,13 @@ static int fill_powernow_table_pstate(st
    "bad value %d.\n", i, index);
    printk(KERN_ERR PFX "Please report to BIOS "
    "manufacturer\n");
    - invalidate_entry(data, i);
    + invalidate_entry(powernow_table, i);
    continue;
    }
    rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
    if (!(hi & HW_PSTATE_VALID_MASK)) {
    dprintk("invalid pstate %d, ignoring\n", index);
    - invalidate_entry(data, i);
    + invalidate_entry(powernow_table, i);
    continue;
    }

    @@ -970,7 +971,7 @@ static int fill_powernow_table_fidvid(st
    /* verify frequency is OK */
    if ((freq > (MAX_FREQ * 1000)) || (freq < (MIN_FREQ * 1000))) {
    dprintk("invalid freq %u kHz, ignoring\n", freq);
    - invalidate_entry(data, i);
    + invalidate_entry(powernow_table, i);
    continue;
    }

    @@ -978,7 +979,7 @@ static int fill_powernow_table_fidvid(st
    * BIOSs are using "off" to indicate invalid */
    if (vid == VID_OFF) {
    dprintk("invalid vid %u, ignoring\n", vid);
    - invalidate_entry(data, i);
    + invalidate_entry(powernow_table, i);
    continue;
    }

    @@ -1009,7 +1010,7 @@ static int fill_powernow_table_fidvid(st
    (unsigned int)
    (data->acpi_data.states[i].core_frequency
    * 1000));
    - invalidate_entry(data, i);
    + invalidate_entry(powernow_table, i);
    continue;
    }
    }



    \
     
     \ /
      Last update: 2009-10-02 03:53    [W:4.106 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site