[arm-integrator:kernel-in-vmalloc-v5.18-rc1 26/31] arch/riscv/include/asm/pgtable-64.h:111:25: error: implicit declaration of function 'pfn_to_virt'
From: kernel test robot
Date: Thu Jun 02 2022 - 13:39:09 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git kernel-in-vmalloc-v5.18-rc1
head: 8e0ac1b6b44d1c62420ad92b2a1cbc106a00f3de
commit: 969a734e01b9cf090fce853d9d706455e5a9cdf1 [26/31] riscv: Make virt_to_pfn() a static inline
config: riscv-randconfig-r042-20220531 (https://download.01.org/0day-ci/archive/20220603/202206030130.THircVJ2-lkp@xxxxxxxxx/config)
compiler: riscv64-linux-gcc (GCC) 11.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git/commit/?id=969a734e01b9cf090fce853d9d706455e5a9cdf1
git remote add arm-integrator https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator.git
git fetch --no-tags arm-integrator kernel-in-vmalloc-v5.18-rc1
git checkout 969a734e01b9cf090fce853d9d706455e5a9cdf1
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross W=1 O=build_dir ARCH=riscv prepare
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All error/warnings (new ones prefixed by >>):
WARNING: unmet direct dependencies detected for DRM_GEM_SHMEM_HELPER
Depends on HAS_IOMEM && DRM && MMU
Selected by
- DRM_SSD130X && HAS_IOMEM && DRM
In file included from include/linux/rbtree.h:24,
from include/linux/mm_types.h:11,
from arch/riscv/include/asm/tlbflush.h:10,
from arch/riscv/include/asm/pgtable.h:108,
from arch/riscv/include/asm/page.h:14,
from arch/riscv/include/asm/thread_info.h:11,
from include/linux/thread_info.h:60,
from include/asm-generic/preempt.h:5,
from ./arch/riscv/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:55,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/mm.h:7,
from arch/riscv/kernel/asm-offsets.c:10:
include/linux/rcupdate.h: In function '__rcu_read_lock':
>> include/linux/rcupdate.h:68:9: error: implicit declaration of function 'preempt_disable'
68 | preempt_disable();
| ^~~~~~~~~~~~~~~
include/linux/rcupdate.h: In function '__rcu_read_unlock':
>> include/linux/rcupdate.h:73:9: error: implicit declaration of function 'preempt_enable'
73 | preempt_enable();
| ^~~~~~~~~~~~~~
In file included from include/linux/rbtree.h:24,
from include/linux/mm_types.h:11,
from arch/riscv/include/asm/tlbflush.h:10,
from arch/riscv/include/asm/pgtable.h:108,
from arch/riscv/include/asm/page.h:14,
from arch/riscv/include/asm/thread_info.h:11,
from include/linux/thread_info.h:60,
from include/asm-generic/preempt.h:5,
from ./arch/riscv/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from include/linux/spinlock.h:55,
from include/linux/mmzone.h:8,
from include/linux/gfp.h:6,
from include/linux/mm.h:7,
from arch/riscv/kernel/asm-offsets.c:10:
include/linux/rcupdate.h: In function 'rcu_read_lock_sched_notrace':
>> include/linux/rcupdate.h:794:9: error: implicit declaration of function 'preempt_disable_notrace'
794 | preempt_disable_notrace();
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h: In function 'rcu_read_unlock_sched_notrace':
>> include/linux/rcupdate.h:816:9: error: implicit declaration of function 'preempt_enable_notrace'
816 | preempt_enable_notrace();
| ^~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/compiler_types.h:93,
from <command-line>:
include/asm-generic/mmiowb.h: In function 'mmiowb_set_pending':
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/linux/compiler-gcc.h:35:33: note: in definition of macro 'RELOC_HIDE'
35 | (typeof(ptr)) (__ptr + (off)); | ^~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/mmiowb.h:30:33: note: in expansion of macro 'raw_cpu_ptr'
30 | #define __mmiowb_state() raw_cpu_ptr(&__mmiowb_state)
| ^~~~~~~~~~~
include/asm-generic/mmiowb.h:37:35: note: in expansion of macro '__mmiowb_state'
37 | struct mmiowb_state = __mmiowb_state();
| ^~~~~~~~~~~~~~
include/asm-generic/mmiowb.h: In function 'mmiowb_spin_lock':
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/linux/compiler-gcc.h:35:33: note: in definition of macro 'RELOC_HIDE'
35 | (typeof(ptr)) (__ptr + (off)); | ^~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/mmiowb.h:30:33: note: in expansion of macro 'raw_cpu_ptr'
30 | #define __mmiowb_state() raw_cpu_ptr(&__mmiowb_state)
| ^~~~~~~~~~~
include/asm-generic/mmiowb.h:45:35: note: in expansion of macro '__mmiowb_state'
45 | struct mmiowb_state = __mmiowb_state();
| ^~~~~~~~~~~~~~
include/asm-generic/mmiowb.h: In function 'mmiowb_spin_unlock':
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/linux/compiler-gcc.h:35:33: note: in definition of macro 'RELOC_HIDE'
35 | (typeof(ptr)) (__ptr + (off)); | ^~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/mmiowb.h:30:33: note: in expansion of macro 'raw_cpu_ptr'
30 | #define __mmiowb_state() raw_cpu_ptr(&__mmiowb_state)
| ^~~~~~~~~~~
include/asm-generic/mmiowb.h:51:35: note: in expansion of macro '__mmiowb_state'
51 | struct mmiowb_state = __mmiowb_state();
| ^~~~~~~~~~~~~~
In file included from arch/riscv/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/mm.h:6,
from arch/riscv/kernel/asm-offsets.c:10:
include/linux/seqlock.h: In function '__seqprop_assert':
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/asm-generic/rwonce.h:44:43: note: in expansion of macro '__unqual_scalar_typeof'
44 | #define __READ_ONCE(x) volatile __unqual_scalar_typeof(x)
| ^~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:50:9: note: in expansion of macro '__READ_ONCE'
50 | __READ_ONCE(x); | ^~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/asm-generic/rwonce.h:50:9: note: in expansion of macro '__READ_ONCE'
50 | __READ_ONCE(x); | ^~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:67:10: note: in expansion of macro 'raw_cpu_ptr'
67 | | ^~~~~~~~~~~
include/asm-generic/percpu.h:129:18: note: in expansion of macro 'raw_cpu_generic_read'
129 | ___ret = raw_cpu_generic_read(pcp); | ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:140:25: note: in expansion of macro '__this_cpu_generic_read_noirq'
140 | __ret = __this_cpu_generic_read_noirq(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:320:41: note: in expansion of macro 'this_cpu_generic_read'
320 | #define this_cpu_read_1(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:321:30: note: in expansion of macro 'this_cpu_read_1'
321 | case 1: pscr_ret__ = stem##1(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:323:41: note: in expansion of macro 'this_cpu_generic_read'
323 | #define this_cpu_read_2(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:322:30: note: in expansion of macro 'this_cpu_read_2'
322 | case 2: pscr_ret__ = stem##2(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:323:41: note: in expansion of macro 'this_cpu_generic_read'
323 | #define this_cpu_read_2(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:322:30: note: in expansion of macro 'this_cpu_read_2'
322 | case 2: pscr_ret__ = stem##2(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:323:41: note: in expansion of macro 'this_cpu_generic_read'
323 | #define this_cpu_read_2(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:322:30: note: in expansion of macro 'this_cpu_read_2'
322 | case 2: pscr_ret__ = stem##2(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:323:41: note: in expansion of macro 'this_cpu_generic_read'
323 | #define this_cpu_read_2(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:322:30: note: in expansion of macro 'this_cpu_read_2'
322 | case 2: pscr_ret__ = stem##2(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/linux/compiler_types.h:340:9: note: in expansion of macro '__compiletime_assert'
340 | __compiletime_assert(condition, msg, prefix, suffix)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/compiler_types.h:352:9: note: in expansion of macro '_compiletime_assert'
352 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), | ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:323:41: note: in expansion of macro 'this_cpu_generic_read'
323 | #define this_cpu_read_2(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:322:30: note: in expansion of macro 'this_cpu_read_2'
322 | case 2: pscr_ret__ = stem##2(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
271 | lockdep_assert_preemption_disabled();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/riscv/include/asm/smp.h:60:54: error: invalid use of undefined type 'struct thread_info'
60 | #define raw_smp_processor_id() (current_thread_info()->cpu)
| ^~
include/asm-generic/bug.h:104:32: note: in definition of macro 'WARN_ON_ONCE'
104 | int __ret_warn_on = | ^~~~~~~~~
include/asm-generic/rwonce.h:44:43: note: in expansion of macro '__unqual_scalar_typeof'
44 | #define __READ_ONCE(x) volatile __unqual_scalar_typeof(x)
| ^~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:50:9: note: in expansion of macro '__READ_ONCE'
50 | __READ_ONCE(x); | ^~~~~~~~~~~
include/asm-generic/percpu.h:119:18: note: in expansion of macro 'READ_ONCE'
119 | ___ret = | ^~~~~~~~~
include/linux/percpu-defs.h:231:9: note: in expansion of macro 'RELOC_HIDE'
231 | __kernel __force (__offset))
| ^~~~~~~~~~
include/asm-generic/percpu.h:44:31: note: in expansion of macro 'SHIFT_PERCPU_PTR'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:25: note: in expansion of macro 'per_cpu_offset'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~
include/asm-generic/percpu.h:31:40: note: in expansion of macro 'raw_smp_processor_id'
31 | #define __my_cpu_offset per_cpu_offset(raw_smp_processor_id())
| ^~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:44:53: note: in expansion of macro '__my_cpu_offset'
44 | #define arch_raw_cpu_ptr(ptr) SHIFT_PERCPU_PTR(ptr, __my_cpu_offset)
| ^~~~~~~~~~~~~~~
include/linux/percpu-defs.h:242:9: note: in expansion of macro 'arch_raw_cpu_ptr'
242 | arch_raw_cpu_ptr(ptr); | ^~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:119:29: note: in expansion of macro 'raw_cpu_ptr'
119 | ___ret = | ^~~~~~~~~~~
include/asm-generic/percpu.h:138:25: note: in expansion of macro '__this_cpu_generic_read_nopreempt'
138 | __ret = __this_cpu_generic_read_nopreempt(pcp); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/asm-generic/percpu.h:323:41: note: in expansion of macro 'this_cpu_generic_read'
323 | #define this_cpu_read_2(pcp) this_cpu_generic_read(pcp)
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:322:30: note: in expansion of macro 'this_cpu_read_2'
322 | case 2: pscr_ret__ = stem##2(variable); break; | ^~~~
include/linux/percpu-defs.h:507:41: note: in expansion of macro '__pcpu_size_call_return'
507 | #define this_cpu_read(pcp) __pcpu_size_call_return(this_cpu_read_, pcp)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/lockdep.h:580:50: note: in expansion of macro 'this_cpu_read'
580 | #define __lockdep_enabled (debug_locks && !this_cpu_read(lockdep_recursion))
| ^~~~~~~~~~~~~
include/linux/lockdep.h:608:22: note: in expansion of macro '__lockdep_enabled'
608 | __lockdep_enabled && | ^~~~~~~~~~~~~~~~~
include/linux/seqlock.h:271:9: note: in expansion of macro 'lockdep_assert_preemption_disabled'
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for DRM_GEM_SHMEM_HELPER
Depends on HAS_IOMEM && DRM && MMU
Selected by
- DRM_SSD130X && HAS_IOMEM && DRM
vim +/pfn_to_virt +111 arch/riscv/include/asm/pgtable-64.h
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 53
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 54 #define pud_val(x) ((x).pud)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 55 #define __pud(x) ((pud_t) { (x) })
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 @56 #define PTRS_PER_PUD (PAGE_SIZE / sizeof(pud_t))
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 57
07037db5d479f9 Palmer Dabbelt 2017-07-10 58 /* Page Middle Directory entry */
07037db5d479f9 Palmer Dabbelt 2017-07-10 59 typedef struct {
07037db5d479f9 Palmer Dabbelt 2017-07-10 60 unsigned long pmd;
07037db5d479f9 Palmer Dabbelt 2017-07-10 61 } pmd_t;
07037db5d479f9 Palmer Dabbelt 2017-07-10 62
07037db5d479f9 Palmer Dabbelt 2017-07-10 63 #define pmd_val(x) ((x).pmd)
07037db5d479f9 Palmer Dabbelt 2017-07-10 64 #define __pmd(x) ((pmd_t) { (x) })
07037db5d479f9 Palmer Dabbelt 2017-07-10 65
07037db5d479f9 Palmer Dabbelt 2017-07-10 66 #define PTRS_PER_PMD (PAGE_SIZE / sizeof(pmd_t))
07037db5d479f9 Palmer Dabbelt 2017-07-10 67
07037db5d479f9 Palmer Dabbelt 2017-07-10 68 static inline int pud_present(pud_t pud)
07037db5d479f9 Palmer Dabbelt 2017-07-10 69 {
07037db5d479f9 Palmer Dabbelt 2017-07-10 70 return (pud_val(pud) & _PAGE_PRESENT);
07037db5d479f9 Palmer Dabbelt 2017-07-10 71 }
07037db5d479f9 Palmer Dabbelt 2017-07-10 72
07037db5d479f9 Palmer Dabbelt 2017-07-10 73 static inline int pud_none(pud_t pud)
07037db5d479f9 Palmer Dabbelt 2017-07-10 74 {
07037db5d479f9 Palmer Dabbelt 2017-07-10 75 return (pud_val(pud) == 0);
07037db5d479f9 Palmer Dabbelt 2017-07-10 76 }
07037db5d479f9 Palmer Dabbelt 2017-07-10 77
07037db5d479f9 Palmer Dabbelt 2017-07-10 78 static inline int pud_bad(pud_t pud)
07037db5d479f9 Palmer Dabbelt 2017-07-10 79 {
07037db5d479f9 Palmer Dabbelt 2017-07-10 80 return !pud_present(pud);
07037db5d479f9 Palmer Dabbelt 2017-07-10 81 }
07037db5d479f9 Palmer Dabbelt 2017-07-10 82
af6513ead0462c Steven Price 2020-02-03 83 #define pud_leaf pud_leaf
af6513ead0462c Steven Price 2020-02-03 84 static inline int pud_leaf(pud_t pud)
af6513ead0462c Steven Price 2020-02-03 85 {
f5397c3ee0a3e2 Nanyong Sun 2021-04-30 86 return pud_present(pud) && (pud_val(pud) & _PAGE_LEAF);
af6513ead0462c Steven Price 2020-02-03 87 }
af6513ead0462c Steven Price 2020-02-03 88
07037db5d479f9 Palmer Dabbelt 2017-07-10 89 static inline void set_pud(pud_t *pudp, pud_t pud)
07037db5d479f9 Palmer Dabbelt 2017-07-10 90 {
07037db5d479f9 Palmer Dabbelt 2017-07-10 91 *pudp = pud;
07037db5d479f9 Palmer Dabbelt 2017-07-10 92 }
07037db5d479f9 Palmer Dabbelt 2017-07-10 93
07037db5d479f9 Palmer Dabbelt 2017-07-10 94 static inline void pud_clear(pud_t *pudp)
07037db5d479f9 Palmer Dabbelt 2017-07-10 95 {
07037db5d479f9 Palmer Dabbelt 2017-07-10 96 set_pud(pudp, __pud(0));
07037db5d479f9 Palmer Dabbelt 2017-07-10 97 }
07037db5d479f9 Palmer Dabbelt 2017-07-10 98
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 @99 static inline pud_t pfn_pud(unsigned long pfn, pgprot_t prot)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 100 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 101 return __pud((pfn << _PAGE_PFN_SHIFT) | pgprot_val(prot));
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 102 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 103
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 104 static inline unsigned long _pud_pfn(pud_t pud)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 105 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 106 return pud_val(pud) >> _PAGE_PFN_SHIFT;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 107 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 108
9cf6fa24584431 Aneesh Kumar K.V 2021-07-07 109 static inline pmd_t *pud_pgtable(pud_t pud)
07037db5d479f9 Palmer Dabbelt 2017-07-10 110 {
9cf6fa24584431 Aneesh Kumar K.V 2021-07-07 @111 return (pmd_t *)pfn_to_virt(pud_val(pud) >> _PAGE_PFN_SHIFT);
07037db5d479f9 Palmer Dabbelt 2017-07-10 112 }
07037db5d479f9 Palmer Dabbelt 2017-07-10 113
8ad8b72721d0f0 Nick Hu 2020-01-06 114 static inline struct page *pud_page(pud_t pud)
8ad8b72721d0f0 Nick Hu 2020-01-06 115 {
8ad8b72721d0f0 Nick Hu 2020-01-06 @116 return pfn_to_page(pud_val(pud) >> _PAGE_PFN_SHIFT);
8ad8b72721d0f0 Nick Hu 2020-01-06 117 }
8ad8b72721d0f0 Nick Hu 2020-01-06 118
d10efa21a93748 Qinglin Pan 2022-01-27 119 #define mm_p4d_folded mm_p4d_folded
d10efa21a93748 Qinglin Pan 2022-01-27 120 static inline bool mm_p4d_folded(struct mm_struct *mm)
d10efa21a93748 Qinglin Pan 2022-01-27 121 {
d10efa21a93748 Qinglin Pan 2022-01-27 122 if (pgtable_l5_enabled)
d10efa21a93748 Qinglin Pan 2022-01-27 123 return false;
d10efa21a93748 Qinglin Pan 2022-01-27 124
d10efa21a93748 Qinglin Pan 2022-01-27 125 return true;
d10efa21a93748 Qinglin Pan 2022-01-27 126 }
d10efa21a93748 Qinglin Pan 2022-01-27 127
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 128 #define mm_pud_folded mm_pud_folded
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 129 static inline bool mm_pud_folded(struct mm_struct *mm)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 130 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 131 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 132 return false;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 133
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 134 return true;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 135 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 136
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 137 #define pmd_index(addr) (((addr) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 138
07037db5d479f9 Palmer Dabbelt 2017-07-10 139 static inline pmd_t pfn_pmd(unsigned long pfn, pgprot_t prot)
07037db5d479f9 Palmer Dabbelt 2017-07-10 140 {
07037db5d479f9 Palmer Dabbelt 2017-07-10 141 return __pmd((pfn << _PAGE_PFN_SHIFT) | pgprot_val(prot));
07037db5d479f9 Palmer Dabbelt 2017-07-10 142 }
07037db5d479f9 Palmer Dabbelt 2017-07-10 143
671f9a3e2e24cd Anup Patel 2019-06-28 144 static inline unsigned long _pmd_pfn(pmd_t pmd)
671f9a3e2e24cd Anup Patel 2019-06-28 145 {
671f9a3e2e24cd Anup Patel 2019-06-28 146 return pmd_val(pmd) >> _PAGE_PFN_SHIFT;
671f9a3e2e24cd Anup Patel 2019-06-28 147 }
671f9a3e2e24cd Anup Patel 2019-06-28 148
9eb4fcff220790 Nanyong Sun 2021-06-17 149 #define mk_pmd(page, prot) pfn_pmd(page_to_pfn(page), prot)
9eb4fcff220790 Nanyong Sun 2021-06-17 150
07037db5d479f9 Palmer Dabbelt 2017-07-10 151 #define pmd_ERROR(e) \
07037db5d479f9 Palmer Dabbelt 2017-07-10 152 pr_err("%s:%d: bad pmd %016lx.\n", __FILE__, __LINE__, pmd_val(e))
07037db5d479f9 Palmer Dabbelt 2017-07-10 153
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 154 #define pud_ERROR(e) \
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 155 pr_err("%s:%d: bad pud %016lx.\n", __FILE__, __LINE__, pud_val(e))
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 156
d10efa21a93748 Qinglin Pan 2022-01-27 157 #define p4d_ERROR(e) \
d10efa21a93748 Qinglin Pan 2022-01-27 158 pr_err("%s:%d: bad p4d %016lx.\n", __FILE__, __LINE__, p4d_val(e))
d10efa21a93748 Qinglin Pan 2022-01-27 159
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 160 static inline void set_p4d(p4d_t *p4dp, p4d_t p4d)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 161 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 162 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 163 *p4dp = p4d;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 164 else
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 165 set_pud((pud_t *)p4dp, (pud_t){ p4d_val(p4d) });
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 166 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 167
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 168 static inline int p4d_none(p4d_t p4d)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 169 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 170 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 171 return (p4d_val(p4d) == 0);
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 172
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 173 return 0;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 174 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 175
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 176 static inline int p4d_present(p4d_t p4d)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 177 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 178 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 179 return (p4d_val(p4d) & _PAGE_PRESENT);
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 180
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 181 return 1;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 182 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 183
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 184 static inline int p4d_bad(p4d_t p4d)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 185 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 186 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 187 return !p4d_present(p4d);
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 188
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 189 return 0;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 190 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 191
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 192 static inline void p4d_clear(p4d_t *p4d)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 193 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 194 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 195 set_p4d(p4d, __p4d(0));
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 196 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 197
d10efa21a93748 Qinglin Pan 2022-01-27 198 static inline p4d_t pfn_p4d(unsigned long pfn, pgprot_t prot)
d10efa21a93748 Qinglin Pan 2022-01-27 199 {
d10efa21a93748 Qinglin Pan 2022-01-27 200 return __p4d((pfn << _PAGE_PFN_SHIFT) | pgprot_val(prot));
d10efa21a93748 Qinglin Pan 2022-01-27 201 }
d10efa21a93748 Qinglin Pan 2022-01-27 202
d10efa21a93748 Qinglin Pan 2022-01-27 203 static inline unsigned long _p4d_pfn(p4d_t p4d)
d10efa21a93748 Qinglin Pan 2022-01-27 204 {
d10efa21a93748 Qinglin Pan 2022-01-27 205 return p4d_val(p4d) >> _PAGE_PFN_SHIFT;
d10efa21a93748 Qinglin Pan 2022-01-27 206 }
d10efa21a93748 Qinglin Pan 2022-01-27 207
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 208 static inline pud_t *p4d_pgtable(p4d_t p4d)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 209 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 210 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 211 return (pud_t *)pfn_to_virt(p4d_val(p4d) >> _PAGE_PFN_SHIFT);
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 212
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 213 return (pud_t *)pud_pgtable((pud_t) { p4d_val(p4d) });
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 214 }
d10efa21a93748 Qinglin Pan 2022-01-27 215 #define p4d_page_vaddr(p4d) ((unsigned long)p4d_pgtable(p4d))
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 216
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 217 static inline struct page *p4d_page(p4d_t p4d)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 218 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 219 return pfn_to_page(p4d_val(p4d) >> _PAGE_PFN_SHIFT);
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 220 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 221
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 222 #define pud_index(addr) (((addr) >> PUD_SHIFT) & (PTRS_PER_PUD - 1))
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 223
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 224 #define pud_offset pud_offset
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 225 static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 226 {
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 227 if (pgtable_l4_enabled)
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 228 return p4d_pgtable(*p4d) + pud_index(address);
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 229
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 230 return (pud_t *)p4d;
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 231 }
e8a62cc26ddf53 Alexandre Ghiti 2021-12-06 232
d10efa21a93748 Qinglin Pan 2022-01-27 @233 static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
d10efa21a93748 Qinglin Pan 2022-01-27 234 {
d10efa21a93748 Qinglin Pan 2022-01-27 235 if (pgtable_l5_enabled)
d10efa21a93748 Qinglin Pan 2022-01-27 236 *pgdp = pgd;
d10efa21a93748 Qinglin Pan 2022-01-27 237 else
d10efa21a93748 Qinglin Pan 2022-01-27 238 set_p4d((p4d_t *)pgdp, (p4d_t){ pgd_val(pgd) });
d10efa21a93748 Qinglin Pan 2022-01-27 239 }
d10efa21a93748 Qinglin Pan 2022-01-27 240
:::::: The code at line 111 was first introduced by commit
:::::: 9cf6fa2458443118b84090aa1bf7a3630b5940e8 mm: rename pud_page_vaddr to pud_pgtable and make it return pmd_t *
:::::: TO: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
--
0-DAY CI Kernel Test Service
https://01.org/lkp