Kernel
Threads by month
- ----- 2025 -----
- April
- 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
April 2025
- 40 participants
- 160 discussions

[openeuler:OLK-6.6 2117/2117] kernel/sched/fair.c:9005:51: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot 11 Apr '25
by kernel test robot 11 Apr '25
11 Apr '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 62b846e657553d00552c1c71b6ecc26017eb1a9a
commit: c52c17a85f1fa9cde2bcb15359096634cfd9eb7c [2117/2117] sched: Add tracepoint for qos smt expeller
config: loongarch-randconfig-r121-20250411 (https://download.01.org/0day-ci/archive/20250411/202504111253.jKd4DxgW-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce: (https://download.01.org/0day-ci/archive/20250411/202504111253.jKd4DxgW-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/202504111253.jKd4DxgW-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/fair.c:7685:9: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:7685:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:7685:9: sparse: expected void *ptr
kernel/sched/fair.c:7685:9: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:7685:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:7685:9: sparse: expected void *ptr
kernel/sched/fair.c:7685:9: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:1283:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1283:34: sparse: expected struct sched_entity const *se
kernel/sched/fair.c:1283:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:13203:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:13203:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:13203:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:5161:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5161:25: sparse: struct sparsemask [noderef] __rcu *
kernel/sched/fair.c:5161:25: sparse: struct sparsemask *
kernel/sched/fair.c:5178:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5178:25: sparse: struct sparsemask [noderef] __rcu *
kernel/sched/fair.c:5178:25: sparse: struct sparsemask *
kernel/sched/fair.c:13559:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:13559:25: sparse: struct sparsemask [noderef] __rcu *
kernel/sched/fair.c:13559:25: sparse: struct sparsemask *
kernel/sched/fair.c:6012:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:6012:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:6012:22: sparse: struct task_struct *
kernel/sched/fair.c:6754:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:6754:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:6754:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:7489:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7489:32: sparse: expected void *ptr
kernel/sched/fair.c:7489:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7489:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7489:32: sparse: expected void *ptr
kernel/sched/fair.c:7489:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7489:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7489:32: sparse: expected void *ptr
kernel/sched/fair.c:7489:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7489:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7489:32: sparse: expected void *ptr
kernel/sched/fair.c:7489:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7592:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7592:16: sparse: expected void *ptr
kernel/sched/fair.c:7592:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7592:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7592:16: sparse: expected void *ptr
kernel/sched/fair.c:7592:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7592:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7592:16: sparse: expected void *ptr
kernel/sched/fair.c:7592:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7592:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7592:16: sparse: expected void *ptr
kernel/sched/fair.c:7592:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:8097:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:8097:32: sparse: expected void *ptr
kernel/sched/fair.c:8097:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:8097:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:8097:32: sparse: expected void *ptr
kernel/sched/fair.c:8097:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:8097:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:8097:32: sparse: expected void *ptr
kernel/sched/fair.c:8097:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:8097:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:8097:32: sparse: expected void *ptr
kernel/sched/fair.c:8097:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:8121:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8121:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:8121:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8436:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8436:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:8436:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8548:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8548:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8548:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:8774:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:8774:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:8774:22: sparse: struct task_struct *
kernel/sched/fair.c:8839:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8839:16: sparse: expected void *ptr
kernel/sched/fair.c:8839:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8839:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8839:16: sparse: expected void *ptr
kernel/sched/fair.c:8839:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8839:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8839:16: sparse: expected void *ptr
kernel/sched/fair.c:8839:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8839:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8839:16: sparse: expected void *ptr
kernel/sched/fair.c:8839:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8896:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8896:13: sparse: expected void *ptr
kernel/sched/fair.c:8896:13: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8896:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8896:13: sparse: expected void *ptr
kernel/sched/fair.c:8896:13: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8896:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8896:13: sparse: expected void *ptr
kernel/sched/fair.c:8896:13: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8896:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8896:13: sparse: expected void *ptr
kernel/sched/fair.c:8896:13: sparse: got int [noderef] __percpu *
>> kernel/sched/fair.c:9005:51: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *sibling_p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:9005:51: sparse: expected struct task_struct *sibling_p
kernel/sched/fair.c:9005:51: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:9010:30: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:9010:30: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:9010:30: sparse: struct task_struct *
kernel/sched/fair.c:9084:48: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:9332:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:10403:40: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *child @@ got struct sched_domain [noderef] __rcu *child @@
kernel/sched/fair.c:11040:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:11040:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:11040:22: sparse: struct task_struct *
kernel/sched/fair.c:12481:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12481:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12481:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12065:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12065:36: sparse: expected void *ptr
kernel/sched/fair.c:12065:36: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12065:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12065:36: sparse: expected void *ptr
kernel/sched/fair.c:12065:36: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12065:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12065:36: sparse: expected void *ptr
kernel/sched/fair.c:12065:36: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12065:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12065:36: sparse: expected void *ptr
kernel/sched/fair.c:12065:36: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12138:44: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct sched_domain *sd_parent @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12138:44: sparse: expected struct sched_domain *sd_parent
kernel/sched/fair.c:12138:44: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:12142:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12142:32: sparse: expected void *ptr
kernel/sched/fair.c:12142:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12142:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12142:32: sparse: expected void *ptr
kernel/sched/fair.c:12142:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12142:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12142:32: sparse: expected void *ptr
kernel/sched/fair.c:12142:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12142:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:12142:32: sparse: expected void *ptr
kernel/sched/fair.c:12142:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:12577:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12577:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12577:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c: note: in included file:
kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2174:25: sparse: struct task_struct *
kernel/sched/sched.h:2338:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2338:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2338:9: sparse: struct task_struct *
kernel/sched/sched.h:2338:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2338:9: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2338:9: sparse: struct task_struct *
kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2174:25: sparse: struct task_struct *
kernel/sched/sched.h:2174:25: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/sched.h:2174:25: sparse: struct task_struct [noderef] __rcu *
kernel/sched/sched.h:2174:25: sparse: struct task_struct *
vim +9005 kernel/sched/fair.c
8984
8985 static bool _qos_smt_check_need_resched(int this_cpu, struct rq *rq)
8986 {
8987 int cpu;
8988
8989 if (!sched_smt_active())
8990 return false;
8991
8992 for_each_cpu(cpu, cpu_smt_mask(this_cpu)) {
8993 if (cpu == this_cpu)
8994 continue;
8995
8996 /*
8997 * There are two cases rely on the set need_resched to drive away
8998 * offline task:
8999 * a) The qos_smt_status of siblings cpu is online, the task of curr cpu is offline;
9000 * b) The qos_smt_status of siblings cpu is offline, the task of curr cpu is idle,
9001 * and current cpu only has SCHED_IDLE tasks enqueued.
9002 */
9003 if (per_cpu(qos_smt_status, cpu) == QOS_LEVEL_ONLINE &&
9004 task_group(current)->qos_level < QOS_LEVEL_ONLINE) {
> 9005 trace_sched_qos_smt_expel(cpu_curr(cpu), per_cpu(qos_smt_status, cpu));
9006 return true;
9007 }
9008
9009 if (per_cpu(qos_smt_status, cpu) == QOS_LEVEL_OFFLINE &&
9010 rq->curr == rq->idle && sched_idle_cpu(this_cpu)) {
9011 trace_sched_qos_smt_expel(cpu_curr(cpu), per_cpu(qos_smt_status, cpu));
9012 return true;
9013 }
9014 }
9015
9016 return false;
9017 }
9018
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6] BUILD REGRESSION 62b846e657553d00552c1c71b6ecc26017eb1a9a
by kernel test robot 11 Apr '25
by kernel test robot 11 Apr '25
11 Apr '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: 62b846e657553d00552c1c71b6ecc26017eb1a9a !15611 Minimize xa_node allocation during xarry split
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202503151158.xNxBbX1r-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503182233.88LCSaAj-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503200858.XSvAPfQM-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503201027.i8HE43EJ-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503220823.mG13Rroz-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503220924.Uw2cwpZV-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503231106.ZSS1yt6E-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503231154.d6j01UpO-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503280313.olFyEFIT-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202503290855.eVbc4pVd-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202504012026.kzT6d2HZ-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202504101403.RKyoTq9Z-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202504101645.mRh7GNFb-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202504110226.FM6zQ8DE-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202504110741.FCO7H6rm-lkp@intel.com
https://lore.kernel.org/oe-kbuild/202503271832.WycjTkRa-lkp@intel.com
aarch64-linux-ld: Unexpected GOT/PLT entries detected!
aarch64-linux-ld: Unexpected run-time procedure linkages detected!
arch/arm64/kvm/virtcca_cvm.c:819:5: warning: no previous prototype for function 'virtcca_get_tmi_version' [-Wmissing-prototypes]
arch/loongarch/mm/cache.c:69:29: warning: variable 'way_size' set but not used [-Wunused-but-set-variable]
clang: warning: -Wl,-soname=linux-ilp32-vdso.so.1: 'linker' input unused [-Wunused-command-line-argument]
drivers/coda/coda_pci.c:228: warning: Excess function parameter 'pdev' description in 'virtcca_pci_get_rom_size'
drivers/coda/coda_pci.c:228: warning: Function parameter or member 'p' not described in 'virtcca_pci_get_rom_size'
drivers/scsi/linkdata/ps3stor/./linux/ps3_base.c:545:5: error: no previous prototype for 'ps3_pci_init' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_base.c:899:5: error: no previous prototype for 'ps3_pci_init_complete' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_base.c:945:6: error: no previous prototype for 'ps3_pci_init_complete_exit' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_cli.c:108:9: error: function 'ps3stor_cli_printf' might be a candidate for 'gnu_printf' format attribute [-Werror=suggest-attribute=format]
drivers/scsi/linkdata/ps3stor/./linux/ps3_cli_debug.c:1059:5: error: no previous prototype for 'ps3_dump_context_show' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:159:5: error: no previous prototype for 'ps3_dump_file_write' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:200:5: error: no previous prototype for 'ps3_dump_file_close' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:28:5: error: no previous prototype for 'ps3_dump_local_time' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:50:5: error: no previous prototype for 'ps3_dump_filename_build' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:76:5: error: no previous prototype for 'ps3_dump_file_open' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_complete.c:131:6: error: no previous prototype for 'ps3_trigger_irq_poll' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_complete.c:243:5: error: no previous prototype for 'ps3_resp_status_convert' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_statistics.c:403:6: error: no previous prototype for 'ps3_io_recv_ok_stat_inc' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_statistics.c:85:6: error: no previous prototype for 'ps3_cmd_stat_content_clear' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_debug.c:883:5: error: no previous prototype for 'ps3_dump_dir_length' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_device_manager.c:1581:5: error: no previous prototype for 'ps3_scsi_private_init_pd' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_device_manager.c:1663:5: error: no previous prototype for 'ps3_scsi_private_init_vd' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_device_manager_sas.c:1632:5: error: no previous prototype for 'ps3_sas_expander_phys_refresh' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_instance_manager.c:669:60: error: 'snprintf' output may be truncated before the last format character [-Werror=format-truncation=]
drivers/scsi/linkdata/ps3stor/ps3_ioc_adp.c:147:6: error: no previous prototype for 'ps3_ioc_resource_prepare_hba' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioc_adp.c:36:6: error: no previous prototype for 'ps3_ioc_resource_prepare_switch' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioc_adp.c:88:6: error: no previous prototype for 'ps3_ioc_resource_prepare_raid' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioc_manager.c:307:5: error: no previous prototype for 'ps3_hard_reset_to_ready' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioctl.c:785:6: error: no previous prototype for 'ps3_clean_mgr_cmd' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:21:27: error: 'PS3_INTERRUPT_CMD_DISABLE_ALL_MASK' defined but not used [-Werror=unused-const-variable=]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:22:27: error: 'PS3_INTERRUPT_CMD_ENABLE_MSIX' defined but not used [-Werror=unused-const-variable=]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:23:27: error: 'PS3_INTERRUPT_MASK_DISABLE' defined but not used [-Werror=unused-const-variable=]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:24:27: error: 'PS3_INTERRUPT_STATUS_EXIST_IRQ' defined but not used [-Werror=unused-const-variable=]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:25:27: error: 'PS3_INTERRUPT_CLEAR_IRQ' defined but not used [-Werror=unused-const-variable=]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:27:27: error: 'PS3_SSD_IOPS_MSIX_VECTORS' defined but not used [-Werror=unused-const-variable=]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:28:27: error: 'PS3_HDD_IOPS_MSIX_VECTORS' defined but not used [-Werror=unused-const-variable=]
drivers/scsi/linkdata/ps3stor/ps3_module_para.c:609:14: error: no previous prototype for 'ps3_cli_ver_query' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:1058:6: error: no previous prototype for 'ps3_qos_pd_waitq_ratio_update' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2019:15: error: no previous prototype for 'ps3_hba_qos_decision' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2040:6: error: no previous prototype for 'ps3_hba_qos_waitq_notify' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2100:6: error: no previous prototype for 'ps3_cmd_waitq_abort' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:211:1: error: no previous prototype for 'ps3_qos_cmd_waitq_get' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2463:6: error: no previous prototype for 'ps3_hba_qos_waitq_clear_all' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2827:6: error: no previous prototype for 'ps3_hba_qos_vd_init' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2936:6: error: no previous prototype for 'ps3_hba_qos_vd_reset' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3023:6: error: no previous prototype for 'ps3_hba_qos_waitq_poll' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3279:15: error: no previous prototype for 'ps3_raid_qos_decision' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3334:6: error: no previous prototype for 'ps3_qos_mgrq_resend' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:335:15: error: no previous prototype for 'ps3_qos_vd_cmdword_get' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3478:6: error: no previous prototype for 'ps3_raid_qos_waitq_notify' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:351:15: error: no previous prototype for 'ps3_qos_exclusive_cmdword_get' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:363:15: error: no previous prototype for 'ps3_qos_tg_decision' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3821:15: error: no previous prototype for 'ps3_raid_qos_waitq_abort' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:4022:6: error: no previous prototype for 'ps3_raid_qos_waitq_clear_all' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:4083:6: error: no previous prototype for 'ps3_raid_qos_waitq_poll' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:749:15: error: no previous prototype for 'ps3_qos_all_pd_rc_get' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:876:6: error: no previous prototype for 'ps3_pd_quota_waitq_clear_all' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:892:6: error: no previous prototype for 'ps3_pd_quota_waitq_clean' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:1173:5: error: no previous prototype for 'ps3_range_check_and_insert' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:1231:5: error: no previous prototype for 'ps3_r1x_hash_range_lock' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:1312:6: error: no previous prototype for 'ps3_r1x_hash_range_unlock' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:578:5: error: no previous prototype for 'ps3_r1x_hash_bit_check' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:678:6: error: no previous prototype for 'ps3_r1x_conflict_queue_hash_bit_lock' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:730:5: error: no previous prototype for 'ps3_r1x_hash_bit_lock' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:988:6: error: no previous prototype for 'ps3_r1x_hash_bit_unlock' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_rb_tree.c:154:6: error: no previous prototype for 'rbtDelNodeDo' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:204:6: error: no previous prototype for 'ps3_recovery_irq_queue_destroy' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:2700:6: error: no previous prototype for 'ps3_hard_recovery_state_finish' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:363:5: error: no previous prototype for 'ps3_recovery_state_transfer' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:72:30: error: no previous prototype for 'ps3_recovery_context_alloc' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:82:6: error: no previous prototype for 'ps3_recovery_context_free' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:88:6: error: no previous prototype for 'ps3_recovery_context_delete' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_sas_transport.c:407:5: error: no previous prototype for 'ps3_sas_update_phy_info' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_scsi_cmd_err.c:1110:5: error: no previous prototype for 'ps3_wait_for_outstanding_complete' [-Werror=missing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_scsi_cmd_err.c:876:6: error: no previous prototype for 'ps3_set_task_manager_busy' [-Werror=missing-prototypes]
error: unknown target ABI 'ilp32'
kismet: WARNING: unmet direct dependencies detected for ACPI_HOTPLUG_IGNORE_OSC when selected by X86
kismet: WARNING: unmet direct dependencies detected for CRYPTO_DRBG_CTR when selected by CRYPTO_DEV_HISI_TRNG
kismet: WARNING: unmet direct dependencies detected for HALTPOLL_CPUIDLE when selected by ARM64
mm/mempolicy.c:3129:26: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
Unverified Error/Warning (likely false positive, kindly check if interested):
drivers/hid/hid-thrustmaster.c:178 thrustmaster_interrupts() warn: possible memory leak of 'send_buf'
mm/kasan/kasan_test.c:1186 rcu_uaf_reclaim() error: dereferencing freed memory 'fp' (line 1185)
mm/oom_kill.c: linux/nmi.h is included more than once.
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- arch-arm64-kvm-virtcca_cvm.c:warning:no-previous-prototype-for-function-virtcca_get_tmi_version
| |-- drivers-coda-coda_pci.c:warning:Excess-function-parameter-pdev-description-in-virtcca_pci_get_rom_size
| `-- drivers-coda-coda_pci.c:warning:Function-parameter-or-member-p-not-described-in-virtcca_pci_get_rom_size
|-- arm64-allnoconfig
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-CRYPTO_DRBG_CTR-when-selected-by-CRYPTO_DEV_HISI_TRNG
| `-- kismet:WARNING:unmet-direct-dependencies-detected-for-HALTPOLL_CPUIDLE-when-selected-by-ARM64
|-- arm64-randconfig-004-20250410
| |-- aarch64-linux-ld:Unexpected-GOT-PLT-entries-detected
| `-- aarch64-linux-ld:Unexpected-run-time-procedure-linkages-detected
|-- arm64-randconfig-r054-20250411
| |-- clang:warning:Wl-soname-linux-ilp32-vdso.so.:linker-input-unused
| `-- error:unknown-target-ABI-ilp32
|-- loongarch-allmodconfig
| |-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-ps3_pci_init
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-ps3_pci_init_complete
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-ps3_pci_init_complete_exit
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli.c:error:function-ps3stor_cli_printf-might-be-a-candidate-for-gnu_printf-format-attribute
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-ps3_dump_context_show
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_file_close
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_file_open
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_file_write
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_filename_build
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_local_time
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-ps3_resp_status_convert
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-ps3_trigger_irq_poll
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-ps3_cmd_stat_content_clear
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-ps3_io_recv_ok_stat_inc
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-ps3_dump_dir_length
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-ps3_scsi_private_init_pd
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-ps3_scsi_private_init_vd
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-ps3_sas_expander_phys_refresh
| |-- drivers-scsi-linkdata-ps3stor-ps3_instance_manager.c:error:snprintf-output-may-be-truncated-before-the-last-format-character
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-ps3_ioc_resource_prepare_hba
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-ps3_ioc_resource_prepare_raid
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-ps3_ioc_resource_prepare_switch
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-ps3_hard_reset_to_ready
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-ps3_clean_mgr_cmd
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_HDD_IOPS_MSIX_VECTORS-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_CLEAR_IRQ-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_CMD_DISABLE_ALL_MASK-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_CMD_ENABLE_MSIX-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_MASK_DISABLE-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_STATUS_EXIST_IRQ-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_SSD_IOPS_MSIX_VECTORS-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_module_para.c:error:no-previous-prototype-for-ps3_cli_ver_query
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_cmd_waitq_abort
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_decision
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_vd_init
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_vd_reset
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_waitq_clear_all
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_waitq_notify
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_waitq_poll
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_pd_quota_waitq_clean
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_pd_quota_waitq_clear_all
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_all_pd_rc_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_cmd_waitq_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_exclusive_cmdword_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_mgrq_resend
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_pd_waitq_ratio_update
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_tg_decision
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_vd_cmdword_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_decision
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_abort
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_clear_all
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_notify
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_poll
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_conflict_queue_hash_bit_lock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_bit_check
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_bit_lock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_bit_unlock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_range_lock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_range_unlock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_range_check_and_insert
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-rbtDelNodeDo
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_hard_recovery_state_finish
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_context_alloc
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_context_delete
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_context_free
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_irq_queue_destroy
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_state_transfer
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-ps3_sas_update_phy_info
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-ps3_set_task_manager_busy
| `-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-ps3_wait_for_outstanding_complete
|-- loongarch-allnoconfig
| `-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
|-- loongarch-allyesconfig
| |-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-ps3_pci_init
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-ps3_pci_init_complete
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-ps3_pci_init_complete_exit
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli.c:error:function-ps3stor_cli_printf-might-be-a-candidate-for-gnu_printf-format-attribute
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-ps3_dump_context_show
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_file_close
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_file_open
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_file_write
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_filename_build
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-ps3_dump_local_time
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-ps3_resp_status_convert
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-ps3_trigger_irq_poll
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-ps3_cmd_stat_content_clear
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-ps3_io_recv_ok_stat_inc
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-ps3_dump_dir_length
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-ps3_scsi_private_init_pd
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-ps3_scsi_private_init_vd
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-ps3_sas_expander_phys_refresh
| |-- drivers-scsi-linkdata-ps3stor-ps3_instance_manager.c:error:snprintf-output-may-be-truncated-before-the-last-format-character
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-ps3_ioc_resource_prepare_hba
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-ps3_ioc_resource_prepare_raid
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-ps3_ioc_resource_prepare_switch
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-ps3_hard_reset_to_ready
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-ps3_clean_mgr_cmd
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_HDD_IOPS_MSIX_VECTORS-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_CLEAR_IRQ-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_CMD_DISABLE_ALL_MASK-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_CMD_ENABLE_MSIX-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_MASK_DISABLE-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_INTERRUPT_STATUS_EXIST_IRQ-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:PS3_SSD_IOPS_MSIX_VECTORS-defined-but-not-used
| |-- drivers-scsi-linkdata-ps3stor-ps3_module_para.c:error:no-previous-prototype-for-ps3_cli_ver_query
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_cmd_waitq_abort
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_decision
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_vd_init
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_vd_reset
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_waitq_clear_all
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_waitq_notify
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_hba_qos_waitq_poll
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_pd_quota_waitq_clean
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_pd_quota_waitq_clear_all
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_all_pd_rc_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_cmd_waitq_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_exclusive_cmdword_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_mgrq_resend
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_pd_waitq_ratio_update
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_tg_decision
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_qos_vd_cmdword_get
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_decision
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_abort
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_clear_all
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_notify
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-ps3_raid_qos_waitq_poll
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_conflict_queue_hash_bit_lock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_bit_check
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_bit_lock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_bit_unlock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_range_lock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_r1x_hash_range_unlock
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-ps3_range_check_and_insert
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-rbtDelNodeDo
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_hard_recovery_state_finish
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_context_alloc
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_context_delete
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_context_free
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_irq_queue_destroy
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-ps3_recovery_state_transfer
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-ps3_sas_update_phy_info
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-ps3_set_task_manager_busy
| `-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-ps3_wait_for_outstanding_complete
|-- loongarch-defconfig
| `-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
|-- loongarch-randconfig-001-20250410
| `-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
|-- loongarch-randconfig-002-20250410
| `-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
|-- loongarch-randconfig-r121-20250411
| |-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
| |-- kernel-sched-fair.c:sparse:sparse:symbol-sysctl_sched_prio_load_balance_enabled-was-not-declared.-Should-it-be-static
| |-- mm-memblock.c:sparse:sparse:symbol-memblock_alloc_range_nid_flags-was-not-declared.-Should-it-be-static
| `-- mm-show_mem.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-ptr-got-int-noderef-__percpu
|-- loongarch-randconfig-r132-20250411
| |-- arch-loongarch-mm-cache.c:warning:variable-way_size-set-but-not-used
| |-- drivers-iommu-loongarch_iommu.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-__iomem-addr-got-void-confbase
| |-- include-linux-if_caqm.h:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-short-usertype-caqm_hdr_info-got-restricted-__be16-usertype-h_caqm_info
| |-- include-linux-if_caqm.h:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-short-usertype-got-restricted-__be16-usertype
| |-- mm-memblock.c:sparse:sparse:symbol-memblock_alloc_range_nid_flags-was-not-declared.-Should-it-be-static
| `-- mm-show_mem.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-ptr-got-int-noderef-__percpu
|-- x86_64-allnoconfig
| |-- kismet:WARNING:unmet-direct-dependencies-detected-for-ACPI_HOTPLUG_IGNORE_OSC-when-selected-by-X86
| `-- mm-oom_kill.c:linux-nmi.h-is-included-more-than-once.
|-- x86_64-defconfig
| `-- mm-mempolicy.c:warning:writing-byte-into-a-region-of-size
|-- x86_64-randconfig-161-20250411
| |-- drivers-hid-hid-thrustmaster.c-thrustmaster_interrupts()-warn:possible-memory-leak-of-send_buf
| `-- mm-kasan-kasan_test.c-rcu_uaf_reclaim()-error:dereferencing-freed-memory-fp-(line-)
`-- x86_64-randconfig-r113-20250410
|-- drivers-crypto-montage-tsse-tsse_dev_drv.c:sparse:sparse:symbol-dev_attr_tsse_image_load-was-not-declared.-Should-it-be-static
|-- drivers-crypto-montage-tsse-tsse_ipc.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-__iomem-got-unsigned-char-usertype-assigned-device_msg_d
|-- drivers-crypto-montage-tsse-tsse_ipc_drv.c:sparse:sparse:cast-from-restricted-__le32
|-- drivers-crypto-montage-tsse-tsse_ipc_drv.c:sparse:sparse:cast-removes-address-space-__iomem-of-expression
|-- drivers-crypto-montage-tsse-tsse_ipc_drv.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-__iomem-got-unsigned-char-usertype
|-- drivers-crypto-montage-tsse-tsse_ipc_drv.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-msg-got-void-noderef-__iomem-d2h_msg
|-- drivers-crypto-montage-tsse-tsse_ipc_drv.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-__iomem-got-unsigned-char-usertype-addr
|-- drivers-crypto-montage-tsse-tsse_ipc_hash.c:sparse:sparse:symbol-service_handle_table-was-not-declared.-Should-it-be-static
`-- drivers-crypto-montage-tsse-tsse_ipc_hash.c:sparse:sparse:symbol-service_info_table-was-not-declared.-Should-it-be-static
elapsed time: 1461m
configs tested: 21
configs skipped: 123
tested configs:
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-14.2.0
arm64 defconfig gcc-14.2.0
arm64 randconfig-001-20250410 clang-21
arm64 randconfig-002-20250410 clang-21
arm64 randconfig-003-20250410 gcc-6.5.0
arm64 randconfig-004-20250410 gcc-8.5.0
loongarch allmodconfig gcc-14.2.0
loongarch allnoconfig gcc-14.2.0
loongarch defconfig gcc-14.2.0
loongarch randconfig-001-20250410 gcc-12.4.0
loongarch randconfig-002-20250410 gcc-12.4.0
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250410 clang-20
x86_64 buildonly-randconfig-002-20250410 gcc-12
x86_64 buildonly-randconfig-003-20250410 clang-20
x86_64 buildonly-randconfig-004-20250410 clang-20
x86_64 buildonly-randconfig-005-20250410 clang-20
x86_64 buildonly-randconfig-006-20250410 clang-20
x86_64 defconfig gcc-11
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
From: Hongye Lin <linhongye(a)h-partners.com>
driver inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IBZQQR
----------------------------------------------------------------------
The core CPU control framework supports runtime SMT control which
is not yet supported on arm64. Besides the general vulnerabilities
concerns we want this runtime control on our arm64 server for:
- better single CPU performance in some cases
- saving overall power consumption
This patchset implements it in the following aspects:
- Provides a default topology_is_primary_thread()
- support retrieve SMT thread number on OF based system
- support retrieve SMT thread number on ACPI based system
- select HOTPLUG_SMT for arm64
Tests has been done on our ACPI based arm64 server and on ACPI/OF
based QEMU VMs.
Yicong Yang (5):
Revert "arm64: Kconfig: Enable HOTPLUG_SMT"
cpu/SMT: Provide a default topology_is_primary_thread()
arch_topology: Support SMT control for OF based system
arm64: topology: Support SMT control on ACPI based system
arm64: Kconfig: Enable HOTPLUG_SMT
arch/arm64/Kconfig | 2 +-
arch/arm64/configs/openeuler_defconfig | 1 -
arch/arm64/kernel/topology.c | 67 +++++++++++++++++++-------
arch/powerpc/include/asm/topology.h | 1 +
arch/x86/include/asm/topology.h | 3 +-
drivers/base/arch_topology.c | 61 +++++++----------------
include/linux/arch_topology.h | 14 ------
include/linux/topology.h | 24 +++++++++
8 files changed, 94 insertions(+), 79 deletions(-)
--
2.33.0
2
6
mainline inclusion
from mainline-v6.12-rc3
commit 654b33ada4ab5e926cd9c570196fefa7bec7c1df
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBYOFS
CVE: CVE-2025-21999
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
Fix race between rmmod and /proc/XXX's inode instantiation.
The bug is that pde->proc_ops don't belong to /proc, it belongs to a
module, therefore dereferencing it after /proc entry has been registered
is a bug unless use_pde/unuse_pde() pair has been used.
use_pde/unuse_pde can be avoided (2 atomic ops!) because pde->proc_ops
never changes so information necessary for inode instantiation can be
saved _before_ proc_register() in PDE itself and used later, avoiding
pde->proc_ops->... dereference.
rmmod lookup
sys_delete_module
proc_lookup_de
pde_get(de);
proc_get_inode(dir->i_sb, de);
mod->exit()
proc_remove
remove_proc_subtree
proc_entry_rundown(de);
free_module(mod);
if (S_ISREG(inode->i_mode))
if (de->proc_ops->proc_read_iter)
--> As module is already freed, will trigger UAF
BUG: unable to handle page fault for address: fffffbfff80a702b
PGD 817fc4067 P4D 817fc4067 PUD 817fc0067 PMD 102ef4067 PTE 0
Oops: Oops: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 26 UID: 0 PID: 2667 Comm: ls Tainted: G
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996)
RIP: 0010:proc_get_inode+0x302/0x6e0
RSP: 0018:ffff88811c837998 EFLAGS: 00010a06
RAX: dffffc0000000000 RBX: ffffffffc0538140 RCX: 0000000000000007
RDX: 1ffffffff80a702b RSI: 0000000000000001 RDI: ffffffffc0538158
RBP: ffff8881299a6000 R08: 0000000067bbe1e5 R09: 1ffff11023906f20
R10: ffffffffb560ca07 R11: ffffffffb2b43a58 R12: ffff888105bb78f0
R13: ffff888100518048 R14: ffff8881299a6004 R15: 0000000000000001
FS: 00007f95b9686840(0000) GS:ffff8883af100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: fffffbfff80a702b CR3: 0000000117dd2000 CR4: 00000000000006f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
proc_lookup_de+0x11f/0x2e0
__lookup_slow+0x188/0x350
walk_component+0x2ab/0x4f0
path_lookupat+0x120/0x660
filename_lookup+0x1ce/0x560
vfs_statx+0xac/0x150
__do_sys_newstat+0x96/0x110
do_syscall_64+0x5f/0x170
entry_SYSCALL_64_after_hwframe+0x76/0x7e
[adobriyan(a)gmail.com: don't do 2 atomic ops on the common path]
Link: https://lkml.kernel.org/r/3d25ded0-1739-447e-812b-e34da7990dcf@p183
Fixes: 778f3dd5a13c ("Fix procfs compat_ioctl regression")
Signed-off-by: Ye Bin <yebin10(a)huawei.com>
Signed-off-by: Alexey Dobriyan <adobriyan(a)gmail.com>
Cc: Al Viro <viro(a)zeniv.linux.org.uk>
Cc: David S. Miller <davem(a)davemloft.net>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Conflicts:
fs/proc/inode.c
fs/proc/generic.c
fs/proc/internal.h
include/linux/proc_fs.h
[The pre-patch d919b33dafb3 ("proc: faster open/read/close with "permanent"
files") is not imported.]
Signed-off-by: Yongjian Sun <sunyongjian1(a)huawei.com>
---
fs/proc/inode.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/fs/proc/inode.c b/fs/proc/inode.c
index 31bf3bb8ddae..7d225a2b8b2a 100644
--- a/fs/proc/inode.c
+++ b/fs/proc/inode.c
@@ -462,6 +462,14 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
make_empty_dir_inode(inode);
return inode;
}
+
+ if (!use_pde(de)) {
+ PROC_I(inode)->pde = NULL;
+ pde_put(de);
+ iput(inode);
+ return NULL;
+ }
+
if (de->mode) {
inode->i_mode = de->mode;
inode->i_uid = de->uid;
@@ -486,6 +494,7 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
inode->i_fop = de->proc_fops;
}
}
+ unuse_pde(de);
} else
pde_put(de);
return inode;
--
2.39.2
2
1
This series includes adding Motorcomm YT6801 Gigabit ethernet driver
and adding yt6801 ethernet driver entry in MAINTAINERS file.
YT6801 integrates a YT8531S phy.
Frank Sae (14):
yt6801: Add support for a pci table in this module
yt6801: Implement mdio register
yt6801: Implement pci_driver shutdown
yt6801: Implement the fxgmac_init function
yt6801: Implement the .ndo_open function
yt6801: Implement the fxgmac_start function
net:phy:motorcomm: Add PHY_INTERFACE_MODE_INTERNAL to support YT6801
yt6801: Implement the fxgmac_hw_init function
yt6801: Implement the poll functions
yt6801: Implement .ndo_start_xmit function
yt6801: Implement some net_device_ops function
yt6801: Implement pci_driver suspend and resume
yt6801: Add makefile and Kconfig
yt6801: Update the Makefile, Kconfig and maintainer for yt6801
MAINTAINERS | 8 +
arch/arm64/configs/openeuler_defconfig | 4 +-
arch/powerpc/configs/openeuler_defconfig | 4 +-
arch/riscv/configs/openeuler_defconfig | 4 +-
arch/x86/configs/openeuler_defconfig | 4 +-
drivers/net/ethernet/Kconfig | 1 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/motorcomm/Kconfig | 27 +
drivers/net/ethernet/motorcomm/Makefile | 6 +
.../net/ethernet/motorcomm/yt6801/Makefile | 8 +
.../ethernet/motorcomm/yt6801/yt6801_desc.c | 565 +++
.../ethernet/motorcomm/yt6801/yt6801_desc.h | 35 +
.../ethernet/motorcomm/yt6801/yt6801_main.c | 3020 +++++++++++++++++
.../ethernet/motorcomm/yt6801/yt6801_type.h | 957 ++++++
drivers/net/phy/motorcomm.c | 6 +
15 files changed, 4646 insertions(+), 4 deletions(-)
create mode 100644 drivers/net/ethernet/motorcomm/Kconfig
create mode 100644 drivers/net/ethernet/motorcomm/Makefile
create mode 100644 drivers/net/ethernet/motorcomm/yt6801/Makefile
create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_desc.c
create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_desc.h
create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_main.c
create mode 100644 drivers/net/ethernet/motorcomm/yt6801/yt6801_type.h
--
2.34.1
2
15

[openeuler:OLK-6.6 2117/2117] kernel/sched/fair.c:151:14: sparse: sparse: symbol 'sysctl_sched_prio_load_balance_enabled' was not declared. Should it be static?
by kernel test robot 11 Apr '25
by kernel test robot 11 Apr '25
11 Apr '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 62b846e657553d00552c1c71b6ecc26017eb1a9a
commit: 89bf80a4d6d5ba852b9042480e0be23c2c4a628c [2117/2117] sched: Introduce priority load balance for qos scheduler
config: loongarch-randconfig-r121-20250411 (https://download.01.org/0day-ci/archive/20250411/202504110741.FCO7H6rm-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce: (https://download.01.org/0day-ci/archive/20250411/202504110741.FCO7H6rm-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/202504110741.FCO7H6rm-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
kernel/sched/fair.c:143:14: sparse: sparse: symbol 'sysctl_overload_detect_period' was not declared. Should it be static?
kernel/sched/fair.c:144:14: sparse: sparse: symbol 'sysctl_offline_wait_interval' was not declared. Should it be static?
>> kernel/sched/fair.c:151:14: sparse: sparse: symbol 'sysctl_sched_prio_load_balance_enabled' was not declared. Should it be static?
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got unsigned int [noderef] __percpu *
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got unsigned int [noderef] __percpu *
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got unsigned int [noderef] __percpu *
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got unsigned int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got unsigned int [noderef] __percpu *
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:7578:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:7578:9: sparse: expected void *ptr
kernel/sched/fair.c:7578:9: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:1271:34: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sched_entity const *se @@ got struct sched_entity [noderef] __rcu * @@
kernel/sched/fair.c:1271:34: sparse: expected struct sched_entity const *se
kernel/sched/fair.c:1271:34: sparse: got struct sched_entity [noderef] __rcu *
kernel/sched/fair.c:12846:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:12846:9: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:12846:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:5925:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:5925:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:5925:22: sparse: struct task_struct *
kernel/sched/fair.c:6667:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:6667:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:6667:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:7396:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7396:32: sparse: expected void *ptr
kernel/sched/fair.c:7396:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7396:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7396:32: sparse: expected void *ptr
kernel/sched/fair.c:7396:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7396:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7396:32: sparse: expected void *ptr
kernel/sched/fair.c:7396:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7396:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7396:32: sparse: expected void *ptr
kernel/sched/fair.c:7396:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7499:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7499:16: sparse: expected void *ptr
kernel/sched/fair.c:7499:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7499:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7499:16: sparse: expected void *ptr
kernel/sched/fair.c:7499:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7499:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7499:16: sparse: expected void *ptr
kernel/sched/fair.c:7499:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7499:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7499:16: sparse: expected void *ptr
kernel/sched/fair.c:7499:16: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7974:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7974:32: sparse: expected void *ptr
kernel/sched/fair.c:7974:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7974:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7974:32: sparse: expected void *ptr
kernel/sched/fair.c:7974:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7974:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7974:32: sparse: expected void *ptr
kernel/sched/fair.c:7974:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7974:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got struct cpumask *[noderef] __percpu * @@
kernel/sched/fair.c:7974:32: sparse: expected void *ptr
kernel/sched/fair.c:7974:32: sparse: got struct cpumask *[noderef] __percpu *
kernel/sched/fair.c:7998:20: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] sd @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:7998:20: sparse: expected struct sched_domain *[assigned] sd
kernel/sched/fair.c:7998:20: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8310:9: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct sched_domain *[assigned] tmp @@ got struct sched_domain [noderef] __rcu *parent @@
kernel/sched/fair.c:8310:9: sparse: expected struct sched_domain *[assigned] tmp
kernel/sched/fair.c:8310:9: sparse: got struct sched_domain [noderef] __rcu *parent
kernel/sched/fair.c:8421:38: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct task_struct *curr @@ got struct task_struct [noderef] __rcu *curr @@
kernel/sched/fair.c:8421:38: sparse: expected struct task_struct *curr
kernel/sched/fair.c:8421:38: sparse: got struct task_struct [noderef] __rcu *curr
kernel/sched/fair.c:8641:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/sched/fair.c:8641:22: sparse: struct task_struct [noderef] __rcu *
kernel/sched/fair.c:8641:22: sparse: struct task_struct *
kernel/sched/fair.c:8706:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8706:16: sparse: expected void *ptr
kernel/sched/fair.c:8706:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8706:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8706:16: sparse: expected void *ptr
kernel/sched/fair.c:8706:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8706:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8706:16: sparse: expected void *ptr
kernel/sched/fair.c:8706:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8706:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8706:16: sparse: expected void *ptr
kernel/sched/fair.c:8706:16: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8763:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
kernel/sched/fair.c:8763:13: sparse: expected void *ptr
kernel/sched/fair.c:8763:13: sparse: got int [noderef] __percpu *
kernel/sched/fair.c:8763:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *ptr @@ got int [noderef] __percpu * @@
vim +/sysctl_sched_prio_load_balance_enabled +151 kernel/sched/fair.c
149
150 #ifdef CONFIG_QOS_SCHED_PRIO_LB
> 151 unsigned int sysctl_sched_prio_load_balance_enabled;
152 #endif
153
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-6.6 2117/2117] drivers/iommu/loongarch_iommu.c:1292:22: sparse: sparse: incorrect type in argument 1 (different address spaces)
by kernel test robot 11 Apr '25
by kernel test robot 11 Apr '25
11 Apr '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 62b846e657553d00552c1c71b6ecc26017eb1a9a
commit: 72fe4978ee346c10869113410da1b61710dd8d8f [2117/2117] LoongArch: add iommu support
config: loongarch-randconfig-r132-20250411 (https://download.01.org/0day-ci/archive/20250411/202504110226.FM6zQ8DE-lkp@…)
compiler: loongarch64-linux-gcc (GCC) 14.2.0
reproduce: (https://download.01.org/0day-ci/archive/20250411/202504110226.FM6zQ8DE-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/202504110226.FM6zQ8DE-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
drivers/iommu/loongarch_iommu.c:108:9: sparse: sparse: symbol 'la_iommu_last_bdf' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:112:5: sparse: sparse: symbol 'loongarch_iommu_disable' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:130:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:130:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:130:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:132:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:132:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:132:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:135:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:135:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:135:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:137:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:137:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:137:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:150:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:150:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:150:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:152:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:152:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:152:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:155:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:155:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:155:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:157:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:157:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:157:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:160:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:160:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:160:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:162:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:162:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:162:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:190:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:190:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:190:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:193:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:193:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:193:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:196:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:196:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:196:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:199:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:199:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:199:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:206:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:206:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:206:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:306:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:306:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:306:17: sparse: got void *
drivers/iommu/loongarch_iommu.c:310:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:310:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:310:17: sparse: got void *
drivers/iommu/loongarch_iommu.c:312:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:312:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:312:23: sparse: got void *
drivers/iommu/loongarch_iommu.c:314:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:314:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:314:17: sparse: got void *
drivers/iommu/loongarch_iommu.c:322:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:322:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:322:23: sparse: got void *
drivers/iommu/loongarch_iommu.c:325:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:325:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:325:17: sparse: got void *
drivers/iommu/loongarch_iommu.c:327:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:327:23: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:327:23: sparse: got void *
drivers/iommu/loongarch_iommu.c:329:17: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:329:17: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:329:17: sparse: got void *
drivers/iommu/loongarch_iommu.c:349:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:349:15: sparse: expected void const volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:349:15: sparse: got void *
drivers/iommu/loongarch_iommu.c:352:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:352:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:352:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:610:6: sparse: sparse: symbol 'domain_deattach_iommu' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:651:28: sparse: sparse: symbol 'lookup_rlooptable' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:662:24: sparse: sparse: symbol 'find_iommu_by_dev' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:721:21: sparse: sparse: symbol 'la_iommu_probe_device' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:752:19: sparse: sparse: symbol 'get_iommu_info_from_dom' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:794:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:794:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:794:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:795:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:795:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:795:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:796:9: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@
drivers/iommu/loongarch_iommu.c:796:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:796:9: sparse: got void *
drivers/iommu/loongarch_iommu.c:1178:24: sparse: sparse: symbol 'la_iommu_ops' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:1197:24: sparse: sparse: symbol 'loongarch_get_iommu_by_devid' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:1215:6: sparse: sparse: symbol 'check_device_compat' was not declared. Should it be static?
drivers/iommu/loongarch_iommu.c:1259:25: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void *confbase @@ got void [noderef] __iomem * @@
drivers/iommu/loongarch_iommu.c:1259:25: sparse: expected void *confbase
drivers/iommu/loongarch_iommu.c:1259:25: sparse: got void [noderef] __iomem *
>> drivers/iommu/loongarch_iommu.c:1292:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *confbase @@
drivers/iommu/loongarch_iommu.c:1292:22: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:1292:22: sparse: got void *confbase
drivers/iommu/loongarch_iommu.c:1319:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void *confbase @@
drivers/iommu/loongarch_iommu.c:1319:30: sparse: expected void volatile [noderef] __iomem *addr
drivers/iommu/loongarch_iommu.c:1319:30: sparse: got void *confbase
drivers/iommu/loongarch_iommu.c:1344:28: sparse: sparse: symbol 'create_rlookup_entry' was not declared. Should it be static?
vim +1292 drivers/iommu/loongarch_iommu.c
1223
1224 static int loongarch_iommu_probe(struct pci_dev *pdev,
1225 const struct pci_device_id *ent)
1226 {
1227 int ret = 1;
1228 int bitmap_sz = 0;
1229 int tmp;
1230 bool compat = false;
1231 struct loongarch_iommu *iommu = NULL;
1232 resource_size_t base, size;
1233
1234 iommu = loongarch_get_iommu_by_devid(pdev);
1235 if (iommu == NULL) {
1236 pci_info(pdev, "%s can't find iommu\n", __func__);
1237 return -ENODEV;
1238 }
1239
1240 compat = check_device_compat(pdev);
1241 if (!compat) {
1242 pci_info(pdev,
1243 "%s The iommu driver is not compatible with this device\n",
1244 __func__);
1245 return -ENODEV;
1246 }
1247
1248 iommu->pdev = pdev;
1249 base = pci_resource_start(pdev, 0);
1250 size = pci_resource_len(pdev, 0);
1251 if (!request_mem_region(base, size, "loongarch_iommu")) {
1252 pci_err(pdev,
1253 "%d can't reserve mmio registers base %llx size %llx\n",
1254 __LINE__, base, size);
1255 return -ENOMEM;
1256 }
1257 iommu->confbase_phy = base;
1258 iommu->conf_size = size;
1259 iommu->confbase = ioremap(base, size);
1260 if (iommu->confbase == NULL) {
1261 pci_info(pdev, "%s iommu pci dev bar0 is NULL\n", __func__);
1262 return ret;
1263 }
1264
1265 pr_info("iommu confbase %llx pgtsize %llx\n",
1266 (u64)iommu->confbase, size);
1267 tmp = MAX_DOMAIN_ID / 8;
1268 bitmap_sz = (MAX_DOMAIN_ID % 8) ? (tmp + 1) : tmp;
1269 iommu->domain_bitmap = bitmap_zalloc(bitmap_sz, GFP_KERNEL);
1270 if (iommu->domain_bitmap == NULL) {
1271 pr_err("LA-IOMMU: domain bitmap alloc err bitmap_sz:%d\n",
1272 bitmap_sz);
1273 goto out_err;
1274 }
1275
1276 tmp = MAX_ATTACHED_DEV_ID / 8;
1277 bitmap_sz = (MAX_ATTACHED_DEV_ID % 8) ? (tmp + 1) : tmp;
1278 iommu->devtable_bitmap = bitmap_zalloc(bitmap_sz, GFP_KERNEL);
1279 if (iommu->devtable_bitmap == NULL) {
1280 pr_err("LA-IOMMU: devtable bitmap alloc err bitmap_sz:%d\n",
1281 bitmap_sz);
1282 goto out_err_1;
1283 }
1284
1285 ret = iommu_device_sysfs_add(&iommu->iommu_dev, &pdev->dev,
1286 NULL, "ivhd-%#x", iommu->devid);
1287 iommu_device_register(&iommu->iommu_dev, &la_iommu_ops, NULL);
1288 return 0;
1289
1290 out_err_1:
1291 iommu->pdev = NULL;
> 1292 iounmap(iommu->confbase);
1293 iommu->confbase = NULL;
1294 release_mem_region(iommu->confbase_phy, iommu->conf_size);
1295 iommu->confbase_phy = 0;
1296 iommu->conf_size = 0;
1297 kfree(iommu->domain_bitmap);
1298 iommu->domain_bitmap = NULL;
1299 out_err:
1300 return ret;
1301 }
1302
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1578/1578] drivers/net/ethernet/netswift/ngbe/ngbe_hw.o: warning: objtool: missing symbol for section .text.unlikely.
by kernel test robot 11 Apr '25
by kernel test robot 11 Apr '25
11 Apr '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: ac44c6a4925e0772513c3597d420e5705faf482b
commit: 206f9c11a8c8b0197da5a26859d96d2ed65f5757 [1578/1578] net: ngbe: Add Netswift Giga NIC driver
config: x86_64-buildonly-randconfig-005-20250410 (https://download.01.org/0day-ci/archive/20250411/202504110241.8SiMchEQ-lkp@…)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250411/202504110241.8SiMchEQ-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/202504110241.8SiMchEQ-lkp@intel.com/
All warnings (new ones prefixed by >>):
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2542:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2542 | u32 flash_read_dword(struct ngbe_hw *hw, u32 addr)
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2551:4: warning: no previous prototype for function 'flash_write_dword' [-Wmissing-prototypes]
2551 | u8 flash_write_dword(struct ngbe_hw *hw, u32 addr, u32 dword)
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2551:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2551 | u8 flash_write_dword(struct ngbe_hw *hw, u32 addr, u32 dword)
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2567:5: warning: no previous prototype for function 'ngbe_flash_write_cab' [-Wmissing-prototypes]
2567 | int ngbe_flash_write_cab(struct ngbe_hw *hw, u32 addr, u32 value, u16 lan_id)
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2567:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2567 | int ngbe_flash_write_cab(struct ngbe_hw *hw, u32 addr, u32 value, u16 lan_id)
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2593:5: warning: no previous prototype for function 'ngbe_flash_read_cab' [-Wmissing-prototypes]
2593 | int ngbe_flash_read_cab(struct ngbe_hw *hw, u32 addr, u16 lan_id)
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2593:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2593 | int ngbe_flash_read_cab(struct ngbe_hw *hw, u32 addr, u16 lan_id)
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2628:5: warning: no previous prototype for function 'ngbe_flash_write_unlock' [-Wmissing-prototypes]
2628 | int ngbe_flash_write_unlock(struct ngbe_hw *hw)
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2628:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2628 | int ngbe_flash_write_unlock(struct ngbe_hw *hw)
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2651:5: warning: no previous prototype for function 'ngbe_flash_write_lock' [-Wmissing-prototypes]
2651 | int ngbe_flash_write_lock(struct ngbe_hw *hw)
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2651:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2651 | int ngbe_flash_write_lock(struct ngbe_hw *hw)
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:3498:5: warning: no previous prototype for function 'ngbe_get_copper_link_capabilities' [-Wmissing-prototypes]
3498 | s32 ngbe_get_copper_link_capabilities(struct ngbe_hw *hw,
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:3498:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3498 | s32 ngbe_get_copper_link_capabilities(struct ngbe_hw *hw,
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:3647:5: warning: no previous prototype for function 'ngbe_reset_misc' [-Wmissing-prototypes]
3647 | int ngbe_reset_misc(struct ngbe_hw *hw)
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:3647:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3647 | int ngbe_reset_misc(struct ngbe_hw *hw)
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4124:5: warning: no previous prototype for function 'ngbe_read_ee_hostif_data' [-Wmissing-prototypes]
4124 | s32 ngbe_read_ee_hostif_data(struct ngbe_hw *hw, u16 offset,
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4124:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
4124 | s32 ngbe_read_ee_hostif_data(struct ngbe_hw *hw, u16 offset,
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4339:5: warning: no previous prototype for function 'ngbe_read_ee_hostif_data32' [-Wmissing-prototypes]
4339 | s32 ngbe_read_ee_hostif_data32(struct ngbe_hw *hw, u16 offset,
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4339:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
4339 | s32 ngbe_read_ee_hostif_data32(struct ngbe_hw *hw, u16 offset,
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4405:5: warning: no previous prototype for function 'ngbe_write_ee_hostif_data' [-Wmissing-prototypes]
4405 | s32 ngbe_write_ee_hostif_data(struct ngbe_hw *hw, u16 offset,
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4405:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
4405 | s32 ngbe_write_ee_hostif_data(struct ngbe_hw *hw, u16 offset,
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4466:5: warning: no previous prototype for function 'ngbe_write_ee_hostif_data32' [-Wmissing-prototypes]
4466 | s32 ngbe_write_ee_hostif_data32(struct ngbe_hw *hw, u16 offset,
| ^
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:4466:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
4466 | s32 ngbe_write_ee_hostif_data32(struct ngbe_hw *hw, u16 offset,
| ^
| static
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2883:17: warning: unused variable 'ngbe_emc_temp_data' [-Wunused-const-variable]
2883 | STATIC const u8 ngbe_emc_temp_data[4] = {
| ^~~~~~~~~~~~~~~~~~
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2890:17: warning: unused variable 'ngbe_emc_therm_limit' [-Wunused-const-variable]
2890 | STATIC const u8 ngbe_emc_therm_limit[4] = {
| ^~~~~~~~~~~~~~~~~~~~
26 warnings generated.
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:657: warning: Function parameter or member 'pools' not described in 'ngbe_set_rar'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:657: warning: Excess function parameter 'vmdq' description in 'ngbe_set_rar'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:817: warning: Function parameter or member 'vmdq' not described in 'ngbe_add_uc_addr'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:961: warning: Function parameter or member 'mc_addr' not described in 'ngbe_set_mta'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:961: warning: Excess function parameter 'hash_value' description in 'ngbe_set_mta'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:1616: warning: Function parameter or member 'pool' not described in 'ngbe_set_vmdq'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:1616: warning: Excess function parameter 'vmdq' description in 'ngbe_set_vmdq'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2904: warning: bad line: (8.1542E-08)N^3 + (-1.6743E-11)N^4
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:2911: warning: Excess function parameter 'data' description in 'ngbe_get_thermal_sensor_data'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:3632: warning: Function parameter or member 'need_restart_AN' not described in 'ngbe_setup_copper_link'
drivers/net/ethernet/netswift/ngbe/ngbe_hw.c:3632: warning: Excess function parameter 'autoneg_wait_to_complete' description in 'ngbe_setup_copper_link'
>> drivers/net/ethernet/netswift/ngbe/ngbe_hw.o: warning: objtool: missing symbol for section .text.unlikely.
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

10 Apr '25
hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IBZUQU
-------------------------------------------
The tlb invalidation code for smmu pagetable prefetch problem might
cause a extra tlb invalidation for atc. Introduce a new interface to
avoid this.
Signed-off-by: Zhang Zekun <zhangzekun11(a)huawei.com>
---
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 18 ++++++++++--------
drivers/iommu/io-pgtable-arm.c | 3 ++-
include/linux/io-pgtable.h | 7 +++++++
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
index cedc1eda7250..9358d42b07c7 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
@@ -2281,6 +2281,16 @@ static void arm_smmu_tlb_inv_range_domain(unsigned long iova, size_t size,
arm_smmu_atc_inv_domain(smmu_domain, 0, iova, size);
}
+#ifdef CONFIG_HISILICON_ERRATUM_162100602
+void arm_smmu_tlb_flush_hisilicon_errata(void *cookie, unsigned long iova, size_t granule)
+{
+ struct arm_smmu_domain *smmu_domain = cookie;
+
+ if (smmu_domain->smmu->options & ARM_SMMU_OPT_SYNC_BATCH)
+ arm_smmu_tlb_inv_range_domain(iova, granule, granule, true, cookie);
+}
+#endif
+
void arm_smmu_tlb_inv_range_asid(unsigned long iova, size_t size, int asid,
size_t granule, bool leaf,
struct arm_smmu_domain *smmu_domain)
@@ -2310,14 +2320,6 @@ static void arm_smmu_tlb_inv_page_nosync(struct iommu_iotlb_gather *gather,
static void arm_smmu_tlb_inv_walk(unsigned long iova, size_t size,
size_t granule, void *cookie)
{
-#ifdef CONFIG_HISILICON_ERRATUM_162100602
- struct arm_smmu_domain *smmu_domain = cookie;
-
- if (!size && smmu_domain->smmu->options & ARM_SMMU_OPT_SYNC_BATCH) {
- arm_smmu_tlb_inv_range_domain(iova, granule, granule, true, cookie);
- return;
- }
-#endif
arm_smmu_tlb_inv_range_domain(iova, size, granule, false, cookie);
}
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index dc80f2661ff7..a2f11d9db262 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -366,7 +366,8 @@ static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
__arm_lpae_free_pages(cptep, tblsz, cfg);
#ifdef CONFIG_HISILICON_ERRATUM_162100602
if (lvl <= 2)
- io_pgtable_tlb_flush_walk(&data->iop, iova, 0, ARM_LPAE_GRANULE(data));
+ arm_smmu_tlb_flush_hisilicon_errata(data->iop.cookie,
+ iova, ARM_LPAE_GRANULE(data));
#endif
} else if (!cfg->coherent_walk && !(pte & ARM_LPAE_PTE_SW_SYNC)) {
__arm_lpae_sync_pte(ptep, cfg);
diff --git a/include/linux/io-pgtable.h b/include/linux/io-pgtable.h
index 27b994e42ec4..03b574ef6d14 100644
--- a/include/linux/io-pgtable.h
+++ b/include/linux/io-pgtable.h
@@ -267,4 +267,11 @@ extern struct io_pgtable_init_fns io_pgtable_arm_64_lpae_s2_init_fns;
extern struct io_pgtable_init_fns io_pgtable_arm_v7s_init_fns;
extern struct io_pgtable_init_fns io_pgtable_arm_mali_lpae_init_fns;
+#ifdef CONFIG_HISILICON_ERRATUM_162100602
+void arm_smmu_tlb_flush_hisilicon_errata(void *cookie, unsigned long iova, size_t granule);
+#else
+static inline void arm_smmu_tlb_flush_hisilicon_errata(void *cookie,
+ unsigned long iova, size_t granule) {}
+#endif
+
#endif /* __IO_PGTABLE_H */
--
2.22.0
2
1

10 Apr '25
From: Lin Ma <linma(a)zju.edu.cn>
stable inclusion
from stable-v4.19.247
commit 0941150100173d4eaf3fe08ff4b16740e7c3026f
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBP6HY
CVE: CVE-2022-49493
Reference: https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit…
--------------------------------
ASoC: rt5645: Fix errorenous cleanup order
[ Upstream commit 2def44d3aec59e38d2701c568d65540783f90f2f ]
There is a logic error when removing rt5645 device as the function
rt5645_i2c_remove() first cancel the &rt5645->jack_detect_work and
delete the &rt5645->btn_check_timer latter. However, since the timer
handler rt5645_btn_check_callback() will re-queue the jack_detect_work,
this cleanup order is buggy.
That is, once the del_timer_sync in rt5645_i2c_remove is concurrently
run with the rt5645_btn_check_callback, the canceled jack_detect_work
will be rescheduled again, leading to possible use-after-free.
This patch fix the issue by placing the del_timer_sync function before
the cancel_delayed_work_sync.
Signed-off-by: Lin Ma <linma(a)zju.edu.cn>
Link: https://lore.kernel.org/r/20220516092035.28283-1-linma@zju.edu.cn
Signed-off-by: Mark Brown <broonie(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Zhao Yipeng <zhaoyipeng5(a)huawei.com>
---
sound/soc/codecs/rt5645.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/sound/soc/codecs/rt5645.c b/sound/soc/codecs/rt5645.c
index 7e3b47eeea04..3fcce5996c2c 100644
--- a/sound/soc/codecs/rt5645.c
+++ b/sound/soc/codecs/rt5645.c
@@ -4091,9 +4091,14 @@ static int rt5645_i2c_remove(struct i2c_client *i2c)
if (i2c->irq)
free_irq(i2c->irq, rt5645);
+ /*
+ * Since the rt5645_btn_check_callback() can queue jack_detect_work,
+ * the timer need to be delted first
+ */
+ del_timer_sync(&rt5645->btn_check_timer);
+
cancel_delayed_work_sync(&rt5645->jack_detect_work);
cancel_delayed_work_sync(&rt5645->rcclock_work);
- del_timer_sync(&rt5645->btn_check_timer);
regulator_bulk_disable(ARRAY_SIZE(rt5645->supplies), rt5645->supplies);
--
2.34.1
2
1