Kernel
Threads by month
- ----- 2025 -----
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
February 2025
- 55 participants
- 304 discussions

[openeuler:OLK-5.10 2740/2740] fs/afs/vl_alias.o: warning: objtool: afs_compare_volume_slists()+0x21c: unreachable instruction
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: e804018e3930644594e31fd711068f5d48ae05af
commit: a8cd7bb0c2528d3afe29db0be10841671df41b5d [2740/2740] afs: Fix afs_server_list to be cleaned up with RCU
config: x86_64-buildonly-randconfig-001-20250216 (https://download.01.org/0day-ci/archive/20250216/202502161959.kat8z9E7-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502161959.kat8z9E7-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502161959.kat8z9E7-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/afs/vl_alias.o: warning: objtool: afs_compare_volume_slists()+0x21c: unreachable instruction
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 2740/2740] mm/page_alloc.c:3036:6: warning: no previous prototype for '__drain_all_pages'
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Vlastimil,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: e804018e3930644594e31fd711068f5d48ae05af
commit: e037ee4a8deaff7c579618c0aba1f066d6d14b11 [2740/2740] mm, page_alloc: disable pcplists during memory offline
config: x86_64-buildonly-randconfig-002-20250216 (https://download.01.org/0day-ci/archive/20250216/202502161355.thfOP2mL-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502161355.thfOP2mL-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502161355.thfOP2mL-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> mm/page_alloc.c:3036:6: warning: no previous prototype for '__drain_all_pages' [-Wmissing-prototypes]
3036 | void __drain_all_pages(struct zone *zone, bool force_all_cpus)
| ^~~~~~~~~~~~~~~~~
mm/page_alloc.c:3586:15: warning: no previous prototype for 'should_fail_alloc_page' [-Wmissing-prototypes]
3586 | noinline bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
| ^~~~~~~~~~~~~~~~~~~~~~
mm/page_alloc.c:6497:20: warning: no previous prototype for 'memmap_init' [-Wmissing-prototypes]
6497 | void __init __weak memmap_init(void)
| ^~~~~~~~~~~
mm/page_alloc.c:6535:23: warning: no previous prototype for 'arch_memmap_init' [-Wmissing-prototypes]
6535 | void __meminit __weak arch_memmap_init(unsigned long size, int nid,
| ^~~~~~~~~~~~~~~~
>> mm/page_alloc.c:6634:6: warning: no previous prototype for '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
6634 | void __zone_set_pageset_high_and_batch(struct zone *zone, unsigned long high,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/page_alloc.c: In function 'mem_init_print_info':
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&__init_begin[0] <= &_sinittext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&_sinittext[0] < &__init_end[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7915:9: note: in expansion of macro 'adj_init_size'
7915 | adj_init_size(__init_begin, __init_end, init_data_size,
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&_stext[0] <= &_sinittext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&_sinittext[0] < &_etext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7917:9: note: in expansion of macro 'adj_init_size'
7917 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&_sdata[0] <= &__init_begin[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&__init_begin[0] < &_edata[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7918:9: note: in expansion of macro 'adj_init_size'
7918 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: note: use '&_stext[0] <= &__start_rodata[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^~
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: warning: comparison between two arrays [-Warray-compare]
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:41: note: use '&__start_rodata[0] < &_etext[0]' to compare the addresses
7911 | if (start <= pos && pos < end && size > adj) \
| ^
mm/page_alloc.c:7919:9: note: in expansion of macro 'adj_init_size'
7919 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
| ^~~~~~~~~~~~~
mm/page_alloc.c:7911:27: warning: comparison between two arrays [-Warray-compare]
vim +/__drain_all_pages +3036 mm/page_alloc.c
3025
3026 /*
3027 * The implementation of drain_all_pages(), exposing an extra parameter to
3028 * drain on all cpus.
3029 *
3030 * drain_all_pages() is optimized to only execute on cpus where pcplists are
3031 * not empty. The check for non-emptiness can however race with a free to
3032 * pcplist that has not yet increased the pcp->count from 0 to 1. Callers
3033 * that need the guarantee that every CPU has drained can disable the
3034 * optimizing racy check.
3035 */
> 3036 void __drain_all_pages(struct zone *zone, bool force_all_cpus)
3037 {
3038 int cpu;
3039
3040 /*
3041 * Allocate in the BSS so we wont require allocation in
3042 * direct reclaim path for CONFIG_CPUMASK_OFFSTACK=y
3043 */
3044 static cpumask_t cpus_with_pcps;
3045
3046 /*
3047 * Make sure nobody triggers this path before mm_percpu_wq is fully
3048 * initialized.
3049 */
3050 if (WARN_ON_ONCE(!mm_percpu_wq))
3051 return;
3052
3053 /*
3054 * Do not drain if one is already in progress unless it's specific to
3055 * a zone. Such callers are primarily CMA and memory hotplug and need
3056 * the drain to be complete when the call returns.
3057 */
3058 if (unlikely(!mutex_trylock(&pcpu_drain_mutex))) {
3059 if (!zone)
3060 return;
3061 mutex_lock(&pcpu_drain_mutex);
3062 }
3063
3064 /*
3065 * We don't care about racing with CPU hotplug event
3066 * as offline notification will cause the notified
3067 * cpu to drain that CPU pcps and on_each_cpu_mask
3068 * disables preemption as part of its processing
3069 */
3070 for_each_online_cpu(cpu) {
3071 struct per_cpu_pageset *pcp;
3072 struct zone *z;
3073 bool has_pcps = false;
3074
3075 if (force_all_cpus) {
3076 /*
3077 * The pcp.count check is racy, some callers need a
3078 * guarantee that no cpu is missed.
3079 */
3080 has_pcps = true;
3081 } else if (zone) {
3082 pcp = per_cpu_ptr(zone->pageset, cpu);
3083 if (pcp->pcp.count)
3084 has_pcps = true;
3085 } else {
3086 for_each_populated_zone(z) {
3087 pcp = per_cpu_ptr(z->pageset, cpu);
3088 if (pcp->pcp.count) {
3089 has_pcps = true;
3090 break;
3091 }
3092 }
3093 }
3094
3095 if (has_pcps)
3096 cpumask_set_cpu(cpu, &cpus_with_pcps);
3097 else
3098 cpumask_clear_cpu(cpu, &cpus_with_pcps);
3099 }
3100
3101 for_each_cpu(cpu, &cpus_with_pcps) {
3102 struct pcpu_drain *drain = per_cpu_ptr(&pcpu_drain, cpu);
3103
3104 drain->zone = zone;
3105 INIT_WORK(&drain->work, drain_local_pages_wq);
3106 queue_work_on(cpu, mm_percpu_wq, &drain->work);
3107 }
3108 for_each_cpu(cpu, &cpus_with_pcps)
3109 flush_work(&per_cpu_ptr(&pcpu_drain, cpu)->work);
3110
3111 mutex_unlock(&pcpu_drain_mutex);
3112 }
3113
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 1928/1928] kernel/sched/isolation.c:244:19: error: invalid storage class for function 'enhanced_isolcpus_setup'
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Xiongfeng,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 01e57e5fa297f937102f9b58ee7905f638b8450f
commit: 5f20541757730418065c3ae77dfdbcde3f523394 [1928/1928] blk-mq: avoid housekeeping CPUs scheduling a worker on a non-housekeeping CPU
config: loongarch-randconfig-r064-20250216 (https://download.01.org/0day-ci/archive/20250216/202502160734.p26JLJ7W-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160734.p26JLJ7W-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502160734.p26JLJ7W-lkp@intel.com/
All errors (new ones prefixed by >>):
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:54:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
54 | EXPORT_SYMBOL_GPL(housekeeping_any_cpu);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:39:5: note: previous definition of 'housekeeping_any_cpu' with type 'int(enum hk_type)'
39 | int housekeeping_any_cpu(enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:63:19: error: non-static declaration of 'housekeeping_cpumask' follows static declaration
63 | EXPORT_SYMBOL_GPL(housekeeping_cpumask);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:63:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
63 | EXPORT_SYMBOL_GPL(housekeeping_cpumask);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:56:23: note: previous definition of 'housekeeping_cpumask' with type 'const struct cpumask *(enum hk_type)'
56 | const struct cpumask *housekeeping_cpumask(enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:71:19: error: non-static declaration of 'housekeeping_affine' follows static declaration
71 | EXPORT_SYMBOL_GPL(housekeeping_affine);
| ^~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:71:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
71 | EXPORT_SYMBOL_GPL(housekeeping_affine);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:65:6: note: previous definition of 'housekeeping_affine' with type 'void(struct task_struct *, enum hk_type)'
65 | void housekeeping_affine(struct task_struct *t, enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:80:19: error: non-static declaration of 'housekeeping_test_cpu' follows static declaration
80 | EXPORT_SYMBOL_GPL(housekeeping_test_cpu);
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:80:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
80 | EXPORT_SYMBOL_GPL(housekeeping_test_cpu);
| ^~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:73:6: note: previous definition of 'housekeeping_test_cpu' with type 'bool(int, enum hk_type)' {aka '_Bool(int, enum hk_type)'}
73 | bool housekeeping_test_cpu(int cpu, enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:100:20: error: invalid storage class for function 'housekeeping_setup_type'
100 | static void __init housekeeping_setup_type(enum hk_type type,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:109:19: error: invalid storage class for function 'housekeeping_setup'
109 | static int __init housekeeping_setup(char *str, unsigned long flags)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:180:19: error: invalid storage class for function 'housekeeping_nohz_full_setup'
180 | static int __init housekeeping_nohz_full_setup(char *str)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:189:23: error: initializer element is not constant
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:189:1: note: in expansion of macro '__setup'
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~
kernel/sched/isolation.c:189:23: note: (near initialization for '__setup_housekeeping_nohz_full_setup.setup_func')
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:189:1: note: in expansion of macro '__setup'
189 | __setup("nohz_full=", housekeeping_nohz_full_setup);
| ^~~~~~~
kernel/sched/isolation.c:191:19: error: invalid storage class for function 'housekeeping_isolcpus_setup'
191 | static int __init housekeeping_isolcpus_setup(char *str)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:241:22: error: initializer element is not constant
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:241:1: note: in expansion of macro '__setup'
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~
kernel/sched/isolation.c:241:22: note: (near initialization for '__setup_housekeeping_isolcpus_setup.setup_func')
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:241:1: note: in expansion of macro '__setup'
241 | __setup("isolcpus=", housekeeping_isolcpus_setup);
| ^~~~~~~
>> kernel/sched/isolation.c:244:19: error: invalid storage class for function 'enhanced_isolcpus_setup'
244 | static int __init enhanced_isolcpus_setup(char *str)
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:249:30: error: initializer element is not constant
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:249:1: note: in expansion of macro '__setup'
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~
kernel/sched/isolation.c:249:30: note: (near initialization for '__setup_enhanced_isolcpus_setup.setup_func')
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/isolation.c:249:1: note: in expansion of macro '__setup'
249 | __setup("enhanced_isolcpus", enhanced_isolcpus_setup);
| ^~~~~~~
In file included from kernel/sched/build_utility.c:109:
kernel/sched/autogroup.c:7:28: error: section attribute cannot be specified for local variables
7 | unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:15:35: error: initializer element is not constant
15 | .data = &sysctl_sched_autogroup_enabled,
| ^
kernel/sched/autogroup.c:15:35: note: (near initialization for 'sched_autogroup_sysctls[0].data')
kernel/sched/autogroup.c:25:20: error: invalid storage class for function 'sched_autogroup_sysctl_init'
25 | static void __init sched_autogroup_sysctl_init(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:47:20: error: invalid storage class for function 'autogroup_destroy'
47 | static inline void autogroup_destroy(struct kref *kref)
| ^~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:60:20: error: invalid storage class for function 'autogroup_kref_put'
60 | static inline void autogroup_kref_put(struct autogroup *ag)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:65:33: error: invalid storage class for function 'autogroup_kref_get'
65 | static inline struct autogroup *autogroup_kref_get(struct autogroup *ag)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:71:33: error: invalid storage class for function 'autogroup_task_get'
71 | static inline struct autogroup *autogroup_task_get(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:85:33: error: invalid storage class for function 'autogroup_create'
85 | static inline struct autogroup *autogroup_create(void)
| ^~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:158:1: error: invalid storage class for function 'autogroup_move_group'
158 | autogroup_move_group(struct task_struct *p, struct autogroup *ag)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:202:15: error: non-static declaration of 'sched_autogroup_create_attach' follows static declaration
202 | EXPORT_SYMBOL(sched_autogroup_create_attach);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:86:41: note: in expansion of macro '_EXPORT_SYMBOL'
86 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
kernel/sched/autogroup.c:202:1: note: in expansion of macro 'EXPORT_SYMBOL'
202 | EXPORT_SYMBOL(sched_autogroup_create_attach);
| ^~~~~~~~~~~~~
kernel/sched/autogroup.c:193:6: note: previous definition of 'sched_autogroup_create_attach' with type 'void(struct task_struct *)'
193 | void sched_autogroup_create_attach(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:209:15: error: non-static declaration of 'sched_autogroup_detach' follows static declaration
209 | EXPORT_SYMBOL(sched_autogroup_detach);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:86:41: note: in expansion of macro '_EXPORT_SYMBOL'
86 | #define EXPORT_SYMBOL(sym) _EXPORT_SYMBOL(sym, "")
| ^~~~~~~~~~~~~~
kernel/sched/autogroup.c:209:1: note: in expansion of macro 'EXPORT_SYMBOL'
209 | EXPORT_SYMBOL(sched_autogroup_detach);
| ^~~~~~~~~~~~~
kernel/sched/autogroup.c:205:6: note: previous definition of 'sched_autogroup_detach' with type 'void(struct task_struct *)'
205 | void sched_autogroup_detach(struct task_struct *p)
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/sched/autogroup.c:221:19: error: invalid storage class for function 'setup_autogroup'
221 | static int __init setup_autogroup(char *str)
| ^~~~~~~~~~~~~~~
kernel/sched/autogroup.c:227:24: error: initializer element is not constant
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/autogroup.c:227:1: note: in expansion of macro '__setup'
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~
kernel/sched/autogroup.c:227:24: note: (near initialization for '__setup_setup_autogroup.setup_func')
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~~~~~~~~~
include/linux/init.h:343:46: note: in definition of macro '__setup_param'
343 | = { __setup_str_##unique_id, fn, early }
| ^~
kernel/sched/autogroup.c:227:1: note: in expansion of macro '__setup'
227 | __setup("noautogroup", setup_autogroup);
| ^~~~~~~
vim +/enhanced_isolcpus_setup +244 kernel/sched/isolation.c
242
243 bool enhanced_isolcpus;
> 244 static int __init enhanced_isolcpus_setup(char *str)
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6] BUILD REGRESSION 01e57e5fa297f937102f9b58ee7905f638b8450f
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: 01e57e5fa297f937102f9b58ee7905f638b8450f !15083 mm/vmalloc: combine all TLB flush operations of KASAN shadow virtual address into one operation
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-alldefconfig
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-allmodconfig
| |-- mm-dynamic_pool.c:warning:variable-ret-is-uninitialized-when-used-here
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-memcontrol.c:warning:no-previous-prototype-for-function-hisi_oom_recover
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_sysctl_handler
| |-- mm-share_pool.c:warning:Function-parameter-or-member-node_id-not-described-in-sp_area_alloc
| |-- mm-share_pool.c:warning:Function-parameter-or-member-spg_id-not-described-in-mg_sp_unshare
| |-- mm-share_pool.c:warning:duplicate-section-name-Return
| |-- mm-share_pool.c:warning:expecting-prototype-for-mp_sp_group_id_by_pid().-Prototype-was-for-mg_sp_group_id_by_pid()-instead
| |-- mm-share_pool.c:warning:variable-is_hugepage-set-but-not-used
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-allnoconfig
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-ARM64_ERRATUM_845719-when-selected-by-ARCH_MXC
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_KEY_PARSER-when-selected-by-PGP_PRELOAD
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_PRELOAD-when-selected-by-PGP_PRELOAD_PUBLIC_KEYS
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-RESCTRL_FS-when-selected-by-ARM64_MPAM
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-defconfig
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-001-20250215
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-002-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-003-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-004-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- arm64-randconfig-r121-20250216
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-allmodconfig
| |-- include-trace-stages-init.h:warning:str__bonding__trace_system_name-defined-but-not-used
| |-- include-trace-stages-init.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-allnoconfig
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_KEY_PARSER-when-selected-by-PGP_PRELOAD
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_PRELOAD-when-selected-by-PGP_PRELOAD_PUBLIC_KEYS
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-allyesconfig
| |-- include-trace-stages-init.h:warning:str__bonding__trace_system_name-defined-but-not-used
| |-- include-trace-stages-init.h:warning:str__fs__trace_system_name-defined-but-not-used
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-001-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-002-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-r062-20250216
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- loongarch-randconfig-r064-20250216
| |-- include-linux-compiler-gcc.h:warning:alias-attribute-ignored
| |-- include-linux-syscalls.h:error:implicit-declaration-of-function-__do_sys_membarrier
| |-- include-linux-syscalls.h:error:invalid-storage-class-for-function-__do_sys_membarrier
| |-- include-linux-syscalls.h:error:static-declaration-of-__se_sys_membarrier-follows-non-static-declaration
| |-- include-linux-syscalls.h:warning:__se_sys_membarrier-defined-but-not-used
| |-- kernel-sched-autogroup.c:error:initializer-element-is-not-constant
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_create
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_destroy
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_kref_get
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_kref_put
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_move_group
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-autogroup_task_get
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-sched_autogroup_sysctl_init
| |-- kernel-sched-autogroup.c:error:invalid-storage-class-for-function-setup_autogroup
| |-- kernel-sched-autogroup.c:error:non-static-declaration-of-sched_autogroup_create_attach-follows-static-declaration
| |-- kernel-sched-autogroup.c:error:non-static-declaration-of-sched_autogroup_detach-follows-static-declaration
| |-- kernel-sched-autogroup.c:error:section-attribute-cannot-be-specified-for-local-variables
| |-- kernel-sched-autogroup.c:warning:autogroup_free-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:autogroup_init-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:autogroup_path-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:proc_sched_autogroup_set_nice-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:proc_sched_autogroup_show_task-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:sched_autogroup_exit-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:sched_autogroup_exit_task-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:sched_autogroup_fork-defined-but-not-used
| |-- kernel-sched-autogroup.c:warning:task_wants_autogroup-defined-but-not-used
| |-- kernel-sched-isolation.c:error:extern-declaration-of-housekeeping_overridden-follows-declaration-with-no-linkage
| |-- kernel-sched-isolation.c:error:initializer-element-is-not-constant
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_isolcpus_setup
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_nohz_full_setup
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_setup
| |-- kernel-sched-isolation.c:error:invalid-storage-class-for-function-housekeeping_setup_type
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_affine-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_any_cpu-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_cpumask-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_enabled-follows-static-declaration
| |-- kernel-sched-isolation.c:error:non-static-declaration-of-housekeeping_test_cpu-follows-static-declaration
| |-- kernel-sched-isolation.c:warning:housekeeping_init-defined-but-not-used
| |-- kernel-sched-psi.c:error:initializer-element-is-not-constant
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-get_stat_names
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_cpu_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_cpu_show
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_cpu_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_fop_poll
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_fop_release
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_io_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_io_show
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_io_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_memory_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_memory_show
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_memory_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_proc_init
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_stat_open
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-psi_write
| |-- kernel-sched-psi.c:error:invalid-storage-class-for-function-system_psi_stat_show
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-allnoconfig
| |-- include-linux-sched-signal.h:linux-kabi.h-is-included-more-than-once.
| |-- include-net-tcp.h:linux-kabi.h-is-included-more-than-once.
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_KEY_PARSER-when-selected-by-PGP_PRELOAD
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-PGP_PRELOAD-when-selected-by-PGP_PRELOAD_PUBLIC_KEYS
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-allyesconfig
| |-- mm-dynamic_pool.c:warning:variable-ret-is-uninitialized-when-used-here
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_limit_mbytes_sysctl_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_enable_handler
| |-- mm-page_cache_limit.c:warning:no-previous-prototype-for-function-cache_reclaim_sysctl_handler
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-001-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-memcontrol.c:warning:mem_cgroup_check_swap_for_v1-defined-but-not-used
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-002-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-003-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-004-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-005-20250215
| |-- mm-madvise.c:warning:no-previous-prototype-for-function-force_swapin_vma
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
|-- x86_64-buildonly-randconfig-006-20250215
| |-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
| |-- mm-memblock.c:warning:no-previous-prototype-for-function-memblock_alloc_range_nid_flags
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
| |-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
| `-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
`-- x86_64-defconfig
|-- mm-madvise.c:warning:no-previous-prototype-for-force_swapin_vma
|-- mm-memblock.c:warning:expecting-prototype-for-memblock_alloc_internal().-Prototype-was-for-__memblock_alloc_internal()-instead
|-- mm-memblock.c:warning:no-previous-prototype-for-memblock_alloc_range_nid_flags
|-- mm-oom_kill.c:warning:Function-parameter-or-member-oc-not-described-in-oom_next_task
|-- mm-oom_kill.c:warning:Function-parameter-or-member-points-not-described-in-oom_next_task
|-- mm-oom_kill.c:warning:Function-parameter-or-member-task-not-described-in-oom_next_task
|-- mm-oom_kill.c:warning:expecting-prototype-for-We-choose-the-task-in-low().-Prototype-was-for-oom_next_task()-instead
`-- mm-vmalloc.c:warning:Function-parameter-or-member-pgoff-not-described-in-remap_vmalloc_hugepage_range_partial
elapsed time: 921m
configs tested: 21
configs skipped: 115
tested configs:
arm64 alldefconfig gcc-14.2.0
arm64 allmodconfig clang-18
arm64 allnoconfig gcc-14.2.0
arm64 defconfig gcc-14.2.0
arm64 randconfig-001-20250215 clang-21
arm64 randconfig-002-20250215 gcc-14.2.0
arm64 randconfig-003-20250215 clang-17
arm64 randconfig-004-20250215 gcc-14.2.0
loongarch allmodconfig gcc-14.2.0
loongarch allnoconfig gcc-14.2.0
loongarch randconfig-001-20250215 gcc-14.2.0
loongarch randconfig-002-20250215 gcc-14.2.0
x86_64 allnoconfig clang-19
x86_64 allyesconfig clang-19
x86_64 buildonly-randconfig-001-20250215 gcc-12
x86_64 buildonly-randconfig-002-20250215 clang-19
x86_64 buildonly-randconfig-003-20250215 gcc-12
x86_64 buildonly-randconfig-004-20250215 clang-19
x86_64 buildonly-randconfig-005-20250215 clang-19
x86_64 buildonly-randconfig-006-20250215 clang-19
x86_64 defconfig gcc-11
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 1928/1928] kernel/sched/psi.c:1763:12: error: invalid storage class for function 'psi_io_show'
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Lu,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 01e57e5fa297f937102f9b58ee7905f638b8450f
commit: 654944510822988390470cbc5b6f914c19dd9b88 [1928/1928] sched/psi: add cpu fine grained stall tracking in pressure.stat
config: loongarch-randconfig-r064-20250216 (https://download.01.org/0day-ci/archive/20250216/202502160550.E90uGy3T-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160550.E90uGy3T-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502160550.E90uGy3T-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
kernel/sched/psi.c:447:13: error: invalid storage class for function 'psi_stat_flags_change'
447 | static void psi_stat_flags_change(struct task_struct *task, int *stat_set,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:469:13: error: invalid storage class for function 'get_recent_stat_times'
469 | static void get_recent_stat_times(struct psi_group *group, int cpu,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:516:20: error: invalid storage class for function 'update_throttle_type'
516 | static inline void update_throttle_type(struct task_struct *task, int cpu,
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:520:13: error: invalid storage class for function 'collect_percpu_times'
520 | static void collect_percpu_times(struct psi_group *group,
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:588:13: error: invalid storage class for function 'window_reset'
588 | static void window_reset(struct psi_window *win, u64 now, u64 value,
| ^~~~~~~~~~~~
kernel/sched/psi.c:607:12: error: invalid storage class for function 'window_update'
607 | static u64 window_update(struct psi_window *win, u64 now, u64 value)
| ^~~~~~~~~~~~~
kernel/sched/psi.c:633:12: error: invalid storage class for function 'update_triggers'
633 | static u64 update_triggers(struct psi_group *group, u64 now, bool *update_total,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:706:12: error: invalid storage class for function 'update_averages'
706 | static u64 update_averages(struct psi_group *group, u64 now)
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:771:13: error: invalid storage class for function 'psi_avgs_work'
771 | static void psi_avgs_work(struct work_struct *work)
| ^~~~~~~~~~~~~
kernel/sched/psi.c:807:13: error: invalid storage class for function 'init_rtpoll_triggers'
807 | static void init_rtpoll_triggers(struct psi_group *group, u64 now)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:820:13: error: invalid storage class for function 'psi_schedule_rtpoll_work'
820 | static void psi_schedule_rtpoll_work(struct psi_group *group, unsigned long delay,
| ^~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:847:13: error: invalid storage class for function 'psi_rtpoll_work'
847 | static void psi_rtpoll_work(struct psi_group *group)
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:931:12: error: invalid storage class for function 'psi_rtpoll_worker'
931 | static int psi_rtpoll_worker(void *data)
| ^~~~~~~~~~~~~~~~~
kernel/sched/psi.c:949:13: error: invalid storage class for function 'poll_timer_fn'
949 | static void poll_timer_fn(struct timer_list *t)
| ^~~~~~~~~~~~~
kernel/sched/psi.c:957:13: error: invalid storage class for function 'record_times'
957 | static void record_times(struct psi_group_cpu *groupc, u64 now)
| ^~~~~~~~~~~~
kernel/sched/psi.c:990:13: error: invalid storage class for function 'psi_group_change'
990 | static void psi_group_change(struct psi_group *group, int cpu,
| ^~~~~~~~~~~~~~~~
kernel/sched/psi.c:1106:13: error: invalid storage class for function 'task_is_in_psi_v1'
1106 | static bool task_is_in_psi_v1(void)
| ^~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1112:33: error: invalid storage class for function 'task_psi_group'
1112 | static inline struct psi_group *task_psi_group(struct task_struct *task)
| ^~~~~~~~~~~~~~
kernel/sched/psi.c: In function 'task_psi_group':
kernel/sched/psi.c:1120:52: error: 'cpuacct_cgrp_id' undeclared (first use in this function); did you mean 'cpuset_cgrp_id'?
1120 | cgroup = task_cgroup(task, cpuacct_cgrp_id);
| ^~~~~~~~~~~~~~~
| cpuset_cgrp_id
kernel/sched/psi.c:1120:52: note: each undeclared identifier is reported only once for each function it appears in
kernel/sched/psi.c: In function 'record_stat_times':
kernel/sched/psi.c:1130:13: error: invalid storage class for function 'psi_flags_change'
1130 | static void psi_flags_change(struct task_struct *task, int clear, int set)
| ^~~~~~~~~~~~~~~~
In file included from include/linux/linkage.h:7,
from include/linux/kernel.h:17,
from include/linux/cpumask.h:10,
from include/linux/smp.h:13,
from include/linux/sched/clock.h:5,
from kernel/sched/build_utility.c:12:
kernel/sched/psi.c:1338:19: error: non-static declaration of 'psi_memstall_enter' follows static declaration
1338 | EXPORT_SYMBOL_GPL(psi_memstall_enter);
| ^~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/psi.c:1338:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
1338 | EXPORT_SYMBOL_GPL(psi_memstall_enter);
| ^~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1306:6: note: previous definition of 'psi_memstall_enter' with type 'void(long unsigned int *)'
1306 | void psi_memstall_enter(unsigned long *flags)
| ^~~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1370:19: error: non-static declaration of 'psi_memstall_leave' follows static declaration
1370 | EXPORT_SYMBOL_GPL(psi_memstall_leave);
| ^~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/psi.c:1370:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
1370 | EXPORT_SYMBOL_GPL(psi_memstall_leave);
| ^~~~~~~~~~~~~~~~~
kernel/sched/psi.c:1346:6: note: previous definition of 'psi_memstall_leave' with type 'void(long unsigned int *)'
1346 | void psi_memstall_leave(unsigned long *flags)
| ^~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1763:12: error: invalid storage class for function 'psi_io_show'
1763 | static int psi_io_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~
>> kernel/sched/psi.c:1768:12: error: invalid storage class for function 'psi_memory_show'
1768 | static int psi_memory_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1773:12: error: invalid storage class for function 'psi_cpu_show'
1773 | static int psi_cpu_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1778:12: error: invalid storage class for function 'psi_io_open'
1778 | static int psi_io_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~
>> kernel/sched/psi.c:1783:12: error: invalid storage class for function 'psi_memory_open'
1783 | static int psi_memory_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1788:12: error: invalid storage class for function 'psi_cpu_open'
1788 | static int psi_cpu_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1793:16: error: invalid storage class for function 'psi_write'
1793 | static ssize_t psi_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~
>> kernel/sched/psi.c:1836:16: error: invalid storage class for function 'psi_io_write'
1836 | static ssize_t psi_io_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1842:16: error: invalid storage class for function 'psi_memory_write'
1842 | static ssize_t psi_memory_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1848:16: error: invalid storage class for function 'psi_cpu_write'
1848 | static ssize_t psi_cpu_write(struct file *file, const char __user *user_buf,
| ^~~~~~~~~~~~~
>> kernel/sched/psi.c:1854:17: error: invalid storage class for function 'psi_fop_poll'
1854 | static __poll_t psi_fop_poll(struct file *file, poll_table *wait)
| ^~~~~~~~~~~~
>> kernel/sched/psi.c:1861:12: error: invalid storage class for function 'psi_fop_release'
1861 | static int psi_fop_release(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1870:27: error: initializer element is not constant
1870 | .proc_open = psi_io_open,
| ^~~~~~~~~~~
kernel/sched/psi.c:1870:27: note: (near initialization for 'psi_io_proc_ops.proc_open')
kernel/sched/psi.c:1873:27: error: initializer element is not constant
1873 | .proc_write = psi_io_write,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1873:27: note: (near initialization for 'psi_io_proc_ops.proc_write')
kernel/sched/psi.c:1874:27: error: initializer element is not constant
1874 | .proc_poll = psi_fop_poll,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1874:27: note: (near initialization for 'psi_io_proc_ops.proc_poll')
kernel/sched/psi.c:1875:27: error: initializer element is not constant
1875 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1875:27: note: (near initialization for 'psi_io_proc_ops.proc_release')
kernel/sched/psi.c:1879:27: error: initializer element is not constant
1879 | .proc_open = psi_memory_open,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1879:27: note: (near initialization for 'psi_memory_proc_ops.proc_open')
kernel/sched/psi.c:1882:27: error: initializer element is not constant
1882 | .proc_write = psi_memory_write,
| ^~~~~~~~~~~~~~~~
kernel/sched/psi.c:1882:27: note: (near initialization for 'psi_memory_proc_ops.proc_write')
kernel/sched/psi.c:1883:27: error: initializer element is not constant
1883 | .proc_poll = psi_fop_poll,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1883:27: note: (near initialization for 'psi_memory_proc_ops.proc_poll')
kernel/sched/psi.c:1884:27: error: initializer element is not constant
1884 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1884:27: note: (near initialization for 'psi_memory_proc_ops.proc_release')
kernel/sched/psi.c:1888:27: error: initializer element is not constant
1888 | .proc_open = psi_cpu_open,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1888:27: note: (near initialization for 'psi_cpu_proc_ops.proc_open')
kernel/sched/psi.c:1891:27: error: initializer element is not constant
1891 | .proc_write = psi_cpu_write,
| ^~~~~~~~~~~~~
kernel/sched/psi.c:1891:27: note: (near initialization for 'psi_cpu_proc_ops.proc_write')
kernel/sched/psi.c:1892:27: error: initializer element is not constant
1892 | .proc_poll = psi_fop_poll,
| ^~~~~~~~~~~~
kernel/sched/psi.c:1892:27: note: (near initialization for 'psi_cpu_proc_ops.proc_poll')
kernel/sched/psi.c:1893:27: error: initializer element is not constant
1893 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1893:27: note: (near initialization for 'psi_cpu_proc_ops.proc_release')
>> kernel/sched/psi.c:1907:13: error: invalid storage class for function 'get_stat_names'
1907 | static void get_stat_names(struct seq_file *m, int i, bool is_full)
| ^~~~~~~~~~~~~~
>> kernel/sched/psi.c:1953:12: error: invalid storage class for function 'system_psi_stat_show'
1953 | static int system_psi_stat_show(struct seq_file *m, void *v)
| ^~~~~~~~~~~~~~~~~~~~
>> kernel/sched/psi.c:1958:12: error: invalid storage class for function 'psi_stat_open'
1958 | static int psi_stat_open(struct inode *inode, struct file *file)
| ^~~~~~~~~~~~~
kernel/sched/psi.c:1964:27: error: initializer element is not constant
1964 | .proc_open = psi_stat_open,
| ^~~~~~~~~~~~~
kernel/sched/psi.c:1964:27: note: (near initialization for 'psi_stat_proc_ops.proc_open')
kernel/sched/psi.c:1967:27: error: initializer element is not constant
1967 | .proc_release = psi_fop_release,
| ^~~~~~~~~~~~~~~
kernel/sched/psi.c:1967:27: note: (near initialization for 'psi_stat_proc_ops.proc_release')
>> kernel/sched/psi.c:1998:19: error: invalid storage class for function 'psi_proc_init'
1998 | static int __init psi_proc_init(void)
| ^~~~~~~~~~~~~
In file included from include/linux/printk.h:6,
from include/linux/kernel.h:30:
kernel/sched/psi.c:2014:13: error: initializer element is not constant
2014 | module_init(psi_proc_init);
| ^~~~~~~~~~~~~
include/linux/init.h:270:55: note: in definition of macro '____define_initcall'
270 | __attribute__((__section__(__sec))) = fn;
| ^~
include/linux/init.h:280:9: note: in expansion of macro '__unique_initcall'
280 | __unique_initcall(fn, id, __sec, __initcall_id(fn))
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:282:35: note: in expansion of macro '___define_initcall'
282 | #define __define_initcall(fn, id) ___define_initcall(fn, id, .initcall##id)
| ^~~~~~~~~~~~~~~~~~
include/linux/init.h:311:41: note: in expansion of macro '__define_initcall'
311 | #define device_initcall(fn) __define_initcall(fn, 6)
| ^~~~~~~~~~~~~~~~~
include/linux/init.h:316:24: note: in expansion of macro 'device_initcall'
316 | #define __initcall(fn) device_initcall(fn)
| ^~~~~~~~~~~~~~~
include/linux/module.h:88:25: note: in expansion of macro '__initcall'
88 | #define module_init(x) __initcall(x);
| ^~~~~~~~~~
kernel/sched/psi.c:2014:1: note: in expansion of macro 'module_init'
2014 | module_init(psi_proc_init);
| ^~~~~~~~~~~
In file included from kernel/sched/build_utility.c:101:
kernel/sched/membarrier.c:165:13: error: invalid storage class for function 'ipi_mb'
165 | static void ipi_mb(void *info)
| ^~~~~~
kernel/sched/membarrier.c:170:13: error: invalid storage class for function 'ipi_sync_core'
170 | static void ipi_sync_core(void *info)
| ^~~~~~~~~~~~~
kernel/sched/membarrier.c:187:13: error: invalid storage class for function 'ipi_rseq'
187 | static void ipi_rseq(void *info)
| ^~~~~~~~
kernel/sched/membarrier.c:200:13: error: invalid storage class for function 'ipi_sync_rq_state'
200 | static void ipi_sync_rq_state(void *info)
| ^~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:245:12: error: invalid storage class for function 'membarrier_global_expedited'
245 | static int membarrier_global_expedited(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:310:12: error: invalid storage class for function 'membarrier_private_expedited'
310 | static int membarrier_private_expedited(int flags, int cpu_id)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:426:12: error: invalid storage class for function 'sync_runqueues_membarrier_state'
426 | static int sync_runqueues_membarrier_state(struct mm_struct *mm)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:483:12: error: invalid storage class for function 'membarrier_register_global_expedited'
483 | static int membarrier_register_global_expedited(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:502:12: error: invalid storage class for function 'membarrier_register_private_expedited'
502 | static int membarrier_register_private_expedited(int flags)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/membarrier.c:544:12: error: invalid storage class for function 'membarrier_get_registrations'
544 | static int membarrier_get_registrations(void)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/compiler_types.h:153,
from <command-line>:
>> include/linux/compiler-gcc.h:132:33: warning: 'alias' attribute ignored [-Wattributes]
132 | #define __diag(s) _Pragma(__diag_str(GCC diagnostic s))
| ^~~~~~~
include/linux/compiler-gcc.h:135:33: note: in expansion of macro '__diag'
135 | #define __diag_GCC_8(s) __diag(s)
| ^~~~~~
include/linux/compiler-gcc.h:123:9: note: in expansion of macro '__diag_GCC_8'
123 | __diag_GCC_ ## version(__diag_GCC_ ## severity s)
| ^~~~~~~~~~~
include/linux/compiler_types.h:444:9: note: in expansion of macro '__diag_GCC'
444 | __diag_ ## compiler(version, ignore, option)
| ^~~~~~~
include/linux/syscalls.h:242:9: note: in expansion of macro '__diag_ignore'
242 | __diag_ignore(GCC, 8, "-Wattribute-alias", \
| ^~~~~~~~~~~~~
include/linux/syscalls.h:230:9: note: in expansion of macro '__SYSCALL_DEFINEx'
230 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
In file included from include/linux/syscalls_api.h:1,
from kernel/sched/sched.h:61,
from kernel/sched/build_utility.c:53:
>> include/linux/syscalls.h:247:28: error: invalid storage class for function '__do_sys_membarrier'
247 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:230:9: note: in expansion of macro '__SYSCALL_DEFINEx'
230 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
>> include/linux/syscalls.h:249:25: error: static declaration of '__se_sys_membarrier' follows non-static declaration
249 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \
| ^~~~~~~~
include/linux/syscalls.h:230:9: note: in expansion of macro '__SYSCALL_DEFINEx'
230 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
include/linux/syscalls.h:248:25: note: previous declaration of '__se_sys_membarrier' with type 'long int(long int, long int, long int)'
248 | asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)); \
| ^~~~~~~~
include/linux/syscalls.h:230:9: note: in expansion of macro '__SYSCALL_DEFINEx'
230 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c: In function '__se_sys_membarrier':
include/linux/syscalls.h:251:28: error: implicit declaration of function '__do_sys_membarrier'; did you mean '__se_sys_membarrier'? [-Wimplicit-function-declaration]
251 | long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
| ^~~~~~~~
include/linux/syscalls.h:230:9: note: in expansion of macro '__SYSCALL_DEFINEx'
230 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c: In function 'record_stat_times':
include/linux/syscalls.h:257:28: error: invalid storage class for function '__do_sys_membarrier'
257 | static inline long __do_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))
| ^~~~~~~~
include/linux/syscalls.h:230:9: note: in expansion of macro '__SYSCALL_DEFINEx'
230 | __SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/syscalls.h:221:36: note: in expansion of macro 'SYSCALL_DEFINEx'
221 | #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
| ^~~~~~~~~~~~~~~
kernel/sched/membarrier.c:614:1: note: in expansion of macro 'SYSCALL_DEFINE3'
614 | SYSCALL_DEFINE3(membarrier, int, cmd, unsigned int, flags, int, cpu_id)
| ^~~~~~~~~~~~~~~
kernel/sched/isolation.c:24:19: error: extern declaration of 'housekeeping_overridden' follows declaration with no linkage
24 | EXPORT_SYMBOL_GPL(housekeeping_overridden);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:24:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
24 | EXPORT_SYMBOL_GPL(housekeeping_overridden);
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/once.h:6,
from include/linux/prandom.h:12,
from include/linux/random.h:153,
from include/linux/nodemask.h:97,
from include/linux/sched.h:23,
from include/linux/sched/signal.h:7,
from include/linux/sched/cputime.h:5,
from kernel/sched/build_utility.c:13:
kernel/sched/isolation.c:23:25: note: previous definition of 'housekeeping_overridden' with type 'struct static_key_false'
23 | DEFINE_STATIC_KEY_FALSE(housekeeping_overridden);
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/jump_label.h:390:33: note: in definition of macro 'DEFINE_STATIC_KEY_FALSE'
390 | struct static_key_false name = STATIC_KEY_FALSE_INIT
| ^~~~
kernel/sched/isolation.c:37:19: error: non-static declaration of 'housekeeping_enabled' follows static declaration
37 | EXPORT_SYMBOL_GPL(housekeeping_enabled);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
kernel/sched/isolation.c:37:1: note: in expansion of macro 'EXPORT_SYMBOL_GPL'
37 | EXPORT_SYMBOL_GPL(housekeeping_enabled);
| ^~~~~~~~~~~~~~~~~
In file included from kernel/sched/build_utility.c:105:
kernel/sched/isolation.c:33:6: note: previous definition of 'housekeeping_enabled' with type 'bool(enum hk_type)' {aka '_Bool(enum hk_type)'}
33 | bool housekeeping_enabled(enum hk_type type)
| ^~~~~~~~~~~~~~~~~~~~
kernel/sched/isolation.c:54:19: error: non-static declaration of 'housekeeping_any_cpu' follows static declaration
54 | EXPORT_SYMBOL_GPL(housekeeping_any_cpu);
| ^~~~~~~~~~~~~~~~~~~~
include/linux/export.h:74:28: note: in definition of macro '__EXPORT_SYMBOL'
74 | extern typeof(sym) sym; \
| ^~~
include/linux/export.h:87:41: note: in expansion of macro '_EXPORT_SYMBOL'
87 | #define EXPORT_SYMBOL_GPL(sym) _EXPORT_SYMBOL(sym, "GPL")
| ^~~~~~~~~~~~~~
vim +/psi_io_show +1763 kernel/sched/psi.c
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1761
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1762 #ifdef CONFIG_PROC_FS
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1763 static int psi_io_show(struct seq_file *m, void *v)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1764 {
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1765 return psi_show(m, &psi_system, PSI_IO);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1766 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1767
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1768 static int psi_memory_show(struct seq_file *m, void *v)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1769 {
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1770 return psi_show(m, &psi_system, PSI_MEM);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1771 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1772
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1773 static int psi_cpu_show(struct seq_file *m, void *v)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1774 {
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1775 return psi_show(m, &psi_system, PSI_CPU);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1776 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1777
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1778 static int psi_io_open(struct inode *inode, struct file *file)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1779 {
d82caa273565b4 Domenico Cerasuolo 2023-03-30 1780 return single_open(file, psi_io_show, NULL);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1781 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1782
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1783 static int psi_memory_open(struct inode *inode, struct file *file)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1784 {
d82caa273565b4 Domenico Cerasuolo 2023-03-30 1785 return single_open(file, psi_memory_show, NULL);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1786 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1787
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 @1788 static int psi_cpu_open(struct inode *inode, struct file *file)
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1789 {
d82caa273565b4 Domenico Cerasuolo 2023-03-30 1790 return single_open(file, psi_cpu_show, NULL);
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1791 }
5102bb1c9f8285 Suren Baghdasaryan 2022-01-19 1792
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1793 static ssize_t psi_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1794 size_t nbytes, enum psi_res res)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1795 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1796 char buf[32];
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1797 size_t buf_size;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1798 struct seq_file *seq;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1799 struct psi_trigger *new;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1800
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1801 if (static_branch_likely(&psi_disabled))
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1802 return -EOPNOTSUPP;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1803
6fcca0fa48118e Suren Baghdasaryan 2020-02-03 1804 if (!nbytes)
6fcca0fa48118e Suren Baghdasaryan 2020-02-03 1805 return -EINVAL;
6fcca0fa48118e Suren Baghdasaryan 2020-02-03 1806
4adcdcea717cb2 Miles Chen 2019-09-12 1807 buf_size = min(nbytes, sizeof(buf));
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1808 if (copy_from_user(buf, user_buf, buf_size))
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1809 return -EFAULT;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1810
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1811 buf[buf_size - 1] = '\0';
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1812
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1813 seq = file->private_data;
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1814
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1815 /* Take seq->lock to protect seq->private from concurrent writes */
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1816 mutex_lock(&seq->lock);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1817
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1818 /* Allow only one trigger per file descriptor */
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1819 if (seq->private) {
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1820 mutex_unlock(&seq->lock);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1821 return -EBUSY;
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1822 }
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1823
aff037078ecaec Suren Baghdasaryan 2023-06-29 1824 new = psi_trigger_create(&psi_system, buf, res, file, NULL);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1825 if (IS_ERR(new)) {
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1826 mutex_unlock(&seq->lock);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1827 return PTR_ERR(new);
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1828 }
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1829
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1830 smp_store_release(&seq->private, new);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1831 mutex_unlock(&seq->lock);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1832
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1833 return nbytes;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1834 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1835
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1836 static ssize_t psi_io_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1837 size_t nbytes, loff_t *ppos)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1838 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1839 return psi_write(file, user_buf, nbytes, PSI_IO);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1840 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1841
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1842 static ssize_t psi_memory_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1843 size_t nbytes, loff_t *ppos)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1844 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1845 return psi_write(file, user_buf, nbytes, PSI_MEM);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1846 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1847
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1848 static ssize_t psi_cpu_write(struct file *file, const char __user *user_buf,
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1849 size_t nbytes, loff_t *ppos)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1850 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1851 return psi_write(file, user_buf, nbytes, PSI_CPU);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1852 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1853
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1854 static __poll_t psi_fop_poll(struct file *file, poll_table *wait)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1855 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1856 struct seq_file *seq = file->private_data;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1857
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1858 return psi_trigger_poll(&seq->private, file, wait);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1859 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1860
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 @1861 static int psi_fop_release(struct inode *inode, struct file *file)
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1862 {
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1863 struct seq_file *seq = file->private_data;
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1864
a06247c6804f1a Suren Baghdasaryan 2022-01-11 1865 psi_trigger_destroy(seq->private);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1866 return single_release(inode, file);
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1867 }
0e94682b73bfa6 Suren Baghdasaryan 2019-05-14 1868
97a32539b9568b Alexey Dobriyan 2020-02-03 1869 static const struct proc_ops psi_io_proc_ops = {
97a32539b9568b Alexey Dobriyan 2020-02-03 @1870 .proc_open = psi_io_open,
97a32539b9568b Alexey Dobriyan 2020-02-03 1871 .proc_read = seq_read,
97a32539b9568b Alexey Dobriyan 2020-02-03 1872 .proc_lseek = seq_lseek,
97a32539b9568b Alexey Dobriyan 2020-02-03 1873 .proc_write = psi_io_write,
97a32539b9568b Alexey Dobriyan 2020-02-03 1874 .proc_poll = psi_fop_poll,
97a32539b9568b Alexey Dobriyan 2020-02-03 1875 .proc_release = psi_fop_release,
eb414681d5a07d Johannes Weiner 2018-10-26 1876 };
eb414681d5a07d Johannes Weiner 2018-10-26 1877
97a32539b9568b Alexey Dobriyan 2020-02-03 1878 static const struct proc_ops psi_memory_proc_ops = {
97a32539b9568b Alexey Dobriyan 2020-02-03 1879 .proc_open = psi_memory_open,
97a32539b9568b Alexey Dobriyan 2020-02-03 1880 .proc_read = seq_read,
97a32539b9568b Alexey Dobriyan 2020-02-03 1881 .proc_lseek = seq_lseek,
97a32539b9568b Alexey Dobriyan 2020-02-03 1882 .proc_write = psi_memory_write,
97a32539b9568b Alexey Dobriyan 2020-02-03 1883 .proc_poll = psi_fop_poll,
97a32539b9568b Alexey Dobriyan 2020-02-03 1884 .proc_release = psi_fop_release,
eb414681d5a07d Johannes Weiner 2018-10-26 1885 };
eb414681d5a07d Johannes Weiner 2018-10-26 1886
97a32539b9568b Alexey Dobriyan 2020-02-03 1887 static const struct proc_ops psi_cpu_proc_ops = {
97a32539b9568b Alexey Dobriyan 2020-02-03 1888 .proc_open = psi_cpu_open,
97a32539b9568b Alexey Dobriyan 2020-02-03 1889 .proc_read = seq_read,
97a32539b9568b Alexey Dobriyan 2020-02-03 1890 .proc_lseek = seq_lseek,
97a32539b9568b Alexey Dobriyan 2020-02-03 1891 .proc_write = psi_cpu_write,
97a32539b9568b Alexey Dobriyan 2020-02-03 1892 .proc_poll = psi_fop_poll,
97a32539b9568b Alexey Dobriyan 2020-02-03 1893 .proc_release = psi_fop_release,
eb414681d5a07d Johannes Weiner 2018-10-26 1894 };
eb414681d5a07d Johannes Weiner 2018-10-26 1895
4a69b56540f405 Lu Jialin 2024-01-04 1896 #ifdef CONFIG_PSI_FINE_GRAINED
4a69b56540f405 Lu Jialin 2024-01-04 1897 static const char *const psi_stat_names[] = {
4a69b56540f405 Lu Jialin 2024-01-04 1898 "cgroup_memory_reclaim",
25d00f6853c3c6 Lu Jialin 2024-01-04 1899 "global_memory_reclaim",
25d00f6853c3c6 Lu Jialin 2024-01-04 1900 "compact",
25d00f6853c3c6 Lu Jialin 2024-01-04 1901 "cgroup_async_memory_reclaim",
25d00f6853c3c6 Lu Jialin 2024-01-04 1902 "swap",
65494451082298 Lu Jialin 2024-01-04 1903 "cpu_cfs_bandwidth",
65494451082298 Lu Jialin 2024-01-04 1904 "cpu_qos",
4a69b56540f405 Lu Jialin 2024-01-04 1905 };
4a69b56540f405 Lu Jialin 2024-01-04 1906
65494451082298 Lu Jialin 2024-01-04 @1907 static void get_stat_names(struct seq_file *m, int i, bool is_full)
65494451082298 Lu Jialin 2024-01-04 1908 {
65494451082298 Lu Jialin 2024-01-04 1909 if (i <= PSI_SWAP_FULL && !is_full)
65494451082298 Lu Jialin 2024-01-04 1910 return seq_printf(m, "%s\n", psi_stat_names[i / 2]);
65494451082298 Lu Jialin 2024-01-04 1911 else if (i == PSI_CPU_CFS_BANDWIDTH_FULL)
65494451082298 Lu Jialin 2024-01-04 1912 return seq_printf(m, "%s\n", "cpu_cfs_bandwidth");
65494451082298 Lu Jialin 2024-01-04 1913 #ifdef CONFIG_QOS_SCHED
65494451082298 Lu Jialin 2024-01-04 1914 else if (i == PSI_CPU_QOS_FULL)
65494451082298 Lu Jialin 2024-01-04 1915 return seq_printf(m, "%s\n", "cpu_qos");
65494451082298 Lu Jialin 2024-01-04 1916 #endif
65494451082298 Lu Jialin 2024-01-04 1917 }
65494451082298 Lu Jialin 2024-01-04 1918
4a69b56540f405 Lu Jialin 2024-01-04 1919 int psi_stat_show(struct seq_file *m, struct psi_group *group)
4a69b56540f405 Lu Jialin 2024-01-04 1920 {
4a69b56540f405 Lu Jialin 2024-01-04 1921 int i;
4a69b56540f405 Lu Jialin 2024-01-04 1922 u64 now;
4a69b56540f405 Lu Jialin 2024-01-04 1923
4a69b56540f405 Lu Jialin 2024-01-04 1924 if (static_branch_likely(&psi_disabled))
4a69b56540f405 Lu Jialin 2024-01-04 1925 return -EOPNOTSUPP;
4a69b56540f405 Lu Jialin 2024-01-04 1926
4a69b56540f405 Lu Jialin 2024-01-04 1927 mutex_lock(&group->avgs_lock);
4a69b56540f405 Lu Jialin 2024-01-04 1928 now = sched_clock();
4a69b56540f405 Lu Jialin 2024-01-04 1929 collect_percpu_times(group, PSI_AVGS, NULL);
4a69b56540f405 Lu Jialin 2024-01-04 1930 if (now >= group->avg_next_update)
4a69b56540f405 Lu Jialin 2024-01-04 1931 group->avg_next_update = update_averages(group, now);
4a69b56540f405 Lu Jialin 2024-01-04 1932 mutex_unlock(&group->avgs_lock);
4a69b56540f405 Lu Jialin 2024-01-04 1933
4a69b56540f405 Lu Jialin 2024-01-04 1934 for (i = 0; i < NR_PSI_STAT_STATES; i++) {
4a69b56540f405 Lu Jialin 2024-01-04 1935 unsigned long avg[3] = {0, };
4a69b56540f405 Lu Jialin 2024-01-04 1936 int w;
4a69b56540f405 Lu Jialin 2024-01-04 1937 u64 total;
65494451082298 Lu Jialin 2024-01-04 1938 bool is_full = i % 2 || i > PSI_SWAP_FULL;
4a69b56540f405 Lu Jialin 2024-01-04 1939
4a69b56540f405 Lu Jialin 2024-01-04 1940 for (w = 0; w < 3; w++)
4a69b56540f405 Lu Jialin 2024-01-04 1941 avg[w] = group->fine_grained_avg[i][w];
4a69b56540f405 Lu Jialin 2024-01-04 1942 total = div_u64(group->fine_grained_total[PSI_AVGS][i], NSEC_PER_USEC);
65494451082298 Lu Jialin 2024-01-04 1943 get_stat_names(m, i, is_full);
4a69b56540f405 Lu Jialin 2024-01-04 1944 seq_printf(m, "%s avg10=%lu.%02lu avg60=%lu.%02lu avg300=%lu.%02lu total=%llu\n",
4a69b56540f405 Lu Jialin 2024-01-04 1945 is_full ? "full" : "some",
4a69b56540f405 Lu Jialin 2024-01-04 1946 LOAD_INT(avg[0]), LOAD_FRAC(avg[0]),
4a69b56540f405 Lu Jialin 2024-01-04 1947 LOAD_INT(avg[1]), LOAD_FRAC(avg[1]),
4a69b56540f405 Lu Jialin 2024-01-04 1948 LOAD_INT(avg[2]), LOAD_FRAC(avg[2]),
4a69b56540f405 Lu Jialin 2024-01-04 1949 total);
4a69b56540f405 Lu Jialin 2024-01-04 1950 }
4a69b56540f405 Lu Jialin 2024-01-04 1951 return 0;
4a69b56540f405 Lu Jialin 2024-01-04 1952 }
4a69b56540f405 Lu Jialin 2024-01-04 @1953 static int system_psi_stat_show(struct seq_file *m, void *v)
4a69b56540f405 Lu Jialin 2024-01-04 1954 {
4a69b56540f405 Lu Jialin 2024-01-04 1955 return psi_stat_show(m, &psi_system);
4a69b56540f405 Lu Jialin 2024-01-04 1956 }
4a69b56540f405 Lu Jialin 2024-01-04 1957
4a69b56540f405 Lu Jialin 2024-01-04 @1958 static int psi_stat_open(struct inode *inode, struct file *file)
4a69b56540f405 Lu Jialin 2024-01-04 1959 {
4a69b56540f405 Lu Jialin 2024-01-04 1960 return single_open(file, system_psi_stat_show, NULL);
4a69b56540f405 Lu Jialin 2024-01-04 1961 }
4a69b56540f405 Lu Jialin 2024-01-04 1962
:::::: The code at line 1763 was first introduced by commit
:::::: 5102bb1c9f82857a3164af9d7ab7ad628cb783ed psi: Fix "defined but not used" warnings when CONFIG_PROC_FS=n
:::::: TO: Suren Baghdasaryan <surenb(a)google.com>
:::::: CC: Peter Zijlstra <peterz(a)infradead.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1422/1422] kernel/time/.tmp_hrtimer.o: warning: objtool: hrtimer_start_range_ns()+0x535: unreachable instruction
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Phil,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 6a6cc2b6b95dc80ae01221670e21a8059229a023
commit: 40ecfb28732cefd0c5658f7c10543bbc4cd41cb8 [1422/1422] hrtimer: Prevent queuing of hrtimer without a function callback
config: x86_64-buildonly-randconfig-001-20250210 (https://download.01.org/0day-ci/archive/20250216/202502160431.1F2NAJJ5-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160431.1F2NAJJ5-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502160431.1F2NAJJ5-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/time/hrtimer.c:130:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
130 | [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:131:22: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
131 | [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC,
| ^~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:132:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
132 | [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME,
| ^~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:133:17: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
133 | [CLOCK_TAI] = HRTIMER_BASE_TAI,
| ^~~~~~~~~~~~~~~~
kernel/time/hrtimer.c:128:27: note: previous initialization is here
128 | [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES,
| ^~~~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
>> kernel/time/.tmp_hrtimer.o: warning: objtool: hrtimer_start_range_ns()+0x535: unreachable instruction
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1422/1422] kernel/time/.tmp_posix-cpu-timers.o: warning: objtool: set_process_cpu_timer()+0x119: unreachable instruction
by kernel test robot 16 Feb '25
by kernel test robot 16 Feb '25
16 Feb '25
Hi Thomas,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 6a6cc2b6b95dc80ae01221670e21a8059229a023
commit: 36ff49c95a04513935898fdcd4bc37646b2dc459 [1422/1422] posix-cpu-timers: Sanitize bogus WARNONS
config: x86_64-buildonly-randconfig-001-20250210 (https://download.01.org/0day-ci/archive/20250216/202502160200.QYr3efrJ-lkp@…)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250216/202502160200.QYr3efrJ-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502160200.QYr3efrJ-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/time/.tmp_posix-cpu-timers.o: warning: objtool: set_process_cpu_timer()+0x119: unreachable instruction
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
Fix CVE-2024-56658
Dong Chenchen (1):
net: Fix kabi breakage in struct net
Eric Dumazet (1):
net: defer final 'struct net' free in netns dismantle
include/net/net_namespace.h | 2 +-
net/core/net_namespace.c | 20 +++++++++++++++++++-
2 files changed, 20 insertions(+), 2 deletions(-)
--
2.25.1
2
3

[PATCH openEuler-1.0-LTS] netfilter: conntrack: clamp maximum hashtable size to INT_MAX
by Dong Chenchen 15 Feb '25
by Dong Chenchen 15 Feb '25
15 Feb '25
From: Pablo Neira Ayuso <pablo(a)netfilter.org>
mainline inclusion
from mainline-v6.13-rc7
commit b541ba7d1f5a5b7b3e2e22dc9e40e18a7d6dbc13
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBIQQN
CVE: CVE-2025-21648
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Use INT_MAX as maximum size for the conntrack hashtable. Otherwise, it
is possible to hit WARN_ON_ONCE in __kvmalloc_node_noprof() when
resizing hashtable because __GFP_NOWARN is unset. See:
0708a0afe291 ("mm: Consider __GFP_NOWARN flag for oversized kvmalloc() calls")
Note: hashtable resize is only possible from init_netns.
Fixes: 9cc1c73ad666 ("netfilter: conntrack: avoid integer overflow when resizing")
Signed-off-by: Pablo Neira Ayuso <pablo(a)netfilter.org>
Conflicts:
net/netfilter/nf_conntrack_core.c
[commit b9e0102a57d7 use kvcalloc, which not merged lead to conflict]
Signed-off-by: Dong Chenchen <dongchenchen2(a)huawei.com>
---
net/netfilter/nf_conntrack_core.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index 755e1cee32cb..ebc365e6ac8f 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -2314,12 +2314,15 @@ void *nf_ct_alloc_hashtable(unsigned int *sizep, int nulls)
struct hlist_nulls_head *hash;
unsigned int nr_slots, i;
- if (*sizep > (UINT_MAX / sizeof(struct hlist_nulls_head)))
+ if (*sizep > (INT_MAX / sizeof(struct hlist_nulls_head)))
return NULL;
BUILD_BUG_ON(sizeof(struct hlist_nulls_head) != sizeof(struct hlist_head));
nr_slots = *sizep = roundup(*sizep, PAGE_SIZE / sizeof(struct hlist_nulls_head));
+ if (nr_slots > (INT_MAX / sizeof(struct hlist_nulls_head)))
+ return NULL;
+
hash = kvmalloc_array(nr_slots, sizeof(struct hlist_nulls_head),
GFP_KERNEL | __GFP_ZERO);
--
2.25.1
2
1

[PATCH openEuler-1.0-LTS] netfilter: x_tables: fix LED ID check in led_tg_check()
by Dong Chenchen 15 Feb '25
by Dong Chenchen 15 Feb '25
15 Feb '25
From: Dmitry Antipov <dmantipov(a)yandex.ru>
mainline inclusion
from mainline-v6.13-rc2
commit 04317f4eb2aad312ad85c1a17ad81fe75f1f9bc7
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBEAO6
CVE: CVE-2024-56650
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Syzbot has reported the following BUG detected by KASAN:
BUG: KASAN: slab-out-of-bounds in strlen+0x58/0x70
Read of size 1 at addr ffff8881022da0c8 by task repro/5879
...
Call Trace:
<TASK>
dump_stack_lvl+0x241/0x360
? __pfx_dump_stack_lvl+0x10/0x10
? __pfx__printk+0x10/0x10
? _printk+0xd5/0x120
? __virt_addr_valid+0x183/0x530
? __virt_addr_valid+0x183/0x530
print_report+0x169/0x550
? __virt_addr_valid+0x183/0x530
? __virt_addr_valid+0x183/0x530
? __virt_addr_valid+0x45f/0x530
? __phys_addr+0xba/0x170
? strlen+0x58/0x70
kasan_report+0x143/0x180
? strlen+0x58/0x70
strlen+0x58/0x70
kstrdup+0x20/0x80
led_tg_check+0x18b/0x3c0
xt_check_target+0x3bb/0xa40
? __pfx_xt_check_target+0x10/0x10
? stack_depot_save_flags+0x6e4/0x830
? nft_target_init+0x174/0xc30
nft_target_init+0x82d/0xc30
? __pfx_nft_target_init+0x10/0x10
? nf_tables_newrule+0x1609/0x2980
? nf_tables_newrule+0x1609/0x2980
? rcu_is_watching+0x15/0xb0
? nf_tables_newrule+0x1609/0x2980
? nf_tables_newrule+0x1609/0x2980
? __kmalloc_noprof+0x21a/0x400
nf_tables_newrule+0x1860/0x2980
? __pfx_nf_tables_newrule+0x10/0x10
? __nla_parse+0x40/0x60
nfnetlink_rcv+0x14e5/0x2ab0
? __pfx_validate_chain+0x10/0x10
? __pfx_nfnetlink_rcv+0x10/0x10
? __lock_acquire+0x1384/0x2050
? netlink_deliver_tap+0x2e/0x1b0
? __pfx_lock_release+0x10/0x10
? netlink_deliver_tap+0x2e/0x1b0
netlink_unicast+0x7f8/0x990
? __pfx_netlink_unicast+0x10/0x10
? __virt_addr_valid+0x183/0x530
? __check_object_size+0x48e/0x900
netlink_sendmsg+0x8e4/0xcb0
? __pfx_netlink_sendmsg+0x10/0x10
? aa_sock_msg_perm+0x91/0x160
? __pfx_netlink_sendmsg+0x10/0x10
__sock_sendmsg+0x223/0x270
____sys_sendmsg+0x52a/0x7e0
? __pfx_____sys_sendmsg+0x10/0x10
__sys_sendmsg+0x292/0x380
? __pfx___sys_sendmsg+0x10/0x10
? lockdep_hardirqs_on_prepare+0x43d/0x780
? __pfx_lockdep_hardirqs_on_prepare+0x10/0x10
? exc_page_fault+0x590/0x8c0
? do_syscall_64+0xb6/0x230
do_syscall_64+0xf3/0x230
entry_SYSCALL_64_after_hwframe+0x77/0x7f
...
</TASK>
Since an invalid (without '\0' byte at all) byte sequence may be passed
from userspace, add an extra check to ensure that such a sequence is
rejected as possible ID and so never passed to 'kstrdup()' and further.
Reported-by: syzbot+6c8215822f35fdb35667(a)syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=6c8215822f35fdb35667
Fixes: 268cb38e1802 ("netfilter: x_tables: add LED trigger target")
Signed-off-by: Dmitry Antipov <dmantipov(a)yandex.ru>
Signed-off-by: Pablo Neira Ayuso <pablo(a)netfilter.org>
Signed-off-by: Dong Chenchen <dongchenchen2(a)huawei.com>
---
net/netfilter/xt_LED.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/net/netfilter/xt_LED.c b/net/netfilter/xt_LED.c
index 19846445504d..043d657f4447 100644
--- a/net/netfilter/xt_LED.c
+++ b/net/netfilter/xt_LED.c
@@ -111,7 +111,9 @@ static int led_tg_check(const struct xt_tgchk_param *par)
struct xt_led_info_internal *ledinternal;
int err;
- if (ledinfo->id[0] == '\0')
+ /* Bail out if empty string or not a string at all. */
+ if (ledinfo->id[0] == '\0' ||
+ !memchr(ledinfo->id, '\0', sizeof(ledinfo->id)))
return -EINVAL;
mutex_lock(&xt_led_mutex);
--
2.25.1
2
1