[kas:lam 9/10] arch/x86/kernel/process.c:1035:37: error: 'mm_context_t' has no member named 'lam'

From: kernel test robot
Date: Thu Apr 07 2022 - 02:31:44 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git lam
head: 73447e771c55e18598a6fbf6adee1002aee18ea0
commit: d4e785c333c5cfacdc663cb05ea375238393027e [9/10] x86/mm: Add userspace API to enable Linear Address Masking
config: i386-tinyconfig (https://download.01.org/0day-ci/archive/20220407/202204071441.Xq1KTIgi-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.2.0-19) 11.2.0
reproduce (this is a W=1 build):
# https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git/commit/?id=d4e785c333c5cfacdc663cb05ea375238393027e
git remote add kas https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git
git fetch --no-tags kas lam
git checkout d4e785c333c5cfacdc663cb05ea375238393027e
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash arch/x86/kernel/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

arch/x86/kernel/process.c:896:13: warning: no previous prototype for 'arch_post_acpi_subsys_init' [-Wmissing-prototypes]
896 | void __init arch_post_acpi_subsys_init(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/kernel/process.c: In function 'enable_lam':
>> arch/x86/kernel/process.c:1035:37: error: 'mm_context_t' has no member named 'lam'
1035 | current->mm->context.lam = LAM_U48;
| ^
arch/x86/kernel/process.c:1036:38: error: 'mm_context_t' has no member named 'lam'
1036 | else if (current->mm->context.lam == LAM_NONE)
| ^
arch/x86/kernel/process.c:1037:37: error: 'mm_context_t' has no member named 'lam'
1037 | current->mm->context.lam = LAM_U57;
| ^


vim +1035 arch/x86/kernel/process.c

1003
1004 static long enable_lam(struct task_struct *task, unsigned long features)
1005 {
1006 features |= task->thread.features;
1007
1008 /* LAM_U48 and LAM_U57 are mutually exclusive */
1009 if ((features & X86_THREAD_LAM_U48) && (features & X86_THREAD_LAM_U57))
1010 return -EINVAL;
1011
1012 if (in_32bit_syscall())
1013 return -EINVAL;
1014
1015 if (!cpu_feature_enabled(X86_FEATURE_LAM))
1016 return -ENXIO;
1017
1018 if (mmap_write_lock_killable(task->mm))
1019 return -EINTR;
1020
1021 if ((features & X86_THREAD_LAM_U48) && !lam_u48_allowed()) {
1022 mmap_write_unlock(task->mm);
1023 return -EINVAL;
1024 }
1025
1026 /*
1027 * Record the most permissive (allowing the widest tags) LAM
1028 * mode to the mm context. It determinates if a mappings above
1029 * 47 bit is allowed for the process.
1030 *
1031 * The mode is also used by a kernel thread when it does work
1032 * on behalf of the process (like async I/O, io_uring, etc.)
1033 */
1034 if (features & X86_THREAD_LAM_U48)
> 1035 current->mm->context.lam = LAM_U48;
1036 else if (current->mm->context.lam == LAM_NONE)
1037 current->mm->context.lam = LAM_U57;
1038
1039 mmap_write_unlock(task->mm);
1040 return 0;
1041 }
1042

--
0-DAY CI Kernel Test Service
https://01.org/lkp