On Tue, Oct 9, 2018 at 9:03 AM tip-bot for Kees Cook <[email protected]> wrote:
>
> Commit-ID: 184d47f0fd365108bd06ab26cdb3450b716269fd
> Gitweb:
> https://git.kernel.org/tip/184d47f0fd365108bd06ab26cdb3450b716269fd
> Author: Kees Cook <[email protected]>
> AuthorDate: Mon, 8 Oct 2018 16:54:34 -0700
> Committer: Ingo Molnar <[email protected]>
> CommitDate: Tue, 9 Oct 2018 08:55:07 +0200
>
> x86/mm: Avoid VLA in pgd_alloc()
>
> Arnd Bergmann reported that turning on -Wvla found a new (unintended) VLA
> usage:
>
> arch/x86/mm/pgtable.c: In function 'pgd_alloc':
> include/linux/build_bug.h:29:45: error: ISO C90 forbids variable length
> array 'u_pmds' [-Werror=vla]
> arch/x86/mm/pgtable.c:190:34: note: in expansion of macro 'static_cpu_has'
> #define PREALLOCATED_USER_PMDS (static_cpu_has(X86_FEATURE_PTI) ? \
> ^~~~~~~~~~~~~~
> arch/x86/mm/pgtable.c:431:16: note: in expansion of macro
> 'PREALLOCATED_USER_PMDS'
> pmd_t *u_pmds[PREALLOCATED_USER_PMDS];
> ^~~~~~~~~~~~~~~~~~~~~~
>
> Use the actual size of the array that is used for X86_FEATURE_PTI,
> which is known at build time, instead of the variable size.
>
> [ mingo: Squashed original fix with followup fix to avoid bisection breakage,
> wrote new changelog. ]
>
> Reported-by: Arnd Bergmann <[email protected]>
> Original-written-by: Arnd Bergmann <[email protected]>
> Reported-by: Borislav Petkov <[email protected]>
> Signed-off-by: Kees Cook <[email protected]>
Thanks for fixing up my incorrect fix, looks correct to me now.
Arnd