Re: [PATCH v2] hugetlb: clean up potential spectre issue warnings

From: Mike Kravetz
Date: Wed Feb 23 2022 - 13:37:43 EST


On 2/23/22 00:33, Michal Hocko wrote:
> On Tue 22-02-22 13:53:56, Mike Kravetz wrote:
>> On 2/21/22 23:47, Michal Hocko wrote:
>> How about adding this note to the commit message?
>>
>> Note: these routines take a user specified value used as an index ONCE
>> during the boot process. As a result, they can not be used as a general
>> method of exploitation. Code changes are being made to eliminate warnings.
>
> This would help but the question whether the change is worth remains.
> Does this change have any other advantage than silencing the warning?
>

Silencing the warnings was the primary motivation for the change. If Dan
has a plan to change smatch so that they are silenced for __init functions,
then it would be better to not make the changes to use array_index_nospec.

While making the changes, I shuffled the code a little and did not immediately
notice that it also 'fixes' an overflow/truncation issue when assigning an
unsigned long to int as addressed in [1]. We should probably make this change
whether or not we use array_index_nospec to silence warnings.

[1] https://lore.kernel.org/linux-mm/20220209134018.8242-1-liuyuntao10@xxxxxxxxxx/

Thanks for your comments and suggestions!
--
Mike Kravetz