All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: [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'
Date: Fri, 3 Jun 2022 01:37:56 +0800	[thread overview]
Message-ID: <202206030130.THircVJ2-lkp@intel.com> (raw)

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@intel.com/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@intel.com>

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@linux.ibm.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

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

                 reply	other threads:[~2022-06-02 17:39 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202206030130.THircVJ2-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.