]> git.baikalelectronics.ru Git - kernel.git/commit
ACPI: sanity check _PSS frequency to prevent cpufreq crash
authorLen Brown <len.brown@intel.com>
Tue, 26 May 2009 19:11:06 +0000 (15:11 -0400)
committerLen Brown <len.brown@intel.com>
Sat, 30 May 2009 00:45:58 +0000 (20:45 -0400)
commitbc583b5b05f84dbfdacce5bcb25b9397463413e7
tree6f62bdd6a5eef1ec6b49ab8b5e6808abba528b6d
parent1a8a175eae55231007fbfb6788bce712047f526d
ACPI: sanity check _PSS frequency to prevent cpufreq crash

When BIOS SETUP is changed to disable EIST, some BIOS
hand the OS an un-initialized _PSS:

        Name (_PSS, Package (0x06)
        {
            Package (0x06)
            {
                0x80000000, // frequency [MHz]
                0x80000000, // power [mW]
                0x80000000, // latency [us]
                0x80000000, // BM latency [us]
                0x80000000, // control
                0x80000000 // status
            },
    ...

These are outrageous values for frequency,
power and latency, raising the question where to draw
the line between legal and illegal.  We tend to survive
garbage in the power and latency fields, but we can BUG_ON
when garbage is in the frequency field.

Cpufreq multiplies the frequency by 1000 and stores it in a u32 KHz.
So disregard a _PSS with a frequency so large
that it can't be represented by cpufreq.

https://bugzilla.redhat.com/show_bug.cgi?id=500311

Signed-off-by: Len Brown <len.brown@intel.com>
drivers/acpi/processor_perflib.c