lkml.org 
[lkml]   [2023]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v5 07/15] x86/mtrr: replace vendor tests in MTRR code
From
On 12.04.23 10:45, Borislav Petkov wrote:
> On Sat, Apr 01, 2023 at 08:36:44AM +0200, Juergen Gross wrote:
>> Modern CPUs all share the same MTRR interface implemented via
>> generic_mtrr_ops.
>>
>> At several places in MTRR code this generic interface is deduced via
>> is_cpu(INTEL) tests, which is only working due to X86_VENDOR_INTEL
>> being 0 (the is_cpu() macro is testing mtrr_if->vendor, which isn't
>> explicitly set in generic_mtrr_ops).
>>
>> Fix that by replacing the is_cpu(INTEL) tests with testing for mtrr_if
>> to be &generic_mtrr_ops.
>
> Replace with:
>
> "Test the generic CPU feature X86_FEATURE_MTRR instead."
>
>> diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.c b/arch/x86/kernel/cpu/mtrr/mtrr.c
>> index 1c19d67ddab3..46aae69d259e 100644
>> --- a/arch/x86/kernel/cpu/mtrr/mtrr.c
>> +++ b/arch/x86/kernel/cpu/mtrr/mtrr.c
>> @@ -108,14 +108,12 @@ static int have_wrcomb(void)
>> /* This function returns the number of variable MTRRs */
>> static void __init set_num_var_ranges(bool use_generic)
>> {
>> - unsigned long config = 0, dummy;
>> + unsigned long config, dummy;
>>
>> if (use_generic)
>> rdmsr(MSR_MTRRcap, config, dummy);
>> - else if (is_cpu(AMD) || is_cpu(HYGON))
>> - config = 2;
>> - else if (is_cpu(CYRIX) || is_cpu(CENTAUR))
>> - config = 8;
>> + else
>> + config = mtrr_if->var_regs;
>>
>> num_var_ranges = config & MTRR_CONFIG_NUM_VAR_MASK;
>> }
>
> From previous review which you've missed to incorporate:
>
> "Since you're touching this function, you might simply expand its body in
> its only call site in mtrr_bp_init(), put a comment above the expanded
> code and remove that function.
>
> That is, if we're going to do the ->var_regs thing."
>

Oh, sorry. Will do it.


Juergen
[unhandled content-type:application/pgp-keys][unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2023-04-12 12:25    [W:0.655 / U:0.080 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site