| From arnd@arndb.de Wed Feb 21 10:34:37 2018 |
| From: Arnd Bergmann <arnd@arndb.de> |
| Date: Thu, 15 Feb 2018 16:16:57 +0100 |
| Subject: x86: fix build warnign with 32-bit PAE |
| To: stable@vger.kernel.org |
| Cc: x86@kernel.org, Dave Hansen <dave.hansen@linux.intel.com>, Ben Hutchings <ben.hutchings@codethink.co.uk>, Arnd Bergmann <arnd@arndb.de>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Hugh Dickins <hughd@google.com>, Kees Cook <keescook@chromium.org>, linux-kernel@vger.kernel.org |
| Message-ID: <20180215151710.1473117-2-arnd@arndb.de> |
| |
| |
| I ran into a 4.9 build warning in randconfig testing, starting with the |
| KAISER patches: |
| |
| arch/x86/kernel/ldt.c: In function 'alloc_ldt_struct': |
| arch/x86/include/asm/pgtable_types.h:208:24: error: large integer implicitly truncated to unsigned type [-Werror=overflow] |
| #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX) |
| ^ |
| arch/x86/kernel/ldt.c:81:6: note: in expansion of macro '__PAGE_KERNEL' |
| __PAGE_KERNEL); |
| ^~~~~~~~~~~~~ |
| |
| I originally ran into this last year when the patches were part of linux-next, |
| and tried to work around it by using the proper 'pteval_t' types consistently, |
| but that caused additional problems. |
| |
| This takes a much simpler approach, and makes the argument type of the dummy |
| helper always 64-bit, which is wide enough for any page table layout and |
| won't hurt since this call is just an empty stub anyway. |
| |
| Fixes: 8f0baadf2bea ("kaiser: merged update") |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Acked-by: Kees Cook <keescook@chromium.org> |
| Acked-by: Hugh Dickins <hughd@google.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| include/linux/kaiser.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/include/linux/kaiser.h |
| +++ b/include/linux/kaiser.h |
| @@ -32,7 +32,7 @@ static inline void kaiser_init(void) |
| { |
| } |
| static inline int kaiser_add_mapping(unsigned long addr, |
| - unsigned long size, unsigned long flags) |
| + unsigned long size, u64 flags) |
| { |
| return 0; |
| } |