From: Arnd Bergmann <arnd@kernel.org> To: Ard Biesheuvel <ardb@kernel.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>, x86@kernel.org, Nathan Chancellor <natechancellor@gmail.com>, Nick Desaulniers <ndesaulniers@google.com> Cc: Arnd Bergmann <arnd@arndb.de>, Darren Hart <dvhart@infradead.org>, Andy Shevchenko <andy@infradead.org>, "H. Peter Anvin" <hpa@zytor.com>, linux-efi@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com Subject: [PATCH] x86: efi: avoid BUILD_BUG_ON() for non-constant p4d_index Date: Thu, 7 Jan 2021 23:34:15 +0100 Message-ID: <20210107223424.4135538-1-arnd@kernel.org> (raw) From: Arnd Bergmann <arnd@arndb.de> When 5-level page tables are enabled, clang triggers a BUILD_BUG_ON(): x86_64-linux-ld: arch/x86/platform/efi/efi_64.o: in function `efi_sync_low_kernel_mappings': efi_64.c:(.text+0x22c): undefined reference to `__compiletime_assert_354' Use the same method as in commit c65e774fb3f6 ("x86/mm: Make PGDIR_SHIFT and PTRS_PER_P4D variable") and change it to MAYBE_BUILD_BUG_ON(), so it only triggers for constant input. Link: https://github.com/ClangBuiltLinux/linux/issues/256 Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- arch/x86/platform/efi/efi_64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c index e1e8d4e3a213..62bb1616b4a5 100644 --- a/arch/x86/platform/efi/efi_64.c +++ b/arch/x86/platform/efi/efi_64.c @@ -137,8 +137,8 @@ void efi_sync_low_kernel_mappings(void) * As with PGDs, we share all P4D entries apart from the one entry * that covers the EFI runtime mapping space. */ - BUILD_BUG_ON(p4d_index(EFI_VA_END) != p4d_index(MODULES_END)); - BUILD_BUG_ON((EFI_VA_START & P4D_MASK) != (EFI_VA_END & P4D_MASK)); + MAYBE_BUILD_BUG_ON(p4d_index(EFI_VA_END) != p4d_index(MODULES_END)); + MAYBE_BUILD_BUG_ON((EFI_VA_START & P4D_MASK) != (EFI_VA_END & P4D_MASK)); pgd_efi = efi_pgd + pgd_index(EFI_VA_END); pgd_k = pgd_offset_k(EFI_VA_END); -- 2.29.2
next reply index Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-01-07 22:34 Arnd Bergmann [this message] 2021-01-07 22:42 ` Nathan Chancellor 2021-01-13 17:51 ` Ard Biesheuvel 2021-01-15 18:23 ` Borislav Petkov 2021-01-15 18:32 ` Nathan Chancellor 2021-01-15 19:07 ` Borislav Petkov 2021-01-15 19:11 ` Arvind Sankar 2021-01-15 19:18 ` Borislav Petkov 2021-01-15 19:54 ` Arnd Bergmann 2021-01-15 20:12 ` Arvind Sankar 2021-01-15 20:32 ` Arvind Sankar 2021-01-15 19:07 ` Arvind Sankar 2021-01-15 20:27 ` Arvind Sankar 2021-01-16 16:34 ` Ard Biesheuvel 2021-01-18 20:24 ` Borislav Petkov 2021-01-18 21:42 ` Arvind Sankar 2021-01-20 9:33 ` Ard Biesheuvel 2021-01-20 11:44 ` Borislav Petkov 2021-02-03 18:51 ` Nathan Chancellor 2021-02-03 20:29 ` Ard Biesheuvel 2021-02-04 10:51 ` Borislav Petkov 2021-02-04 10:59 ` Ard Biesheuvel 2021-02-04 19:16 ` Nathan Chancellor 2021-02-04 21:43 ` Arvind Sankar 2021-02-04 22:13 ` Borislav Petkov 2021-02-05 0:08 ` Arvind Sankar 2021-02-05 11:39 ` [PATCH] x86/efi: Remove EFI PGD build time checks Borislav Petkov 2021-02-05 11:57 ` Ard Biesheuvel 2021-02-05 18:14 ` Nick Desaulniers 2021-02-05 18:56 ` Nathan Chancellor 2021-02-05 10:34 ` [PATCH] x86: efi: avoid BUILD_BUG_ON() for non-constant p4d_index Borislav Petkov 2021-02-05 18:27 ` Nick Desaulniers 2021-02-05 18:31 ` Nathan Chancellor 2021-01-20 11:26 ` Kirill A. Shutemov 2021-01-20 11:06 ` Kirill A. Shutemov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210107223424.4135538-1-arnd@kernel.org \ --to=arnd@kernel.org \ --cc=andy@infradead.org \ --cc=ardb@kernel.org \ --cc=arnd@arndb.de \ --cc=bp@alien8.de \ --cc=clang-built-linux@googlegroups.com \ --cc=dvhart@infradead.org \ --cc=hpa@zytor.com \ --cc=linux-efi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@redhat.com \ --cc=natechancellor@gmail.com \ --cc=ndesaulniers@google.com \ --cc=platform-driver-x86@vger.kernel.org \ --cc=tglx@linutronix.de \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-EFI Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-efi/0 linux-efi/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-efi linux-efi/ https://lore.kernel.org/linux-efi \ linux-efi@vger.kernel.org public-inbox-index linux-efi Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-efi AGPL code for this site: git clone https://public-inbox.org/public-inbox.git