Kernel
Threads by month
- ----- 2025 -----
- March
- 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
- 55 participants
- 17232 discussions

[openeuler:OLK-6.6 1826/1826] mm/mem_reliable.c:131:52: sparse: sparse: incorrect type in argument 3 (different address spaces)
by kernel test robot 18 Jan '25
by kernel test robot 18 Jan '25
18 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: a5cbe5b715d9cac271b2c6175e728f0c4167f675
commit: 200321e8a69ef82350d070de35ac4a666ab79ba6 [1826/1826] mm: mem_reliable: Add limiting the usage of reliable memory
config: arm64-randconfig-r123-20250118 (https://download.01.org/0day-ci/archive/20250118/202501180645.GOqTUifa-lkp@…)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce: (https://download.01.org/0day-ci/archive/20250118/202501180645.GOqTUifa-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/202501180645.GOqTUifa-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> mm/mem_reliable.c:131:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void * @@ got void [noderef] __user *buffer @@
mm/mem_reliable.c:131:52: sparse: expected void *
mm/mem_reliable.c:131:52: sparse: got void [noderef] __user *buffer
mm/mem_reliable.c:150:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void * @@ got void [noderef] __user *buffer @@
mm/mem_reliable.c:150:52: sparse: expected void *
mm/mem_reliable.c:150:52: sparse: got void [noderef] __user *buffer
mm/mem_reliable.c:172:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void * @@ got void [noderef] __user *buffer @@
mm/mem_reliable.c:172:52: sparse: expected void *
mm/mem_reliable.c:172:52: sparse: got void [noderef] __user *buffer
>> mm/mem_reliable.c:190:33: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@
mm/mem_reliable.c:190:33: sparse: expected int ( [usertype] *proc_handler )( ... )
mm/mem_reliable.c:190:33: sparse: got int ( * )( ... )
mm/mem_reliable.c:197:33: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@
mm/mem_reliable.c:197:33: sparse: expected int ( [usertype] *proc_handler )( ... )
mm/mem_reliable.c:197:33: sparse: got int ( * )( ... )
mm/mem_reliable.c:205:33: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@
mm/mem_reliable.c:205:33: sparse: expected int ( [usertype] *proc_handler )( ... )
mm/mem_reliable.c:205:33: sparse: got int ( * )( ... )
vim +131 mm/mem_reliable.c
123
124 static int reliable_pagecache_max_bytes_write(struct ctl_table *table,
125 int write, void __user *buffer,
126 size_t *length, loff_t *ppos)
127 {
128 unsigned long old_value = pagecache_reliable_limit;
129 int ret;
130
> 131 ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
132 if (!ret && write) {
133 if (pagecache_reliable_limit >
134 PAGES_TO_B(total_reliable_pages())) {
135 pagecache_reliable_limit = old_value;
136 return -EINVAL;
137 }
138 }
139
140 return ret;
141 }
142
143 static int reliable_limit_handler(struct ctl_table *table, int write,
144 void __user *buffer, size_t *length,
145 loff_t *ppos)
146 {
147 unsigned long old = task_reliable_limit;
148 int ret;
149
150 ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
151 if (!ret && write) {
152 if (task_reliable_limit > PAGES_TO_B(total_reliable_pages()) ||
153 task_reliable_limit <
154 (task_reliable_used_pages() << PAGE_SHIFT)) {
155 task_reliable_limit = old;
156 return -EINVAL;
157 }
158 }
159
160 return ret;
161 }
162
163 #ifdef CONFIG_SHMEM
164 static int reliable_shmem_bytes_limit_handler(struct ctl_table *table,
165 int write, void __user *buffer,
166 size_t *length, loff_t *ppos)
167 {
168 unsigned long *data_ptr = (unsigned long *)(table->data);
169 unsigned long old = *data_ptr;
170 int ret;
171
172 ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
173 if (!ret && write) {
174 if (*data_ptr > PAGES_TO_B(total_reliable_pages())) {
175 *data_ptr = old;
176 return -EINVAL;
177 }
178 }
179
180 return ret;
181 }
182 #endif
183
184 static struct ctl_table reliable_ctl_table[] = {
185 {
186 .procname = "reliable_pagecache_max_bytes",
187 .data = &pagecache_reliable_limit,
188 .maxlen = sizeof(pagecache_reliable_limit),
189 .mode = 0644,
> 190 .proc_handler = reliable_pagecache_max_bytes_write,
191 },
192 {
193 .procname = "task_reliable_limit",
194 .data = &task_reliable_limit,
195 .maxlen = sizeof(task_reliable_limit),
196 .mode = 0644,
197 .proc_handler = reliable_limit_handler,
198 },
199 #ifdef CONFIG_SHMEM
200 {
201 .procname = "shmem_reliable_bytes_limit",
202 .data = &shmem_reliable_limit,
203 .maxlen = sizeof(shmem_reliable_limit),
204 .mode = 0644,
205 .proc_handler = reliable_shmem_bytes_limit_handler,
206 },
207 #endif
208 {}
209 };
210
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 1826/1826] kernel/sched/fair.c:146:12: warning: 'hundred_thousand' defined but not used
by kernel test robot 18 Jan '25
by kernel test robot 18 Jan '25
18 Jan '25
Hi Zhang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: a5cbe5b715d9cac271b2c6175e728f0c4167f675
commit: a3c9f2da0a35df4e41751556be4308f57bdaf3d6 [1826/1826] sched: Introduce handle priority reversion mechanism
config: loongarch-randconfig-r063-20250118 (https://download.01.org/0day-ci/archive/20250118/202501180452.dWoRzgYk-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250118/202501180452.dWoRzgYk-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/202501180452.dWoRzgYk-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/sched/fair.c:146:12: warning: 'hundred_thousand' defined but not used [-Wunused-variable]
146 | static int hundred_thousand = 100000;
| ^~~~~~~~~~~~~~~~
>> kernel/sched/fair.c:145:12: warning: 'one_thousand' defined but not used [-Wunused-variable]
145 | static int one_thousand = 1000;
| ^~~~~~~~~~~~
vim +/hundred_thousand +146 kernel/sched/fair.c
139
140 static DEFINE_PER_CPU_SHARED_ALIGNED(struct list_head, qos_throttled_cfs_rq);
141 static DEFINE_PER_CPU_SHARED_ALIGNED(struct hrtimer, qos_overload_timer);
142 static DEFINE_PER_CPU(int, qos_cpu_overload);
143 unsigned int sysctl_overload_detect_period = 5000; /* in ms */
144 unsigned int sysctl_offline_wait_interval = 100; /* in ms */
> 145 static int one_thousand = 1000;
> 146 static int hundred_thousand = 100000;
147 static int unthrottle_qos_cfs_rqs(int cpu);
148 #endif
149
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 1826/1826] arch/arm64/kernel/ipi_nmi.c:39:2: error: call to undeclared function '__printk_safe_enter'; ISO C99 and later do not support implicit function declarations
by kernel test robot 18 Jan '25
by kernel test robot 18 Jan '25
18 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: a5cbe5b715d9cac271b2c6175e728f0c4167f675
commit: 5e3e94b1477ca3f6cb47ae8137a4a99fe0ef6147 [1826/1826] arm64: Add non nmi ipi backtrace support
config: arm64-randconfig-r123-20250118 (https://download.01.org/0day-ci/archive/20250118/202501180414.2c8NAnVD-lkp@…)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce: (https://download.01.org/0day-ci/archive/20250118/202501180414.2c8NAnVD-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/202501180414.2c8NAnVD-lkp@intel.com/
All errors (new ones prefixed by >>):
>> arch/arm64/kernel/ipi_nmi.c:39:2: error: call to undeclared function '__printk_safe_enter'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
__printk_safe_enter();
^
>> arch/arm64/kernel/ipi_nmi.c:41:2: error: call to undeclared function '__printk_safe_exit'; ISO C99 and later do not support implicit function declarations [-Werror,-Wimplicit-function-declaration]
__printk_safe_exit();
^
2 errors generated.
vim +/__printk_safe_enter +39 arch/arm64/kernel/ipi_nmi.c
35
36 #ifdef CONFIG_NON_NMI_IPI_BACKTRACE
37 static void ipi_cpu_backtrace(void *info)
38 {
> 39 __printk_safe_enter();
40 nmi_cpu_backtrace(get_irq_regs());
> 41 __printk_safe_exit();
42 }
43
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6] BUILD REGRESSION a5cbe5b715d9cac271b2c6175e728f0c4167f675
by kernel test robot 18 Jan '25
by kernel test robot 18 Jan '25
18 Jan '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: a5cbe5b715d9cac271b2c6175e728f0c4167f675 !14873 [openEuler-24.03-LTS][linux-6.6.y sync] Backport 6.6.62-6.6.63 LTS Patches
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- block-blk-io-hierarchy-iodump.c:warning:no-previous-prototype-for-function-__bio_stage_hierarchy_start
| |-- drivers-net-ethernet-huawei-hibifur-bifur_event.c:warning:no-previous-prototype-for-function-bifur_net_event_callback
| |-- drivers-net-ethernet-huawei-hibifur-bifur_event.c:warning:no-previous-prototype-for-function-bifur_notify_all_vfs_link_changed
| |-- drivers-net-ethernet-huawei-hibifur-bifur_event.c:warning:no-previous-prototype-for-function-bifur_notify_vf_link_status
| |-- drivers-net-ethernet-huawei-hibifur-bifur_main.c:warning:no-previous-prototype-for-function-bifur_enable_disable_vf_all
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_alloc_proc_file
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_cmd_exec
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_file_write
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_free_knl_msg_buf
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_dev_close
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_dev_open
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_file_add
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_file_del
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_msg_copy_from_usr
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_msg_copy_to_usr
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_proc_write
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_file_add
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_file_del
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_proc_build
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_proc_destroy
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_proc_close
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_proc_open
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_vf_info_hold
| `-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_vf_info_put
|-- arm64-randconfig-r061-20250118
| `-- kernel-cgroup-cgroup.c:error:use-of-undeclared-identifier-cgroup_psi_stat_show
|-- loongarch-allmodconfig
| `-- drivers-irqchip-irq-loongson-eiointc.c:warning:unused-variable-cores
|-- loongarch-allnoconfig
| `-- drivers-irqchip-irq-loongson-eiointc.c:warning:unused-variable-cores
|-- loongarch-allyesconfig
| `-- drivers-irqchip-irq-loongson-eiointc.c:warning:unused-variable-cores
|-- loongarch-randconfig-001-20250117
| `-- drivers-irqchip-irq-loongson-eiointc.c:warning:unused-variable-cores
|-- loongarch-randconfig-002-20250117
| `-- drivers-irqchip-irq-loongson-eiointc.c:warning:unused-variable-cores
|-- loongarch-randconfig-r063-20250118
| |-- arch-loongarch-kernel-smp.c:WARNING:Unsigned-expression-compared-with-zero:cpu
| `-- drivers-irqchip-irq-loongson-eiointc.c:warning:unused-variable-cores
|-- x86_64-allnoconfig
| `-- samples-trace_events-trace_custom_sched.c:linux-version.h-not-needed.
|-- x86_64-allyesconfig
| |-- block-blk-io-hierarchy-iodump.c:warning:no-previous-prototype-for-function-__bio_stage_hierarchy_start
| |-- drivers-net-ethernet-huawei-hibifur-bifur_event.c:warning:no-previous-prototype-for-function-bifur_net_event_callback
| |-- drivers-net-ethernet-huawei-hibifur-bifur_event.c:warning:no-previous-prototype-for-function-bifur_notify_all_vfs_link_changed
| |-- drivers-net-ethernet-huawei-hibifur-bifur_event.c:warning:no-previous-prototype-for-function-bifur_notify_vf_link_status
| |-- drivers-net-ethernet-huawei-hibifur-bifur_main.c:warning:no-previous-prototype-for-function-bifur_enable_disable_vf_all
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_alloc_proc_file
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_cmd_exec
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_file_write
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_free_knl_msg_buf
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_dev_close
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_dev_open
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_file_add
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_global_file_del
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_msg_copy_from_usr
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_msg_copy_to_usr
| |-- drivers-net-ethernet-huawei-hibifur-bifur_pfile.c:warning:no-previous-prototype-for-function-bifur_proc_write
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_file_add
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_file_del
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_proc_build
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_dev_proc_destroy
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_proc_close
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_proc_open
| |-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_vf_info_hold
| `-- drivers-net-ethernet-huawei-hibifur-bifur_vf_mgr.c:warning:no-previous-prototype-for-function-bifur_vf_info_put
`-- x86_64-randconfig-r062-20250118
|-- arch-x86-kernel-cpu-hygon.c:warning:no-previous-prototype-for-get_nt_block_copy_mini_len
|-- arch-x86-kernel-cpu-hygon.c:warning:no-previous-prototype-for-set_c86_features_para_invalid
`-- arch-x86-kernel-fpu-core.c:warning:no-previous-prototype-for-get_fpustate_free_space
elapsed time: 918m
configs tested: 19
configs skipped: 121
tested configs:
arm64 allmodconfig clang-18
arm64 allnoconfig gcc-14.2.0
arm64 randconfig-001-20250117 gcc-14.2.0
arm64 randconfig-002-20250117 clang-18
arm64 randconfig-003-20250117 clang-20
arm64 randconfig-004-20250117 gcc-14.2.0
loongarch allmodconfig gcc-14.2.0
loongarch allnoconfig gcc-14.2.0
loongarch randconfig-001-20250117 gcc-14.2.0
loongarch randconfig-002-20250117 gcc-14.2.0
x86_64 allnoconfig clang-19
x86_64 allyesconfig clang-19
x86_64 buildonly-randconfig-001-20250117 gcc-12
x86_64 buildonly-randconfig-002-20250117 gcc-12
x86_64 buildonly-randconfig-003-20250117 gcc-12
x86_64 buildonly-randconfig-004-20250117 gcc-12
x86_64 buildonly-randconfig-005-20250117 gcc-12
x86_64 buildonly-randconfig-006-20250117 clang-19
x86_64 defconfig gcc-11
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 2709/2709] include/linux/blk_types.h: linux/kabi.h is included more than once.
by kernel test robot 18 Jan '25
by kernel test robot 18 Jan '25
18 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 08e54ea5e4a4948874ca30d91be3e5cca4ecbeec
commit: dde4fe567523327d09054824030fb2d22e5009c7 [2709/2709] kabi: Add kabi reservation for storage module
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
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/202501180245.jJrp2ix8-lkp@intel.com/
includecheck warnings: (new ones prefixed by >>)
>> include/linux/blk_types.h: linux/kabi.h is included more than once.
--
>> include/linux/cred.h: linux/kabi.h is included more than once.
--
>> include/linux/mm.h: linux/kabi.h is included more than once.
--
>> include/linux/device/class.h: linux/kabi.h is included more than once.
--
>> include/linux/ioport.h: linux/kabi.h is included more than once.
--
>> include/linux/swap.h: linux/kabi.h is included more than once.
--
>> include/linux/device.h: linux/kabi.h is included more than once.
vim +9 include/linux/blk_types.h
8
> 9 #include <linux/kabi.h>
10 #include <linux/types.h>
11 #include <linux/bvec.h>
12 #include <linux/ktime.h>
> 13 #include <linux/kabi.h>
14
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS] BUILD REGRESSION 52349611d09c6a9a2b558b3ce1cb1dca0d47dbe8
by kernel test robot 18 Jan '25
by kernel test robot 18 Jan '25
18 Jan '25
tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
branch HEAD: 52349611d09c6a9a2b558b3ce1cb1dca0d47dbe8 !9360 Add support for Hygon model 10h processors
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202501171519.TpEUKk9L-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202501172158.pLxZDrP8-lkp@intel.com
drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c:844:41: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
drivers/staging/rtl8723bs/os_dep/ioctl_linux.c:3787:41: warning: writing 8 bytes into a region of size 0 [-Wstringop-overflow=]
include/linux/list.h:583:14: warning: array subscript 0 is outside array bounds of 'struct plist_node[0]' [-Warray-bounds=]
include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
include/linux/plist.h:137:9: warning: array subscript 0 is outside array bounds of 'struct plist_node[0]' [-Warray-bounds=]
include/linux/uaccess.h:115:17: warning: 'bytes' may be used uninitialized [-Wmaybe-uninitialized]
include/linux/uaccess.h:115:17: warning: 'data_arg' may be used uninitialized [-Wmaybe-uninitialized]
include/linux/uaccess.h:115:17: warning: 'rep' may be used uninitialized [-Wmaybe-uninitialized]
include/linux/uaccess.h:115:17: warning: 'rq' may be used uninitialized [-Wmaybe-uninitialized]
include/linux/uaccess.h:115:17: warning: 'rsv' may be used uninitialized [-Wmaybe-uninitialized]
include/linux/uaccess.h:115:17: warning: 'version' may be used uninitialized [-Wmaybe-uninitialized]
include/linux/uaccess.h:115:17: warning: 'zrange' may be used uninitialized [-Wmaybe-uninitialized]
Unverified Error/Warning (likely false positive, kindly check if interested):
crypto/sm4_generic.o: warning: objtool: missing symbol for section .text
drivers/staging/media/zoran/videocodec.o: warning: objtool: missing symbol for section .text
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-io-hierarchy-iodump.c:warning:no-previous-prototype-for-__bio_stage_hierarchy_start
| |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used
| |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used
| |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_requeue
| `-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
|-- arm64-allnoconfig
| `-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
|-- arm64-randconfig-001-20250117
| |-- drivers-staging-rtl8723bs-os_dep-ioctl_cfg80211.c:warning:writing-bytes-into-a-region-of-size
| `-- drivers-staging-rtl8723bs-os_dep-ioctl_linux.c:warning:writing-bytes-into-a-region-of-size
|-- arm64-randconfig-002-20250117
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free
| |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_requeue
| `-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
|-- arm64-randconfig-003-20250117
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used
| |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used
| |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
| `-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
|-- arm64-randconfig-004-20250117
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free
| |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_requeue
| |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
| |-- include-linux-list.h:warning:array-subscript-is-outside-array-bounds-of-struct-plist_node
| |-- include-linux-plist.h:warning:array-subscript-is-outside-array-bounds-of-struct-plist_node
| |-- include-linux-uaccess.h:warning:acc-may-be-used-uninitialized
| |-- include-linux-uaccess.h:warning:bytes-may-be-used-uninitialized
| |-- include-linux-uaccess.h:warning:data_arg-may-be-used-uninitialized
| |-- include-linux-uaccess.h:warning:rep-may-be-used-uninitialized
| |-- include-linux-uaccess.h:warning:rq-may-be-used-uninitialized
| |-- include-linux-uaccess.h:warning:rsv-may-be-used-uninitialized
| |-- include-linux-uaccess.h:warning:version-may-be-used-uninitialized
| `-- include-linux-uaccess.h:warning:zrange-may-be-used-uninitialized
|-- x86_64-allmodconfig
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used
| |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used
| `-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
|-- x86_64-allyesconfig
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used
| |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| `-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
|-- x86_64-buildonly-randconfig-001-20250117
| |-- arch-x86-kernel-hpet.o:warning:objtool:missing-symbol-for-section-.text.unlikely
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_requeue
| `-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
|-- x86_64-buildonly-randconfig-002-20250117
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
| |-- block-blk-rq-qos.o:warning:objtool:missing-symbol-for-section-.text
| `-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
|-- x86_64-buildonly-randconfig-003-20250117
| |-- crypto-sm4_generic.o:warning:objtool:missing-symbol-for-section-.text
| `-- net-ipv4-bpfilter-sockopt.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-004-20250117
| |-- drivers-pci-pcie-dpc.o:warning:objtool:missing-symbol-for-section-.init.text
| |-- drivers-staging-media-zoran-videocodec.o:warning:objtool:missing-symbol-for-section-.text
| |-- sound-drivers-vx-vx_core.o:warning:objtool:missing-symbol-for-section-.text
| `-- sound-isa-wavefront-wavefront_fx.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-005-20250117
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free
| |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_requeue
| `-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
|-- x86_64-buildonly-randconfig-006-20250117
| |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle
| |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle
| |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| `-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions
`-- x86_64-defconfig
|-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge
|-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests
`-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions
elapsed time: 875m
configs tested: 15
configs skipped: 115
tested configs:
arm64 allmodconfig gcc-14.2.0
arm64 allnoconfig gcc-14.2.0
arm64 randconfig-001-20250117 gcc-14.2.0
arm64 randconfig-002-20250117 gcc-14.2.0
arm64 randconfig-003-20250117 gcc-14.2.0
arm64 randconfig-004-20250117 gcc-14.2.0
x86_64 allnoconfig clang-19
x86_64 allyesconfig clang-19
x86_64 buildonly-randconfig-001-20250117 gcc-12
x86_64 buildonly-randconfig-002-20250117 gcc-12
x86_64 buildonly-randconfig-003-20250117 gcc-12
x86_64 buildonly-randconfig-004-20250117 gcc-12
x86_64 buildonly-randconfig-005-20250117 gcc-12
x86_64 buildonly-randconfig-006-20250117 clang-19
x86_64 defconfig gcc-11
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 2709/2709] kernel/rcu/tree.o: warning: objtool: __call_rcu_nocb_wake()+0x75f: unreachable instruction
by kernel test robot 17 Jan '25
by kernel test robot 17 Jan '25
17 Jan '25
Hi Steven,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 08e54ea5e4a4948874ca30d91be3e5cca4ecbeec
commit: f2c902d8c653f8021f9761092a27f7b9db42b662 [2709/2709] tracing: Make tracepoint lockdep check actually test something
config: x86_64-randconfig-161-20250117 (https://download.01.org/0day-ci/archive/20250117/202501172116.SQgEKk8j-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/20250117/202501172116.SQgEKk8j-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/202501172116.SQgEKk8j-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/rcu/tree.o: warning: objtool: __call_rcu_nocb_wake()+0x75f: unreachable instruction
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1407/1407] include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used
by kernel test robot 17 Jan '25
by kernel test robot 17 Jan '25
17 Jan '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 52349611d09c6a9a2b558b3ce1cb1dca0d47dbe8
commit: 1811840c2cdebd0820818392a8217ffbd1be5c67 [1407/1407] mm/sharepool: Fix sharepool node id invalid when using sp_alloc
config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20250117/202501172158.pLxZDrP8-lkp@…)
compiler: aarch64-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250117/202501172158.pLxZDrP8-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/202501172158.pLxZDrP8-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/fork.c:741:20: warning: no previous prototype for 'arch_task_cache_init' [-Wmissing-prototypes]
741 | void __init __weak arch_task_cache_init(void) { }
| ^~~~~~~~~~~~~~~~~~~~
kernel/fork.c:826:12: warning: no previous prototype for 'arch_dup_task_struct' [-Wmissing-prototypes]
826 | int __weak arch_dup_task_struct(struct task_struct *dst,
| ^~~~~~~~~~~~~~~~~~~~
kernel/fork.c: In function 'dup_task_struct':
kernel/fork.c:845:27: warning: variable 'stack_vm_area' set but not used [-Wunused-but-set-variable]
845 | struct vm_struct *stack_vm_area;
| ^~~~~~~~~~~~~
In file included from include/linux/sched/signal.h:7,
from include/linux/sched/cputime.h:5,
from kernel/fork.c:23:
include/linux/signal.h: In function 'sigemptyset':
include/linux/signal.h:180:29: warning: this statement may fall through [-Wimplicit-fallthrough=]
180 | case 2: set->sig[1] = 0;
| ~~~~~~~~~~~~^~~
include/linux/signal.h:181:9: note: here
181 | case 1: set->sig[0] = 0;
| ^~~~
In file included from kernel/fork.c:31:
include/linux/mempolicy.h: At top level:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
In file included from arch/arm64/include/asm/atomic.h:36,
from include/linux/atomic.h:7,
from include/asm-generic/bitops/atomic.h:5,
from arch/arm64/include/asm/bitops.h:37,
from include/linux/bitops.h:19,
from include/linux/kernel.h:11,
from include/asm-generic/bug.h:18,
from arch/arm64/include/asm/bug.h:37,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from kernel/fork.c:14:
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput_async_fn' at kernel/fork.c:1104:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:82,
from include/linux/mmzone.h:9,
from include/linux/gfp.h:6:
kernel/fork.c: In function 'mmput_async_fn':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
| ^~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput_async_fn' at kernel/fork.c:1104:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/fork.c: In function 'mmput_async_fn':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
| ^~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput' at kernel/fork.c:1094:3,
inlined from 'mmput' at kernel/fork.c:1086:6:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/fork.c: In function 'mmput':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
| ^~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from '__mmput' at kernel/fork.c:1074:3,
inlined from 'mmput' at kernel/fork.c:1094:3,
inlined from 'mmput' at kernel/fork.c:1086:6:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/fork.c: In function 'mmput':
kernel/fork.c:939:44: note: object 'mmlist_lock' of size 4
939 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(mmlist_lock);
--
kernel/exit.c:1677:13: warning: no previous prototype for 'abort' [-Wmissing-prototypes]
1677 | __weak void abort(void)
| ^~~~~
In file included from kernel/exit.c:37:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
--
In file included from include/linux/shmem_fs.h:7,
from kernel/umh.c:29:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
In file included from arch/arm64/include/asm/atomic.h:36,
from include/linux/atomic.h:7,
from include/asm-generic/bitops/atomic.h:5,
from arch/arm64/include/asm/bitops.h:37,
from include/linux/bitops.h:19,
from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/module.h:10,
from kernel/umh.c:4:
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:668:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:82,
from include/linux/seqlock.h:36,
from include/linux/time.h:6,
from include/linux/stat.h:19,
from include/linux/module.h:11:
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:668:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:701:3:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'proc_cap_handler' at kernel/umh.c:701:3:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/umh.c: In function 'proc_cap_handler':
kernel/umh.c:41:24: note: object 'umh_sysctl_lock' of size 4
41 | static DEFINE_SPINLOCK(umh_sysctl_lock);
| ^~~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
--
In file included from kernel/workqueue.c:39:
>> include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
329 | static long __do_mbind(unsigned long start, unsigned long len,
| ^~~~~~~~~~
In file included from arch/arm64/include/asm/atomic.h:36,
from include/linux/atomic.h:7,
from include/asm-generic/bitops/atomic.h:5,
from arch/arm64/include/asm/bitops.h:37,
from include/linux/bitops.h:19,
from include/linux/kernel.h:11,
from kernel/workqueue.c:28:
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'pool_mayday_timeout' at kernel/workqueue.c:2003:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:82,
from include/linux/ipc.h:5,
from include/uapi/linux/sem.h:5,
from include/linux/sem.h:5,
from include/linux/sched.h:15,
from kernel/workqueue.c:29:
kernel/workqueue.c: In function 'pool_mayday_timeout':
kernel/workqueue.c:302:24: note: object 'wq_mayday_lock' of size 4
302 | static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'pool_mayday_timeout' at kernel/workqueue.c:2003:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/workqueue.c: In function 'pool_mayday_timeout':
kernel/workqueue.c:302:24: note: object 'wq_mayday_lock' of size 4
302 | static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
kernel/workqueue.c: In function 'create_worker':
kernel/workqueue.c:1887:54: warning: '%d' directive output may be truncated writing between 1 and 10 bytes into a region of size between 5 and 14 [-Wformat-truncation=]
1887 | snprintf(id_buf, sizeof(id_buf), "%d:%d%s", pool->cpu, id,
| ^~
kernel/workqueue.c:1887:50: note: directive argument in the range [0, 2147483647]
1887 | snprintf(id_buf, sizeof(id_buf), "%d:%d%s", pool->cpu, id,
| ^~~~~~~~~
kernel/workqueue.c:1887:17: note: 'snprintf' output between 4 and 23 bytes into a destination of size 16
1887 | snprintf(id_buf, sizeof(id_buf), "%d:%d%s", pool->cpu, id,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1888 | pool->attrs->nice < 0 ? "H" : "");
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock_irq' at include/linux/spinlock_api_smp.h:129:2,
inlined from 'spin_lock_irq' at include/linux/spinlock.h:354:2,
inlined from 'rescuer_thread' at kernel/workqueue.c:2461:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
kernel/workqueue.c: In function 'rescuer_thread':
kernel/workqueue.c:302:24: note: object 'wq_mayday_lock' of size 4
302 | static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock_irq' at include/linux/spinlock_api_smp.h:129:2,
inlined from 'spin_lock_irq' at include/linux/spinlock.h:354:2,
inlined from 'rescuer_thread' at kernel/workqueue.c:2461:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
..
vim +/__do_mbind +329 include/linux/mempolicy.h
328
> 329 static long __do_mbind(unsigned long start, unsigned long len,
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[PATCH OLK-6.6] [Backport] btrfs: flush delalloc workers queue before stopping cleaner kthread during unmount
by Yongjian Sun 17 Jan '25
by Yongjian Sun 17 Jan '25
17 Jan '25
From: Filipe Manana <fdmanana(a)suse.com>
mainline inclusion
from mainline-v6.12-rc3
commit f10bef73fb355e3fc85e63a50386798be68ff486
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBIAEJ
CVE: CVE-2024-57896
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
During the unmount path, at close_ctree(), we first stop the cleaner
kthread, using kthread_stop() which frees the associated task_struct, and
then stop and destroy all the work queues. However after we stopped the
cleaner we may still have a worker from the delalloc_workers queue running
inode.c:submit_compressed_extents(), which calls btrfs_add_delayed_iput(),
which in turn tries to wake up the cleaner kthread - which was already
destroyed before, resulting in a use-after-free on the task_struct.
Syzbot reported this with the following stack traces:
BUG: KASAN: slab-use-after-free in __lock_acquire+0x78/0x2100 kernel/locking/lockdep.c:5089
Read of size 8 at addr ffff8880259d2818 by task kworker/u8:3/52
CPU: 1 UID: 0 PID: 52 Comm: kworker/u8:3 Not tainted 6.13.0-rc1-syzkaller-00002-gcdd30ebb1b9f #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
Workqueue: btrfs-delalloc btrfs_work_helper
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:378 [inline]
print_report+0x169/0x550 mm/kasan/report.c:489
kasan_report+0x143/0x180 mm/kasan/report.c:602
__lock_acquire+0x78/0x2100 kernel/locking/lockdep.c:5089
lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849
__raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]
_raw_spin_lock_irqsave+0xd5/0x120 kernel/locking/spinlock.c:162
class_raw_spinlock_irqsave_constructor include/linux/spinlock.h:551 [inline]
try_to_wake_up+0xc2/0x1470 kernel/sched/core.c:4205
submit_compressed_extents+0xdf/0x16e0 fs/btrfs/inode.c:1615
run_ordered_work fs/btrfs/async-thread.c:288 [inline]
btrfs_work_helper+0x96f/0xc40 fs/btrfs/async-thread.c:324
process_one_work kernel/workqueue.c:3229 [inline]
process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3310
worker_thread+0x870/0xd30 kernel/workqueue.c:3391
kthread+0x2f0/0x390 kernel/kthread.c:389
ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
</TASK>
Allocated by task 2:
kasan_save_stack mm/kasan/common.c:47 [inline]
kasan_save_track+0x3f/0x80 mm/kasan/common.c:68
unpoison_slab_object mm/kasan/common.c:319 [inline]
__kasan_slab_alloc+0x66/0x80 mm/kasan/common.c:345
kasan_slab_alloc include/linux/kasan.h:250 [inline]
slab_post_alloc_hook mm/slub.c:4104 [inline]
slab_alloc_node mm/slub.c:4153 [inline]
kmem_cache_alloc_node_noprof+0x1d9/0x380 mm/slub.c:4205
alloc_task_struct_node kernel/fork.c:180 [inline]
dup_task_struct+0x57/0x8c0 kernel/fork.c:1113
copy_process+0x5d1/0x3d50 kernel/fork.c:2225
kernel_clone+0x223/0x870 kernel/fork.c:2807
kernel_thread+0x1bc/0x240 kernel/fork.c:2869
create_kthread kernel/kthread.c:412 [inline]
kthreadd+0x60d/0x810 kernel/kthread.c:767
ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
Freed by task 24:
kasan_save_stack mm/kasan/common.c:47 [inline]
kasan_save_track+0x3f/0x80 mm/kasan/common.c:68
kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:582
poison_slab_object mm/kasan/common.c:247 [inline]
__kasan_slab_free+0x59/0x70 mm/kasan/common.c:264
kasan_slab_free include/linux/kasan.h:233 [inline]
slab_free_hook mm/slub.c:2338 [inline]
slab_free mm/slub.c:4598 [inline]
kmem_cache_free+0x195/0x410 mm/slub.c:4700
put_task_struct include/linux/sched/task.h:144 [inline]
delayed_put_task_struct+0x125/0x300 kernel/exit.c:227
rcu_do_batch kernel/rcu/tree.c:2567 [inline]
rcu_core+0xaaa/0x17a0 kernel/rcu/tree.c:2823
handle_softirqs+0x2d4/0x9b0 kernel/softirq.c:554
run_ksoftirqd+0xca/0x130 kernel/softirq.c:943
smpboot_thread_fn+0x544/0xa30 kernel/smpboot.c:164
kthread+0x2f0/0x390 kernel/kthread.c:389
ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
Last potentially related work creation:
kasan_save_stack+0x3f/0x60 mm/kasan/common.c:47
__kasan_record_aux_stack+0xac/0xc0 mm/kasan/generic.c:544
__call_rcu_common kernel/rcu/tree.c:3086 [inline]
call_rcu+0x167/0xa70 kernel/rcu/tree.c:3190
context_switch kernel/sched/core.c:5372 [inline]
__schedule+0x1803/0x4be0 kernel/sched/core.c:6756
__schedule_loop kernel/sched/core.c:6833 [inline]
schedule+0x14b/0x320 kernel/sched/core.c:6848
schedule_timeout+0xb0/0x290 kernel/time/sleep_timeout.c:75
do_wait_for_common kernel/sched/completion.c:95 [inline]
__wait_for_common kernel/sched/completion.c:116 [inline]
wait_for_common kernel/sched/completion.c:127 [inline]
wait_for_completion+0x355/0x620 kernel/sched/completion.c:148
kthread_stop+0x19e/0x640 kernel/kthread.c:712
close_ctree+0x524/0xd60 fs/btrfs/disk-io.c:4328
generic_shutdown_super+0x139/0x2d0 fs/super.c:642
kill_anon_super+0x3b/0x70 fs/super.c:1237
btrfs_kill_super+0x41/0x50 fs/btrfs/super.c:2112
deactivate_locked_super+0xc4/0x130 fs/super.c:473
cleanup_mnt+0x41f/0x4b0 fs/namespace.c:1373
task_work_run+0x24f/0x310 kernel/task_work.c:239
ptrace_notify+0x2d2/0x380 kernel/signal.c:2503
ptrace_report_syscall include/linux/ptrace.h:415 [inline]
ptrace_report_syscall_exit include/linux/ptrace.h:477 [inline]
syscall_exit_work+0xc7/0x1d0 kernel/entry/common.c:173
syscall_exit_to_user_mode_prepare kernel/entry/common.c:200 [inline]
__syscall_exit_to_user_mode_work kernel/entry/common.c:205 [inline]
syscall_exit_to_user_mode+0x24a/0x340 kernel/entry/common.c:218
do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
entry_SYSCALL_64_after_hwframe+0x77/0x7f
The buggy address belongs to the object at ffff8880259d1e00
which belongs to the cache task_struct of size 7424
The buggy address is located 2584 bytes inside of
freed 7424-byte region [ffff8880259d1e00, ffff8880259d3b00)
The buggy address belongs to the physical page:
page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x259d0
head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0
memcg:ffff88802f4b56c1
flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff)
page_type: f5(slab)
raw: 00fff00000000040 ffff88801bafe500 dead000000000100 dead000000000122
raw: 0000000000000000 0000000000040004 00000001f5000000 ffff88802f4b56c1
head: 00fff00000000040 ffff88801bafe500 dead000000000100 dead000000000122
head: 0000000000000000 0000000000040004 00000001f5000000 ffff88802f4b56c1
head: 00fff00000000003 ffffea0000967401 ffffffffffffffff 0000000000000000
head: 0000000000000008 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 3, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 12, tgid 12 (kworker/u8:1), ts 7328037942, free_ts 0
set_page_owner include/linux/page_owner.h:32 [inline]
post_alloc_hook+0x1f3/0x230 mm/page_alloc.c:1556
prep_new_page mm/page_alloc.c:1564 [inline]
get_page_from_freelist+0x3651/0x37a0 mm/page_alloc.c:3474
__alloc_pages_noprof+0x292/0x710 mm/page_alloc.c:4751
alloc_pages_mpol_noprof+0x3e8/0x680 mm/mempolicy.c:2265
alloc_slab_page+0x6a/0x140 mm/slub.c:2408
allocate_slab+0x5a/0x2f0 mm/slub.c:2574
new_slab mm/slub.c:2627 [inline]
___slab_alloc+0xcd1/0x14b0 mm/slub.c:3815
__slab_alloc+0x58/0xa0 mm/slub.c:3905
__slab_alloc_node mm/slub.c:3980 [inline]
slab_alloc_node mm/slub.c:4141 [inline]
kmem_cache_alloc_node_noprof+0x269/0x380 mm/slub.c:4205
alloc_task_struct_node kernel/fork.c:180 [inline]
dup_task_struct+0x57/0x8c0 kernel/fork.c:1113
copy_process+0x5d1/0x3d50 kernel/fork.c:2225
kernel_clone+0x223/0x870 kernel/fork.c:2807
user_mode_thread+0x132/0x1a0 kernel/fork.c:2885
call_usermodehelper_exec_work+0x5c/0x230 kernel/umh.c:171
process_one_work kernel/workqueue.c:3229 [inline]
process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3310
worker_thread+0x870/0xd30 kernel/workqueue.c:3391
page_owner free stack trace missing
Memory state around the buggy address:
ffff8880259d2700: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff8880259d2780: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff8880259d2800: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
^
ffff8880259d2880: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff8880259d2900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
==================================================================
Fix this by flushing the delalloc workers queue before stopping the
cleaner kthread.
Reported-by: syzbot+b7cf50a0c173770dcb14(a)syzkaller.appspotmail.com
Link: https://lore.kernel.org/linux-btrfs/674ed7e8.050a0220.48a03.0031.GAE@google…
Reviewed-by: Qu Wenruo <wqu(a)suse.com>
Signed-off-by: Filipe Manana <fdmanana(a)suse.com>
Reviewed-by: David Sterba <dsterba(a)suse.com>
Signed-off-by: David Sterba <dsterba(a)suse.com>
Signed-off-by: Yongjian Sun <sunyongjian1(a)huawei.com>
---
fs/btrfs/disk-io.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 8ec411eb9c9b..967c6b5dd0a4 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -4323,6 +4323,15 @@ void __cold close_ctree(struct btrfs_fs_info *fs_info)
* already the cleaner, but below we run all pending delayed iputs.
*/
btrfs_flush_workqueue(fs_info->fixup_workers);
+ /*
+ * Similar case here, we have to wait for delalloc workers before we
+ * proceed below and stop the cleaner kthread, otherwise we trigger a
+ * use-after-tree on the cleaner kthread task_struct when a delalloc
+ * worker running submit_compressed_extents() adds a delayed iput, which
+ * does a wake up on the cleaner kthread, which was already freed below
+ * when we call kthread_stop().
+ */
+ btrfs_flush_workqueue(fs_info->delalloc_workers);
/*
* After we parked the cleaner kthread, ordered extents may have
--
2.39.2
2
1

[openeuler:OLK-5.10 2707/2707] include/linux/lsm_hook_defs.h:162:18: warning: 'file_ioctl_compat_default' defined but not used
by kernel test robot 17 Jan '25
by kernel test robot 17 Jan '25
17 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 08e54ea5e4a4948874ca30d91be3e5cca4ecbeec
commit: 294c837d37ed484f656397130bb059ee741a4ca4 [2707/2707] lsm: new security_file_ioctl_compat() hook
config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20250117/202501172051.HxlkrA5w-lkp@…)
compiler: gcc-11 (Debian 11.3.0-12) 11.3.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250117/202501172051.HxlkrA5w-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/202501172051.HxlkrA5w-lkp@intel.com/
All warnings (new ones prefixed by >>):
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:177:1: note: in expansion of macro 'LSM_HOOK'
177 | LSM_HOOK(int, 0, task_alloc, struct task_struct *task,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:176:18: warning: 'file_open_default' defined but not used [-Wunused-const-variable=]
176 | LSM_HOOK(int, 0, file_open, struct file *file)
| ^~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:176:1: note: in expansion of macro 'LSM_HOOK'
176 | LSM_HOOK(int, 0, file_open, struct file *file)
| ^~~~~~~~
include/linux/lsm_hook_defs.h:175:18: warning: 'file_receive_default' defined but not used [-Wunused-const-variable=]
175 | LSM_HOOK(int, 0, file_receive, struct file *file)
| ^~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:175:1: note: in expansion of macro 'LSM_HOOK'
175 | LSM_HOOK(int, 0, file_receive, struct file *file)
| ^~~~~~~~
include/linux/lsm_hook_defs.h:173:18: warning: 'file_send_sigiotask_default' defined but not used [-Wunused-const-variable=]
173 | LSM_HOOK(int, 0, file_send_sigiotask, struct task_struct *tsk,
| ^~~~~~~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:173:1: note: in expansion of macro 'LSM_HOOK'
173 | LSM_HOOK(int, 0, file_send_sigiotask, struct task_struct *tsk,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:170:18: warning: 'file_fcntl_default' defined but not used [-Wunused-const-variable=]
170 | LSM_HOOK(int, 0, file_fcntl, struct file *file, unsigned int cmd,
| ^~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:170:1: note: in expansion of macro 'LSM_HOOK'
170 | LSM_HOOK(int, 0, file_fcntl, struct file *file, unsigned int cmd,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:169:18: warning: 'file_lock_default' defined but not used [-Wunused-const-variable=]
169 | LSM_HOOK(int, 0, file_lock, struct file *file, unsigned int cmd)
| ^~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:169:1: note: in expansion of macro 'LSM_HOOK'
169 | LSM_HOOK(int, 0, file_lock, struct file *file, unsigned int cmd)
| ^~~~~~~~
include/linux/lsm_hook_defs.h:167:18: warning: 'file_mprotect_default' defined but not used [-Wunused-const-variable=]
167 | LSM_HOOK(int, 0, file_mprotect, struct vm_area_struct *vma,
| ^~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:167:1: note: in expansion of macro 'LSM_HOOK'
167 | LSM_HOOK(int, 0, file_mprotect, struct vm_area_struct *vma,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:165:18: warning: 'mmap_file_default' defined but not used [-Wunused-const-variable=]
165 | LSM_HOOK(int, 0, mmap_file, struct file *file, unsigned long reqprot,
| ^~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:165:1: note: in expansion of macro 'LSM_HOOK'
165 | LSM_HOOK(int, 0, mmap_file, struct file *file, unsigned long reqprot,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:164:18: warning: 'mmap_addr_default' defined but not used [-Wunused-const-variable=]
164 | LSM_HOOK(int, 0, mmap_addr, unsigned long addr)
| ^~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:164:1: note: in expansion of macro 'LSM_HOOK'
164 | LSM_HOOK(int, 0, mmap_addr, unsigned long addr)
| ^~~~~~~~
>> include/linux/lsm_hook_defs.h:162:18: warning: 'file_ioctl_compat_default' defined but not used [-Wunused-const-variable=]
162 | LSM_HOOK(int, 0, file_ioctl_compat, struct file *file, unsigned int cmd,
| ^~~~~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:162:1: note: in expansion of macro 'LSM_HOOK'
162 | LSM_HOOK(int, 0, file_ioctl_compat, struct file *file, unsigned int cmd,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:160:18: warning: 'file_ioctl_default' defined but not used [-Wunused-const-variable=]
160 | LSM_HOOK(int, 0, file_ioctl, struct file *file, unsigned int cmd,
| ^~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:160:1: note: in expansion of macro 'LSM_HOOK'
160 | LSM_HOOK(int, 0, file_ioctl, struct file *file, unsigned int cmd,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:158:18: warning: 'file_alloc_security_default' defined but not used [-Wunused-const-variable=]
158 | LSM_HOOK(int, 0, file_alloc_security, struct file *file)
| ^~~~~~~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:158:1: note: in expansion of macro 'LSM_HOOK'
158 | LSM_HOOK(int, 0, file_alloc_security, struct file *file)
| ^~~~~~~~
include/linux/lsm_hook_defs.h:157:18: warning: 'file_permission_default' defined but not used [-Wunused-const-variable=]
157 | LSM_HOOK(int, 0, file_permission, struct file *file, int mask)
| ^~~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:157:1: note: in expansion of macro 'LSM_HOOK'
157 | LSM_HOOK(int, 0, file_permission, struct file *file, int mask)
| ^~~~~~~~
include/linux/lsm_hook_defs.h:155:18: warning: 'kernfs_init_security_default' defined but not used [-Wunused-const-variable=]
155 | LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,
| ^~~~~~~~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:155:1: note: in expansion of macro 'LSM_HOOK'
155 | LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:153:18: warning: 'inode_copy_up_default' defined but not used [-Wunused-const-variable=]
153 | LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)
| ^~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:153:1: note: in expansion of macro 'LSM_HOOK'
153 | LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)
| ^~~~~~~~
include/linux/lsm_hook_defs.h:150:18: warning: 'inode_listsecurity_default' defined but not used [-Wunused-const-variable=]
150 | LSM_HOOK(int, 0, inode_listsecurity, struct inode *inode, char *buffer,
| ^~~~~~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:150:1: note: in expansion of macro 'LSM_HOOK'
150 | LSM_HOOK(int, 0, inode_listsecurity, struct inode *inode, char *buffer,
| ^~~~~~~~
include/linux/lsm_hook_defs.h:145:18: warning: 'inode_killpriv_default' defined but not used [-Wunused-const-variable=]
145 | LSM_HOOK(int, 0, inode_killpriv, struct dentry *dentry)
| ^~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
| ^~~~
security/security.c:712:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
712 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
| ^~~~~~~~~~~~~~~~~~~~~~~~
include/linux/lsm_hook_defs.h:145:1: note: in expansion of macro 'LSM_HOOK'
145 | LSM_HOOK(int, 0, inode_killpriv, struct dentry *dentry)
| ^~~~~~~~
include/linux/lsm_hook_defs.h:144:18: warning: 'inode_need_killpriv_default' defined but not used [-Wunused-const-variable=]
144 | LSM_HOOK(int, 0, inode_need_killpriv, struct dentry *dentry)
| ^~~~~~~~~~~~~~~~~~~
security/security.c:707:32: note: in definition of macro 'LSM_RET_DEFAULT'
707 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
vim +/file_ioctl_compat_default +162 include/linux/lsm_hook_defs.h
108
109 /* Needed for inode based security check */
110 LSM_HOOK(int, 0, path_notify, const struct path *path, u64 mask,
111 unsigned int obj_type)
112 LSM_HOOK(int, 0, inode_alloc_security, struct inode *inode)
113 LSM_HOOK(void, LSM_RET_VOID, inode_free_security, struct inode *inode)
114 LSM_HOOK(int, 0, inode_init_security, struct inode *inode,
115 struct inode *dir, const struct qstr *qstr, const char **name,
116 void **value, size_t *len)
117 LSM_HOOK(int, 0, inode_create, struct inode *dir, struct dentry *dentry,
118 umode_t mode)
119 LSM_HOOK(int, 0, inode_link, struct dentry *old_dentry, struct inode *dir,
120 struct dentry *new_dentry)
121 LSM_HOOK(int, 0, inode_unlink, struct inode *dir, struct dentry *dentry)
122 LSM_HOOK(int, 0, inode_symlink, struct inode *dir, struct dentry *dentry,
123 const char *old_name)
124 LSM_HOOK(int, 0, inode_mkdir, struct inode *dir, struct dentry *dentry,
125 umode_t mode)
126 LSM_HOOK(int, 0, inode_rmdir, struct inode *dir, struct dentry *dentry)
127 LSM_HOOK(int, 0, inode_mknod, struct inode *dir, struct dentry *dentry,
128 umode_t mode, dev_t dev)
129 LSM_HOOK(int, 0, inode_rename, struct inode *old_dir, struct dentry *old_dentry,
130 struct inode *new_dir, struct dentry *new_dentry)
131 LSM_HOOK(int, 0, inode_readlink, struct dentry *dentry)
132 LSM_HOOK(int, 0, inode_follow_link, struct dentry *dentry, struct inode *inode,
133 bool rcu)
134 LSM_HOOK(int, 0, inode_permission, struct inode *inode, int mask)
135 LSM_HOOK(int, 0, inode_setattr, struct dentry *dentry, struct iattr *attr)
136 LSM_HOOK(int, 0, inode_getattr, const struct path *path)
137 LSM_HOOK(int, 0, inode_setxattr, struct dentry *dentry, const char *name,
138 const void *value, size_t size, int flags)
139 LSM_HOOK(void, LSM_RET_VOID, inode_post_setxattr, struct dentry *dentry,
140 const char *name, const void *value, size_t size, int flags)
141 LSM_HOOK(int, 0, inode_getxattr, struct dentry *dentry, const char *name)
142 LSM_HOOK(int, 0, inode_listxattr, struct dentry *dentry)
143 LSM_HOOK(int, 0, inode_removexattr, struct dentry *dentry, const char *name)
144 LSM_HOOK(int, 0, inode_need_killpriv, struct dentry *dentry)
145 LSM_HOOK(int, 0, inode_killpriv, struct dentry *dentry)
146 LSM_HOOK(int, -EOPNOTSUPP, inode_getsecurity, struct inode *inode,
147 const char *name, void **buffer, bool alloc)
148 LSM_HOOK(int, -EOPNOTSUPP, inode_setsecurity, struct inode *inode,
149 const char *name, const void *value, size_t size, int flags)
150 LSM_HOOK(int, 0, inode_listsecurity, struct inode *inode, char *buffer,
151 size_t buffer_size)
152 LSM_HOOK(void, LSM_RET_VOID, inode_getsecid, struct inode *inode, u32 *secid)
153 LSM_HOOK(int, 0, inode_copy_up, struct dentry *src, struct cred **new)
154 LSM_HOOK(int, -EOPNOTSUPP, inode_copy_up_xattr, const char *name)
155 LSM_HOOK(int, 0, kernfs_init_security, struct kernfs_node *kn_dir,
156 struct kernfs_node *kn)
157 LSM_HOOK(int, 0, file_permission, struct file *file, int mask)
158 LSM_HOOK(int, 0, file_alloc_security, struct file *file)
159 LSM_HOOK(void, LSM_RET_VOID, file_free_security, struct file *file)
160 LSM_HOOK(int, 0, file_ioctl, struct file *file, unsigned int cmd,
161 unsigned long arg)
> 162 LSM_HOOK(int, 0, file_ioctl_compat, struct file *file, unsigned int cmd,
163 unsigned long arg)
164 LSM_HOOK(int, 0, mmap_addr, unsigned long addr)
165 LSM_HOOK(int, 0, mmap_file, struct file *file, unsigned long reqprot,
166 unsigned long prot, unsigned long flags)
167 LSM_HOOK(int, 0, file_mprotect, struct vm_area_struct *vma,
168 unsigned long reqprot, unsigned long prot)
169 LSM_HOOK(int, 0, file_lock, struct file *file, unsigned int cmd)
170 LSM_HOOK(int, 0, file_fcntl, struct file *file, unsigned int cmd,
171 unsigned long arg)
172 LSM_HOOK(void, LSM_RET_VOID, file_set_fowner, struct file *file)
173 LSM_HOOK(int, 0, file_send_sigiotask, struct task_struct *tsk,
174 struct fown_struct *fown, int sig)
175 LSM_HOOK(int, 0, file_receive, struct file *file)
176 LSM_HOOK(int, 0, file_open, struct file *file)
177 LSM_HOOK(int, 0, task_alloc, struct task_struct *task,
178 unsigned long clone_flags)
179 LSM_HOOK(void, LSM_RET_VOID, task_free, struct task_struct *task)
180 LSM_HOOK(int, 0, cred_alloc_blank, struct cred *cred, gfp_t gfp)
181 LSM_HOOK(void, LSM_RET_VOID, cred_free, struct cred *cred)
182 LSM_HOOK(int, 0, cred_prepare, struct cred *new, const struct cred *old,
183 gfp_t gfp)
184 LSM_HOOK(void, LSM_RET_VOID, cred_transfer, struct cred *new,
185 const struct cred *old)
186 LSM_HOOK(void, LSM_RET_VOID, cred_getsecid, const struct cred *c, u32 *secid)
187 LSM_HOOK(int, 0, kernel_act_as, struct cred *new, u32 secid)
188 LSM_HOOK(int, 0, kernel_create_files_as, struct cred *new, struct inode *inode)
189 LSM_HOOK(int, 0, kernel_module_request, char *kmod_name)
190 LSM_HOOK(int, 0, kernel_load_data, enum kernel_load_data_id id, bool contents)
191 LSM_HOOK(int, 0, kernel_post_load_data, char *buf, loff_t size,
192 enum kernel_load_data_id id, char *description)
193 LSM_HOOK(int, 0, kernel_read_file, struct file *file,
194 enum kernel_read_file_id id, bool contents)
195 LSM_HOOK(int, 0, kernel_post_read_file, struct file *file, char *buf,
196 loff_t size, enum kernel_read_file_id id)
197 LSM_HOOK(int, 0, task_fix_setuid, struct cred *new, const struct cred *old,
198 int flags)
199 LSM_HOOK(int, 0, task_fix_setgid, struct cred *new, const struct cred * old,
200 int flags)
201 LSM_HOOK(int, 0, task_setpgid, struct task_struct *p, pid_t pgid)
202 LSM_HOOK(int, 0, task_getpgid, struct task_struct *p)
203 LSM_HOOK(int, 0, task_getsid, struct task_struct *p)
204 LSM_HOOK(void, LSM_RET_VOID, task_getsecid, struct task_struct *p, u32 *secid)
205 LSM_HOOK(int, 0, task_setnice, struct task_struct *p, int nice)
206 LSM_HOOK(int, 0, task_setioprio, struct task_struct *p, int ioprio)
207 LSM_HOOK(int, 0, task_getioprio, struct task_struct *p)
208 LSM_HOOK(int, 0, task_prlimit, const struct cred *cred,
209 const struct cred *tcred, unsigned int flags)
210 LSM_HOOK(int, 0, task_setrlimit, struct task_struct *p, unsigned int resource,
211 struct rlimit *new_rlim)
212 LSM_HOOK(int, 0, task_setscheduler, struct task_struct *p)
213 LSM_HOOK(int, 0, task_getscheduler, struct task_struct *p)
214 LSM_HOOK(int, 0, task_movememory, struct task_struct *p)
215 LSM_HOOK(int, 0, task_kill, struct task_struct *p, struct kernel_siginfo *info,
216 int sig, const struct cred *cred)
217 LSM_HOOK(int, -ENOSYS, task_prctl, int option, unsigned long arg2,
218 unsigned long arg3, unsigned long arg4, unsigned long arg5)
219 LSM_HOOK(void, LSM_RET_VOID, task_to_inode, struct task_struct *p,
220 struct inode *inode)
221 LSM_HOOK(int, 0, ipc_permission, struct kern_ipc_perm *ipcp, short flag)
222 LSM_HOOK(void, LSM_RET_VOID, ipc_getsecid, struct kern_ipc_perm *ipcp,
223 u32 *secid)
224 LSM_HOOK(int, 0, msg_msg_alloc_security, struct msg_msg *msg)
225 LSM_HOOK(void, LSM_RET_VOID, msg_msg_free_security, struct msg_msg *msg)
226 LSM_HOOK(int, 0, msg_queue_alloc_security, struct kern_ipc_perm *perm)
227 LSM_HOOK(void, LSM_RET_VOID, msg_queue_free_security,
228 struct kern_ipc_perm *perm)
229 LSM_HOOK(int, 0, msg_queue_associate, struct kern_ipc_perm *perm, int msqflg)
230 LSM_HOOK(int, 0, msg_queue_msgctl, struct kern_ipc_perm *perm, int cmd)
231 LSM_HOOK(int, 0, msg_queue_msgsnd, struct kern_ipc_perm *perm,
232 struct msg_msg *msg, int msqflg)
233 LSM_HOOK(int, 0, msg_queue_msgrcv, struct kern_ipc_perm *perm,
234 struct msg_msg *msg, struct task_struct *target, long type, int mode)
235 LSM_HOOK(int, 0, shm_alloc_security, struct kern_ipc_perm *perm)
236 LSM_HOOK(void, LSM_RET_VOID, shm_free_security, struct kern_ipc_perm *perm)
237 LSM_HOOK(int, 0, shm_associate, struct kern_ipc_perm *perm, int shmflg)
238 LSM_HOOK(int, 0, shm_shmctl, struct kern_ipc_perm *perm, int cmd)
239 LSM_HOOK(int, 0, shm_shmat, struct kern_ipc_perm *perm, char __user *shmaddr,
240 int shmflg)
241 LSM_HOOK(int, 0, sem_alloc_security, struct kern_ipc_perm *perm)
242 LSM_HOOK(void, LSM_RET_VOID, sem_free_security, struct kern_ipc_perm *perm)
243 LSM_HOOK(int, 0, sem_associate, struct kern_ipc_perm *perm, int semflg)
244 LSM_HOOK(int, 0, sem_semctl, struct kern_ipc_perm *perm, int cmd)
245 LSM_HOOK(int, 0, sem_semop, struct kern_ipc_perm *perm, struct sembuf *sops,
246 unsigned nsops, int alter)
247 LSM_HOOK(int, 0, netlink_send, struct sock *sk, struct sk_buff *skb)
248 LSM_HOOK(void, LSM_RET_VOID, d_instantiate, struct dentry *dentry,
249 struct inode *inode)
250 LSM_HOOK(int, -EINVAL, getprocattr, struct task_struct *p, char *name,
251 char **value)
252 LSM_HOOK(int, -EINVAL, setprocattr, const char *name, void *value, size_t size)
253 LSM_HOOK(int, 0, ismaclabel, const char *name)
254 LSM_HOOK(int, -EOPNOTSUPP, secid_to_secctx, u32 secid, char **secdata,
255 u32 *seclen)
256 LSM_HOOK(int, 0, secctx_to_secid, const char *secdata, u32 seclen, u32 *secid)
257 LSM_HOOK(void, LSM_RET_VOID, release_secctx, char *secdata, u32 seclen)
258 LSM_HOOK(void, LSM_RET_VOID, inode_invalidate_secctx, struct inode *inode)
259 LSM_HOOK(int, 0, inode_notifysecctx, struct inode *inode, void *ctx, u32 ctxlen)
260 LSM_HOOK(int, 0, inode_setsecctx, struct dentry *dentry, void *ctx, u32 ctxlen)
261 LSM_HOOK(int, -EOPNOTSUPP, inode_getsecctx, struct inode *inode, void **ctx,
262 u32 *ctxlen)
263
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0