• Sean Christopherson's avatar
    KVM: x86: Use MTRR macros to define possible MTRR MSR ranges · 34a83dea
    Sean Christopherson authored
    Use the MTRR macros to identify the ranges of possible MTRR MSRs instead
    of bounding the ranges with a mismash of open coded values and unrelated
    MSR indices.  Carving out the gap for the machine check MSRs in particular
    is confusing, as it's easy to incorrectly think the case statement handles
    MCE MSRs instead of skipping them.
    
    Drop the range-based funneling of MSRs between the end of the MCE MSRs
    and MTRR_DEF_TYPE, i.e. 0x2A0-0x2FF, and instead handle MTTR_DEF_TYPE as
    the one-off case that it is.
    
    Extract PAT (0x277) as well in anticipation of dropping PAT "handling"
    from the MTRR code.
    
    Keep the range-based handling for the variable+fixed MTRRs even though
    capturing unknown MSRs 0x214-0x24F is arguably "wrong".  There is a gap in
    the fixed MTRRs, 0x260-0x267, i.e. the MTRR code needs to filter out
    unknown MSRs anyways, and using a single range generates marginally better
    code for the big switch statement.
    Reviewed-by: default avatarKai Huang <kai.huang@intel.com>
    Link: https://lore.kernel.org/r/20230511233351.635053-6-seanjc@google.comSigned-off-by: default avatarSean Christopherson <seanjc@google.com>
    34a83dea
x86.c 363 KB