[PATCH 01/15] x86/cpufeatures: Add new word for scattered features

Tim Gardner tim.gardner at canonical.com
Thu May 23 15:26:43 UTC 2024


On 5/21/24 10:35 PM, Chris Chiu wrote:
> On Fri, May 17, 2024 at 3:59 PM Yuxuan Luo <yuxuan.luo at canonical.com> wrote:
>>
>> From: Sandipan Das <sandipan.das at amd.com>
>>
>> Add a new word for scattered features because all free bits among the
>> existing Linux-defined auxiliary flags have been exhausted.
>>
>> Signed-off-by: Sandipan Das <sandipan.das at amd.com>
>> Signed-off-by: Ingo Molnar <mingo at kernel.org>
>> Link: https://lore.kernel.org/r/8380d2a0da469a1f0ad75b8954a79fb689599ff6.1711091584.git.sandipan.das@amd.com
>> (cherry picked from commit 7f274e609f3d5f45c22b1dd59053f6764458b492)
>> CVE-2024-2201
>> Signed-off-by: Yuxuan Luo <yuxuan.luo at canonical.com>
>> ---
>>   arch/x86/include/asm/cpufeature.h        | 6 ++++--
>>   arch/x86/include/asm/cpufeatures.h       | 2 +-
>>   arch/x86/include/asm/disabled-features.h | 3 ++-
>>   arch/x86/include/asm/required-features.h | 3 ++-
>>   4 files changed, 9 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
>> index 4466a47b76080..41cb0cbbfdebf 100644
>> --- a/arch/x86/include/asm/cpufeature.h
>> +++ b/arch/x86/include/asm/cpufeature.h
>> @@ -92,8 +92,9 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
>>             CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 18, feature_bit) ||    \
>>             CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 19, feature_bit) ||    \
>>             CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 20, feature_bit) ||    \
>> +          CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 21, feature_bit) ||    \
>>             REQUIRED_MASK_CHECK                                    ||    \
>> -          BUILD_BUG_ON_ZERO(NCAPINTS != 21))
>> +          BUILD_BUG_ON_ZERO(NCAPINTS != 22))
>>
>>   #define DISABLED_MASK_BIT_SET(feature_bit)                             \
>>           ( CHECK_BIT_IN_MASK_WORD(DISABLED_MASK,  0, feature_bit) ||    \
>> @@ -117,8 +118,9 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
>>             CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 18, feature_bit) ||    \
>>             CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 19, feature_bit) ||    \
>>             CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 20, feature_bit) ||    \
>> +          CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 21, feature_bit) ||    \
>>             DISABLED_MASK_CHECK                                    ||    \
>> -          BUILD_BUG_ON_ZERO(NCAPINTS != 21))
>> +          BUILD_BUG_ON_ZERO(NCAPINTS != 22))
>>
>>   #define cpu_has(c, bit)                                                        \
>>          (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 :  \
>> diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
>> index 1ccdc67151453..68fd012e9df6e 100644
>> --- a/arch/x86/include/asm/cpufeatures.h
>> +++ b/arch/x86/include/asm/cpufeatures.h
>> @@ -13,7 +13,7 @@
>>   /*
>>    * Defines x86 CPU feature bits
>>    */
>> -#define NCAPINTS                       21         /* N 32-bit words worth of info */
>> +#define NCAPINTS                       22         /* N 32-bit words worth of info */
>>   #define NBUGINTS                       2          /* N 32-bit bug flags */
>>
>>   /*
>> diff --git a/arch/x86/include/asm/disabled-features.h b/arch/x86/include/asm/disabled-features.h
>> index 8453260f6d9f9..b51b937beea37 100644
>> --- a/arch/x86/include/asm/disabled-features.h
>> +++ b/arch/x86/include/asm/disabled-features.h
>> @@ -86,6 +86,7 @@
>>   #define DISABLED_MASK18        0
>>   #define DISABLED_MASK19        0
>>   #define DISABLED_MASK20        0
>> -#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21)
>> +#define DISABLED_MASK21        0
>> +#define DISABLED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22)
>>
>>   #endif /* _ASM_X86_DISABLED_FEATURES_H */
>> diff --git a/arch/x86/include/asm/required-features.h b/arch/x86/include/asm/required-features.h
>> index fb3d81347e333..06fb6b66a093b 100644
>> --- a/arch/x86/include/asm/required-features.h
>> +++ b/arch/x86/include/asm/required-features.h
>> @@ -103,6 +103,7 @@
>>   #define REQUIRED_MASK18        0
>>   #define REQUIRED_MASK19        0
>>   #define REQUIRED_MASK20        0
>> -#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 21)
>> +#define REQUIRED_MASK21        0
>> +#define REQUIRED_MASK_CHECK BUILD_BUG_ON_ZERO(NCAPINTS != 22)
>>
>>   #endif /* _ASM_X86_REQUIRED_FEATURES_H */
>> --
>> 2.34.1
>>
> 
> Please also append the [SRU] and which kernel you'd like to apply to
> the patchset.
> I assume it's the same [Focal] as the cover letter.
>>

Chris - I don't understand your comment. This is a CVE patch and 
therefore does not require an SRU justification. Furthermore, the 
destination kernel (Focal) seems clear to me from the subject of the 
cover note.

rtg
-- 
-----------
Tim Gardner
Canonical, Inc




More information about the kernel-team mailing list