• Len Brown's avatar
    ACPI: sanity check _PSS frequency to prevent cpufreq crash · 34d531e6
    Len Brown authored
    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=500311Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    34d531e6
processor_perflib.c 17.7 KB