mailweb.openeuler.org
Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Kernel

Threads by month
  • ----- 2025 -----
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • 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
kernel@openeuler.org

  • 57 participants
  • 21349 discussions
[openeuler:openEuler-1.0-LTS 1740/1740] mm/mem_reliable.c:126:5: sparse: sparse: symbol 'reliable_limit_handler' was not declared. Should it be static?
by kernel test robot 23 Nov '25

23 Nov '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 6c5657aecca1857be6ea39f789159c9acfde2f9e commit: 1845e7add95773a24019fb72bbea24a0a568663b [1740/1740] mm: Add reliable memory use limit for user tasks config: arm64-randconfig-r121-20250729 (https://download.01.org/0day-ci/archive/20251123/202511231029.GHGXNbti-lkp@…) compiler: aarch64-linux-gcc (GCC) 15.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251123/202511231029.GHGXNbti-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/202511231029.GHGXNbti-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> mm/mem_reliable.c:126:5: sparse: sparse: symbol 'reliable_limit_handler' was not declared. Should it be static? mm/mem_reliable.c:126:5: warning: no previous prototype for 'reliable_limit_handler' [-Wmissing-prototypes] 126 | int reliable_limit_handler(struct ctl_table *table, int write, | ^~~~~~~~~~~~~~~~~~~~~~ vim +/reliable_limit_handler +126 mm/mem_reliable.c 124 125 #ifdef CONFIG_SYSCTL > 126 int reliable_limit_handler(struct ctl_table *table, int write, 127 void __user *buffer, size_t *length, loff_t *ppos) 128 { 129 unsigned long old = task_reliable_limit; 130 int ret; 131 132 ret = proc_doulongvec_minmax(table, write, buffer, length, ppos); 133 if (ret == 0 && write) { 134 if (task_reliable_limit > total_reliable_mem_sz()) { 135 task_reliable_limit = old; 136 return -EINVAL; 137 } 138 } 139 140 return ret; 141 } 142 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 1740/1740] include/linux/mem_reliable.h:41:15: sparse: sparse: restricted gfp_t degrades to integer
by kernel test robot 23 Nov '25

23 Nov '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: 6c5657aecca1857be6ea39f789159c9acfde2f9e commit: 33d1f46ad98ea3a13752a6360d97732ab4e119b9 [1740/1740] mm: Introduce memory reliable config: arm64-randconfig-r121-20250729 (https://download.01.org/0day-ci/archive/20251123/202511230702.EBfVb7L8-lkp@…) compiler: aarch64-linux-gcc (GCC) 15.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251123/202511230702.EBfVb7L8-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/202511230702.EBfVb7L8-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) mm/page_alloc.c:140:1: sparse: sparse: symbol 'pcpu_drain_mutex' was not declared. Should it be static? mm/page_alloc.c: note: in included file (through include/linux/mm.h): >> include/linux/mem_reliable.h:41:15: sparse: sparse: restricted gfp_t degrades to integer mm/page_alloc.c:4572:13: sparse: sparse: restricted gfp_t degrades to integer mm/page_alloc.c:4573:27: sparse: sparse: invalid assignment: |= mm/page_alloc.c:4573:27: sparse: left side has type restricted gfp_t mm/page_alloc.c:4573:27: sparse: right side has type unsigned int mm/page_alloc.c: note: in included file (through include/linux/mm.h): include/linux/gfp.h:457:34: sparse: sparse: restricted gfp_t degrades to integer include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer include/linux/gfp.h:457:34: sparse: sparse: restricted gfp_t degrades to integer include/linux/gfp.h:457:34: sparse: sparse: restricted gfp_t degrades to integer mm/page_alloc.c: In function 'mem_init_print_info': mm/page_alloc.c:7373:27: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 20- | ^~ mm/page_alloc.c:7377:9: note: in expansion of macro 'adj_init_size' 7377 | adj_init_size(__init_begin, __init_end, init_data_size, | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:27: note: use '&__init_begin[0] <= &_sinittext[0]' to compare the addresses 7373 | if (start <= pos && pos < end && size > adj) 26- | ^~ mm/page_alloc.c:7377:9: note: in expansion of macro 'adj_init_size' 7377 | adj_init_size(__init_begin, __init_end, init_data_size, | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:41: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 32- | ^ mm/page_alloc.c:7377:9: note: in expansion of macro 'adj_init_size' 7377 | adj_init_size(__init_begin, __init_end, init_data_size, | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:41: note: use '&_sinittext[0] < &__init_end[0]' to compare the addresses 7373 | if (start <= pos && pos < end && size > adj) 38- | ^ mm/page_alloc.c:7377:9: note: in expansion of macro 'adj_init_size' 7377 | adj_init_size(__init_begin, __init_end, init_data_size, | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:27: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 44- | ^~ mm/page_alloc.c:7379:9: note: in expansion of macro 'adj_init_size' 7379 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:27: note: use '&_stext[0] <= &_sinittext[0]' to compare the addresses 7373 | if (start <= pos && pos < end && size > adj) 50- | ^~ mm/page_alloc.c:7379:9: note: in expansion of macro 'adj_init_size' 7379 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:41: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 56- | ^ mm/page_alloc.c:7379:9: note: in expansion of macro 'adj_init_size' 7379 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:41: note: use '&_sinittext[0] < &_etext[0]' to compare the addresses 7373 | if (start <= pos && pos < end && size > adj) 62- | ^ mm/page_alloc.c:7379:9: note: in expansion of macro 'adj_init_size' 7379 | adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:27: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 68- | ^~ mm/page_alloc.c:7380:9: note: in expansion of macro 'adj_init_size' 7380 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:27: note: use '&_sdata[0] <= &__init_begin[0]' to compare the addresses 7373 | if (start <= pos && pos < end && size > adj) 74- | ^~ mm/page_alloc.c:7380:9: note: in expansion of macro 'adj_init_size' 7380 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:41: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 80- | ^ mm/page_alloc.c:7380:9: note: in expansion of macro 'adj_init_size' 7380 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:41: note: use '&__init_begin[0] < &_edata[0]' to compare the addresses 7373 | if (start <= pos && pos < end && size > adj) 86- | ^ mm/page_alloc.c:7380:9: note: in expansion of macro 'adj_init_size' 7380 | adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:27: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 92- | ^~ mm/page_alloc.c:7381:9: note: in expansion of macro 'adj_init_size' 7381 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:27: note: use '&_stext[0] <= &__start_rodata[0]' to compare the addresses 7373 | if (start <= pos && pos < end && size > adj) 98- | ^~ mm/page_alloc.c:7381:9: note: in expansion of macro 'adj_init_size' 7381 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize); | ^~~~~~~~~~~~~ mm/page_alloc.c:7373:41: warning: comparison between two arrays [-Warray-compare] 7373 | if (start <= pos && pos < end && size > adj) 104- | ^ mm/page_alloc.c:7381:9: note: in expansion of macro 'adj_init_size' 7381 | adj_init_size(_stext, _etext, codesize, __start_rodata, rosize); vim +41 include/linux/mem_reliable.h 31 32 static inline bool skip_none_movable_zone(gfp_t gfp, struct zoneref *z) 33 { 34 if (!mem_reliable_is_enabled()) 35 return false; 36 37 if (!current->mm || (current->flags & PF_KTHREAD)) 38 return false; 39 40 /* user tasks can only alloc memory from non-mirrored region */ > 41 if (!(gfp & ___GFP_RELIABILITY) && (gfp & __GFP_HIGHMEM) && 42 (gfp & __GFP_MOVABLE)) { 43 if (zonelist_zone_idx(z) < ZONE_MOVABLE) 44 return true; 45 } 46 47 return false; 48 } 49 #else 50 #define reliable_enabled 0 51 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3306/3306] include/trace/events/kmem.h:416:1: error: incompatible function pointer types passing 'void (void *, struct mem_sampling_record *)' to parameter of type 'void (*)(void *, struct mem_sampling_record *)'
by kernel test robot 23 Nov '25

23 Nov '25
Hi Ze, FYI, the error/warning still remains. tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: ea193ff9f080f6657caa2b5f907d5465ca3147dc commit: 5c9754d56876f60e199456beda45715da2d1a20b [3306/3306] mm/mem_sampling: Add eBPF interface for memory access tracing config: arm64-randconfig-003-20251123 (https://download.01.org/0day-ci/archive/20251123/202511230641.K6V35Qsp-lkp@…) compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9e9fe08b16ea2c4d9867fb4974edf2a3776d6ece) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251123/202511230641.K6V35Qsp-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/202511230641.K6V35Qsp-lkp@intel.com/ All error/warnings (new ones prefixed by >>): In file included from mm/slub.c:46: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] include/trace/events/kmem.h:419:10: error: incompatible pointer types passing 'struct mem_sampling_record *' to parameter of type 'struct mem_sampling_record *' [-Wincompatible-pointer-types] 419 | TP_ARGS(record), | ^~~~~~ include/trace/events/kmem.h:417:39: note: passing argument to parameter 'record' here 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:419:10: error: incompatible pointer types passing 'struct mem_sampling_record *' to parameter of type 'struct mem_sampling_record *' [-Wincompatible-pointer-types] 419 | TP_ARGS(record), | ^~~~~~ include/trace/events/kmem.h:417:39: note: passing argument to parameter 'record' here 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] mm/slub.c:2281:15: warning: variable 'partial_slabs' set but not used [-Wunused-but-set-variable] 2281 | unsigned int partial_slabs = 0; | ^ 8 warnings and 2 errors generated. -- In file included from mm/slab_common.c:35: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] include/trace/events/kmem.h:419:10: error: incompatible pointer types passing 'struct mem_sampling_record *' to parameter of type 'struct mem_sampling_record *' [-Wincompatible-pointer-types] 419 | TP_ARGS(record), | ^~~~~~ include/trace/events/kmem.h:417:39: note: passing argument to parameter 'record' here 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:419:10: error: incompatible pointer types passing 'struct mem_sampling_record *' to parameter of type 'struct mem_sampling_record *' [-Wincompatible-pointer-types] 419 | TP_ARGS(record), | ^~~~~~ include/trace/events/kmem.h:417:39: note: passing argument to parameter 'record' here 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:95: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:416:1: error: conflicting types for '__traceiter_mm_spe_record' 416 | TRACE_EVENT(mm_spe_record, | ^ include/trace/define_trace.h:28:2: note: expanded from macro 'TRACE_EVENT' 28 | DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:341:2: note: expanded from macro 'DEFINE_TRACE' 341 | DEFINE_TRACE_FN(name, NULL, NULL, PARAMS(proto), PARAMS(args)); | ^ include/linux/tracepoint.h:305:6: note: expanded from macro 'DEFINE_TRACE_FN' 305 | int __traceiter_##_name(void *__data, proto); \ | ^ <scratch space>:97:1: note: expanded from here 97 | __traceiter_mm_spe_record | ^ include/trace/events/kmem.h:416:1: note: previous declaration is here 416 | TRACE_EVENT(mm_spe_record, | ^ include/linux/tracepoint.h:566:2: note: expanded from macro 'TRACE_EVENT' 566 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:432:2: note: expanded from macro 'DECLARE_TRACE' 432 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ | ^ include/linux/tracepoint.h:252:13: note: expanded from macro '__DECLARE_TRACE' 252 | extern int __traceiter_##name(data_proto); \ | ^ <scratch space>:20:1: note: expanded from here 20 | __traceiter_mm_spe_record | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:95: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] include/trace/events/kmem.h:416:1: error: conflicting types for '__traceiter_mm_spe_record' 416 | TRACE_EVENT(mm_spe_record, | ^ include/trace/define_trace.h:28:2: note: expanded from macro 'TRACE_EVENT' 28 | DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:341:2: note: expanded from macro 'DEFINE_TRACE' 341 | DEFINE_TRACE_FN(name, NULL, NULL, PARAMS(proto), PARAMS(args)); | ^ include/linux/tracepoint.h:319:6: note: expanded from macro 'DEFINE_TRACE_FN' 319 | int __traceiter_##_name(void *__data, proto) \ | ^ <scratch space>:107:1: note: expanded from here 107 | __traceiter_mm_spe_record | ^ include/trace/events/kmem.h:416:1: note: previous declaration is here 416 | TRACE_EVENT(mm_spe_record, | ^ include/linux/tracepoint.h:566:2: note: expanded from macro 'TRACE_EVENT' 566 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:432:2: note: expanded from macro 'DECLARE_TRACE' 432 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ | ^ include/linux/tracepoint.h:252:13: note: expanded from macro '__DECLARE_TRACE' 252 | extern int __traceiter_##name(data_proto); \ | ^ <scratch space>:20:1: note: expanded from here 20 | __traceiter_mm_spe_record | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:95: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:416:1: error: conflicting types for '__probestub_mm_spe_record' 416 | TRACE_EVENT(mm_spe_record, | ^ include/trace/define_trace.h:28:2: note: expanded from macro 'TRACE_EVENT' 28 | DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:341:2: note: expanded from macro 'DEFINE_TRACE' 341 | DEFINE_TRACE_FN(name, NULL, NULL, PARAMS(proto), PARAMS(args)); | ^ include/linux/tracepoint.h:335:7: note: expanded from macro 'DEFINE_TRACE_FN' 335 | void __probestub_##_name(void *__data, proto) \ | ^ <scratch space>:118:1: note: expanded from here 118 | __probestub_mm_spe_record | ^ include/trace/events/kmem.h:416:1: note: previous declaration is here include/trace/define_trace.h:28:2: note: expanded from macro 'TRACE_EVENT' 28 | DEFINE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:341:2: note: expanded from macro 'DEFINE_TRACE' 341 | DEFINE_TRACE_FN(name, NULL, NULL, PARAMS(proto), PARAMS(args)); | ^ include/linux/tracepoint.h:306:7: note: expanded from macro 'DEFINE_TRACE_FN' 306 | void __probestub_##_name(void *__data, proto); \ | ^ <scratch space>:98:1: note: expanded from here 98 | __probestub_mm_spe_record | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:102: In file included from include/trace/trace_events.h:286: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:102: In file included from include/trace/trace_events.h:460: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:419:10: error: incompatible pointer types passing 'struct mem_sampling_record *' to parameter of type 'struct mem_sampling_record *' [-Wincompatible-pointer-types] 419 | TP_ARGS(record), | ^~~~~~ include/trace/events/kmem.h:417:39: note: passing argument to parameter 'record' here 417 | TP_PROTO(struct mem_sampling_record *record), | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:102: In file included from include/trace/trace_events.h:460: include/trace/events/kmem.h:428:26: error: incomplete definition of type 'struct mem_sampling_record' 428 | __entry->vaddr = record->virt_addr; | ~~~~~~^ include/trace/events/kmem.h:417:18: note: forward declaration of 'struct mem_sampling_record' 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:429:26: error: incomplete definition of type 'struct mem_sampling_record' 429 | __entry->paddr = record->phys_addr; | ~~~~~~^ include/trace/events/kmem.h:417:18: note: forward declaration of 'struct mem_sampling_record' 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:430:24: error: incomplete definition of type 'struct mem_sampling_record' 430 | __entry->pid = record->context_id; | ~~~~~~^ include/trace/events/kmem.h:417:18: note: forward declaration of 'struct mem_sampling_record' 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:419:10: error: incompatible pointer types passing 'struct mem_sampling_record *' to parameter of type 'struct mem_sampling_record *' [-Wincompatible-pointer-types] 419 | TP_ARGS(record), | ^~~~~~ include/trace/events/kmem.h:417:39: note: passing argument to parameter 'record' here 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:416:1: error: incompatible function pointer types passing 'void (void *, struct mem_sampling_record *)' to parameter of type 'void (*)(void *, struct mem_sampling_record *)' [-Wincompatible-function-pointer-types] 416 | TRACE_EVENT(mm_spe_record, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | TP_PROTO(struct mem_sampling_record *record), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | 419 | TP_ARGS(record), | ~~~~~~~~~~~~~~~~ 420 | 421 | TP_STRUCT__entry( | ~~~~~~~~~~~~~~~~~ 422 | __field(u64, vaddr) | ~~~~~~~~~~~~~~~~~~~ 423 | __field(u64, paddr) | ~~~~~~~~~~~~~~~~~~~ 424 | __field(int, pid) | ~~~~~~~~~~~~~~~~~ 425 | ), | ~~ 426 | 427 | TP_fast_assign( | ~~~~~~~~~~~~~~~ 428 | __entry->vaddr = record->virt_addr; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 429 | __entry->paddr = record->phys_addr; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 430 | __entry->pid = record->context_id; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | include/trace/trace_events.h:46:2: note: expanded from macro 'TRACE_EVENT' 46 | DEFINE_EVENT(name, name, PARAMS(proto), PARAMS(args)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/trace/trace_events.h:457:35: note: expanded from macro 'DEFINE_EVENT' 457 | check_trace_callback_type_##call(trace_event_raw_event_##template); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ <scratch space>:129:1: note: expanded from here 129 | trace_event_raw_event_mm_spe_record | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/trace/events/kmem.h:416:1: note: passing argument to parameter 'cb' here 416 | TRACE_EVENT(mm_spe_record, | ^ include/linux/tracepoint.h:566:2: note: expanded from macro 'TRACE_EVENT' 566 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:432:2: note: expanded from macro 'DECLARE_TRACE' 432 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ | ^ include/linux/tracepoint.h:287:42: note: expanded from macro '__DECLARE_TRACE' 287 | check_trace_callback_type_##name(void (*cb)(data_proto)) \ | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:102: In file included from include/trace/trace_events.h:512: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:103: In file included from include/trace/perf.h:75: >> include/trace/events/kmem.h:417:18: warning: declaration of 'struct mem_sampling_record' will not be visible outside of this function [-Wvisibility] 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:416:1: error: conflicting types for 'perf_trace_mm_spe_record' 416 | TRACE_EVENT(mm_spe_record, | ^ include/trace/trace_events.h:40:2: note: expanded from macro 'TRACE_EVENT' 40 | DECLARE_EVENT_CLASS(name, \ | ^ include/trace/perf.h:17:27: note: expanded from macro 'DECLARE_EVENT_CLASS' 17 | static notrace void \ | ^ <scratch space>:5:1: note: expanded from here 5 | perf_trace_mm_spe_record | ^ include/trace/events/kmem.h:416:1: note: previous declaration is here 416 | TRACE_EVENT(mm_spe_record, | ^ include/trace/trace_events.h:40:2: note: expanded from macro 'TRACE_EVENT' 40 | DECLARE_EVENT_CLASS(name, \ | ^ include/trace/trace_events.h:467:72: note: expanded from macro 'DECLARE_EVENT_CLASS' 467 | #define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \ | ^ include/trace/trace_events.h:383:2: note: expanded from macro '\ _TRACE_PERF_PROTO' 383 | perf_trace_##call(void *__data, proto); | ^ <scratch space>:57:1: note: expanded from here 57 | perf_trace_mm_spe_record | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:103: In file included from include/trace/perf.h:75: include/trace/events/kmem.h:419:10: error: incompatible pointer types passing 'struct mem_sampling_record *' to parameter of type 'struct mem_sampling_record *' [-Wincompatible-pointer-types] 419 | TP_ARGS(record), | ^~~~~~ include/trace/events/kmem.h:417:39: note: passing argument to parameter 'record' here 417 | TP_PROTO(struct mem_sampling_record *record), | ^ In file included from mm/slab_common.c:35: In file included from include/trace/events/kmem.h:441: In file included from include/trace/define_trace.h:103: In file included from include/trace/perf.h:75: include/trace/events/kmem.h:428:26: error: incomplete definition of type 'struct mem_sampling_record' 428 | __entry->vaddr = record->virt_addr; | ~~~~~~^ include/trace/events/kmem.h:417:18: note: forward declaration of 'struct mem_sampling_record' 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:429:26: error: incomplete definition of type 'struct mem_sampling_record' 429 | __entry->paddr = record->phys_addr; | ~~~~~~^ include/trace/events/kmem.h:417:18: note: forward declaration of 'struct mem_sampling_record' 417 | TP_PROTO(struct mem_sampling_record *record), | ^ include/trace/events/kmem.h:430:24: error: incomplete definition of type 'struct mem_sampling_record' 430 | __entry->pid = record->context_id; | ~~~~~~^ include/trace/events/kmem.h:417:18: note: forward declaration of 'struct mem_sampling_record' 417 | TP_PROTO(struct mem_sampling_record *record), | ^ >> include/trace/events/kmem.h:416:1: error: incompatible function pointer types passing 'void (void *, struct mem_sampling_record *)' to parameter of type 'void (*)(void *, struct mem_sampling_record *)' [-Wincompatible-function-pointer-types] 416 | TRACE_EVENT(mm_spe_record, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | TP_PROTO(struct mem_sampling_record *record), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | 419 | TP_ARGS(record), | ~~~~~~~~~~~~~~~~ 420 | 421 | TP_STRUCT__entry( | ~~~~~~~~~~~~~~~~~ 422 | __field(u64, vaddr) | ~~~~~~~~~~~~~~~~~~~ 423 | __field(u64, paddr) | ~~~~~~~~~~~~~~~~~~~ 424 | __field(int, pid) | ~~~~~~~~~~~~~~~~~ 425 | ), | ~~ 426 | 427 | TP_fast_assign( | ~~~~~~~~~~~~~~~ 428 | __entry->vaddr = record->virt_addr; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 429 | __entry->paddr = record->phys_addr; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 430 | __entry->pid = record->context_id; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | include/trace/trace_events.h:46:2: note: expanded from macro 'TRACE_EVENT' 46 | DEFINE_EVENT(name, name, PARAMS(proto), PARAMS(args)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/trace/perf.h:67:35: note: expanded from macro 'DEFINE_EVENT' 67 | check_trace_callback_type_##call(perf_trace_##template); \ | ^~~~~~~~~~~~~~~~~~~~~ <scratch space>:11:1: note: expanded from here 11 | perf_trace_mm_spe_record | ^~~~~~~~~~~~~~~~~~~~~~~~ include/trace/events/kmem.h:416:1: note: passing argument to parameter 'cb' here 416 | TRACE_EVENT(mm_spe_record, | ^ include/linux/tracepoint.h:566:2: note: expanded from macro 'TRACE_EVENT' 566 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | ^ include/linux/tracepoint.h:432:2: note: expanded from macro 'DECLARE_TRACE' 432 | __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ | ^ include/linux/tracepoint.h:287:42: note: expanded from macro '__DECLARE_TRACE' 287 | check_trace_callback_type_##name(void (*cb)(data_proto)) \ | ^ 16 warnings and 17 errors generated. .. vim +416 include/trace/events/kmem.h 388 389 TP_PROTO(struct mm_struct *mm, 390 int member), 391 392 TP_ARGS(mm, member), 393 394 TP_STRUCT__entry( 395 __field(unsigned int, mm_id) 396 __field(unsigned int, curr) 397 __field(int, member) 398 __field(long, size) 399 ), 400 401 TP_fast_assign( 402 __entry->mm_id = mm_ptr_to_hash(mm); 403 __entry->curr = !!(current->mm == mm); 404 __entry->member = member; 405 __entry->size = (mm_counter_sum_positive(mm, member) 406 << PAGE_SHIFT); 407 ), 408 409 TP_printk("mm_id=%u curr=%d type=%s size=%ldB", 410 __entry->mm_id, 411 __entry->curr, 412 __print_symbolic(__entry->member, TRACE_MM_PAGES), 413 __entry->size) 414 ); 415 #ifdef CONFIG_ARM_SPE_MEM_SAMPLING > 416 TRACE_EVENT(mm_spe_record, > 417 TP_PROTO(struct mem_sampling_record *record), 418 419 TP_ARGS(record), 420 421 TP_STRUCT__entry( 422 __field(u64, vaddr) 423 __field(u64, paddr) 424 __field(int, pid) 425 ), 426 427 TP_fast_assign( 428 __entry->vaddr = record->virt_addr; 429 __entry->paddr = record->phys_addr; 430 __entry->pid = record->context_id; 431 432 ), 433 434 TP_printk("vaddr=%llu paddr=%llu pid=%d", 435 __entry->vaddr, __entry->paddr, __entry->pid) 436 ); 437 #endif /* CONFIG_ARM_SPE_MEM_SAMPLING */ 438 #endif /* _TRACE_KMEM_H */ 439 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3306/3306] arch/arm64/kernel/xcall/xcall.c:49:24: warning: address of array '((struct xcall_info *)task->xinfo)->xcall_enable' will always evaluate to 'true'
by kernel test robot 23 Nov '25

23 Nov '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: ea193ff9f080f6657caa2b5f907d5465ca3147dc commit: fd83d0fe16f1c0a0b163480a40e424a6d3438612 [3306/3306] xcall: Rework the early exception vector of XCALL and SYNC config: arm64-randconfig-004-20251123 (https://download.01.org/0day-ci/archive/20251123/202511230550.gjk44kyv-lkp@…) compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 9e9fe08b16ea2c4d9867fb4974edf2a3776d6ece) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251123/202511230550.gjk44kyv-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/202511230550.gjk44kyv-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from <built-in>:3: In file included from include/linux/compiler_types.h:150: include/linux/compiler-clang.h:33:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined] 33 | #define __SANITIZE_ADDRESS__ | ^ <built-in>:367:9: note: previous definition is here 367 | #define __SANITIZE_ADDRESS__ 1 | ^ >> arch/arm64/kernel/xcall/xcall.c:49:24: warning: address of array '((struct xcall_info *)task->xinfo)->xcall_enable' will always evaluate to 'true' [-Wpointer-bool-conversion] 49 | if (TASK_XINFO(task)->xcall_enable) | ~~ ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ 2 warnings generated. vim +49 arch/arm64/kernel/xcall/xcall.c 46 47 void xcall_info_switch(struct task_struct *task) 48 { > 49 if (TASK_XINFO(task)->xcall_enable) -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-5.10 3301/3301] drivers/misc/zcopy/zcopy.c:259:5: warning: no previous prototype for 'attach_huge_pmd'
by kernel test robot 23 Nov '25

23 Nov '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: 40e02117ca786975378e324ac2e14cc00b00206e commit: 2125c55fc8765bced7091ccef19d2733a9ad9de0 [3301/3301] zcopy: Extend PMD trans hugepage mapping ability config: arm64-randconfig-002-20251123 (https://download.01.org/0day-ci/archive/20251123/202511230145.Q8A14oTe-lkp@…) compiler: aarch64-linux-gcc (GCC) 11.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251123/202511230145.Q8A14oTe-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/202511230145.Q8A14oTe-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/misc/zcopy/zcopy.c:259:5: warning: no previous prototype for 'attach_huge_pmd' [-Wmissing-prototypes] 259 | int attach_huge_pmd(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, | ^~~~~~~~~~~~~~~ vim +/attach_huge_pmd +259 drivers/misc/zcopy/zcopy.c 258 > 259 int attach_huge_pmd(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, 260 unsigned long dst_addr, unsigned long src_addr, pmd_t *dst_pmdp, pmd_t *src_pmdp) 261 { 262 struct mm_struct *dst_mm, *src_mm; 263 spinlock_t *src_ptl, *dst_ptl; 264 struct page *src_thp_page, *orig_thp_page; 265 pmd_t pmd, orig_pmd; 266 pgtable_t pgtable; 267 268 269 if (!vma_is_anonymous(dst_vma)) 270 return -EINVAL; 271 272 dst_mm = dst_vma->vm_mm; 273 src_mm = src_vma->vm_mm; 274 275 /* alloc a pgtable for new pmdp */ 276 pgtable = pte_alloc_one(dst_mm); 277 if (unlikely(!pgtable)) 278 return -ENOMEM; 279 280 src_ptl = pmd_lockptr(src_mm, src_pmdp); 281 dst_ptl = pmd_lockptr(dst_mm, dst_pmdp); 282 283 spin_lock(src_ptl); 284 pmd = *src_pmdp; 285 src_thp_page = pmd_page(pmd); 286 if (unlikely(!PageHead(src_thp_page))) { 287 pr_err("VM assertion failed: it is not a head page\n"); 288 spin_unlock(src_ptl); 289 return -EINVAL; 290 } 291 292 get_page(src_thp_page); 293 atomic_inc(compound_mapcount_ptr(src_thp_page)); 294 spin_unlock(src_ptl); 295 296 spin_lock_nested(dst_ptl, SINGLE_DEPTH_NESTING); 297 orig_pmd = *dst_pmdp; 298 /* umap the old page mappings */ 299 if (!pmd_none(orig_pmd)) { 300 orig_thp_page = pmd_page(orig_pmd); 301 put_page(orig_thp_page); 302 atomic_dec(compound_mapcount_ptr(orig_thp_page)); 303 zcopy_add_mm_counter(dst_mm, MM_ANONPAGES, -HPAGE_PMD_NR); 304 mm_dec_nr_ptes(dst_mm); 305 } 306 307 zcopy_add_mm_counter(dst_mm, MM_ANONPAGES, HPAGE_PMD_NR); 308 mm_inc_nr_ptes(dst_mm); 309 zcopy_pgtable_trans_huge_deposit(dst_mm, dst_pmdp, pgtable); 310 zcopy_set_pmd_at(dst_mm, dst_addr, dst_pmdp, pmd); 311 flush_tlb_range(dst_vma, dst_addr, dst_addr + HPAGE_PMD_SIZE); 312 spin_unlock(dst_ptl); 313 314 return 0; 315 } 316 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3304/3304] arch/arm64/kvm/vgic/vgic-its.c:567:40: error: passing argument 1 of 'hisi_ipiv_supported_per_vm' from incompatible pointer type
by kernel test robot 22 Nov '25

22 Nov '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: ea193ff9f080f6657caa2b5f907d5465ca3147dc commit: 22f1e3b38ca09cbc655a606e6404b996710841a1 [3304/3304] KVM: arm64: ipiv: fix bug in live migration config: arm64-defconfig (https://download.01.org/0day-ci/archive/20251122/202511221815.EIAnEfb9-lkp@…) compiler: aarch64-linux-gcc (GCC) 15.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251122/202511221815.EIAnEfb9-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/202511221815.EIAnEfb9-lkp@intel.com/ All errors (new ones prefixed by >>): arch/arm64/kvm/vgic/vgic-its.c: In function 'vgic_mmio_uaccess_write_its_iidr': >> arch/arm64/kvm/vgic/vgic-its.c:567:40: error: passing argument 1 of 'hisi_ipiv_supported_per_vm' from incompatible pointer type [-Wincompatible-pointer-types] 567 | if (hisi_ipiv_supported_per_vm(kvm) && | ^~~ | | | struct kvm * In file included from arch/arm64/kvm/vgic/vgic-its.c:25: arch/arm64/kvm/hisilicon/hisi_virt.h:127:64: note: expected 'struct kvm_vcpu *' but argument is of type 'struct kvm *' 127 | static inline bool hisi_ipiv_supported_per_vm(struct kvm_vcpu *vcpu) | ~~~~~~~~~~~~~~~~~^~~~ vim +/hisi_ipiv_supported_per_vm +567 arch/arm64/kvm/vgic/vgic-its.c 555 556 static int vgic_mmio_uaccess_write_its_iidr(struct kvm *kvm, 557 struct vgic_its *its, 558 gpa_t addr, unsigned int len, 559 unsigned long val) 560 { 561 u32 rev = GITS_IIDR_REV(val); 562 563 if (rev >= NR_ITS_ABIS) 564 return -EINVAL; 565 566 #ifdef CONFIG_ARM64_HISI_IPIV > 567 if (hisi_ipiv_supported_per_vm(kvm) && 568 val & (1UL << HISI_GUEST_ENABLE_IPIV_SHIFT)) 569 kvm->arch.vgic.its_vm.enable_ipiv_from_guest = true; 570 #endif 571 572 return vgic_its_set_abi(its, rev); 573 } 574 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH OLK-6.6] ASoC: Intel: bytcr_rt5651: Fix invalid quirk input mapping
by z00845436 22 Nov '25

22 Nov '25
From: Takashi Iwai <tiwai(a)suse.de> mainline inclusion from mainline-v6.18-rc1 commit 4336efb59ef364e691ef829a73d9dbd4d5ed7c7b category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/ID6BB3 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… ---------------------------------- When an invalid value is passed via quirk option, currently bytcr_rt5640 driver just ignores and leaves as is, which may lead to unepxected results like OOB access. This patch adds the sanity check and corrects the input mapping to the certain default value if an invalid value is passed. Fixes: 64484ccee7af ("ASoC: Intel: bytcr_rt5651: Set card long_name based on quirks") Signed-off-by: Takashi Iwai <tiwai(a)suse.de> Message-ID: <20250902171826.27329-4-tiwai(a)suse.de> Signed-off-by: Mark Brown <broonie(a)kernel.org> --- sound/soc/intel/boards/bytcr_rt5651.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c index 805afaf47b29..2abe47303ecd 100644 --- a/sound/soc/intel/boards/bytcr_rt5651.c +++ b/sound/soc/intel/boards/bytcr_rt5651.c @@ -58,7 +58,8 @@ enum { BYT_RT5651_OVCD_SF_1P5 = (RT5651_OVCD_SF_1P5 << 13), }; -#define BYT_RT5651_MAP(quirk) ((quirk) & GENMASK(3, 0)) +#define BYT_RT5651_MAP_MASK GENMASK(3, 0) +#define BYT_RT5651_MAP(quirk) ((quirk) & BYT_RT5651_MAP_MASK) #define BYT_RT5651_JDSRC(quirk) (((quirk) & GENMASK(7, 4)) >> 4) #define BYT_RT5651_OVCD_TH(quirk) (((quirk) & GENMASK(12, 8)) >> 8) #define BYT_RT5651_OVCD_SF(quirk) (((quirk) & GENMASK(14, 13)) >> 13) @@ -100,14 +101,29 @@ MODULE_PARM_DESC(quirk, "Board-specific quirk override"); static void log_quirks(struct device *dev) { - if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_DMIC_MAP) + int map; + + map = BYT_RT5651_MAP(byt_rt5651_quirk); + switch (map) { + case BYT_RT5651_DMIC_MAP: dev_info(dev, "quirk DMIC_MAP enabled"); - if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_IN1_MAP) + break; + case BYT_RT5651_IN1_MAP: dev_info(dev, "quirk IN1_MAP enabled"); - if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_IN2_MAP) + break; + case BYT_RT5651_IN2_MAP: dev_info(dev, "quirk IN2_MAP enabled"); - if (BYT_RT5651_MAP(byt_rt5651_quirk) == BYT_RT5651_IN1_IN2_MAP) + break; + case BYT_RT5651_IN1_IN2_MAP: dev_info(dev, "quirk IN1_IN2_MAP enabled"); + break; + default: + dev_warn_once(dev, "quirk sets invalid input map: 0x%x, default to DMIC_MAP\n", map); + byt_rt5651_quirk &= ~BYT_RT5651_MAP_MASK; + byt_rt5651_quirk |= BYT_RT5651_DMIC_MAP; + break; + } + if (BYT_RT5651_JDSRC(byt_rt5651_quirk)) { dev_info(dev, "quirk realtek,jack-detect-source %ld\n", BYT_RT5651_JDSRC(byt_rt5651_quirk)); -- 2.43.0
2 1
0 0
[PATCH OLK-6.6] iommu/vt-d: debugfs: Fix legacy mode page table dump logic
by z00845436 22 Nov '25

22 Nov '25
From: "Vineeth Pillai (Google)" <vineeth(a)bitbyteword.org> mainline inclusion from mainline-v6.18-rc1 commit fbe6070c73badca726e4ff7877320e6c62339917 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/ID6B92 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- In legacy mode, SSPTPTR is ignored if TT is not 00b or 01b. SSPTPTR maybe uninitialized or zero in that case and may cause oops like: Oops: general protection fault, probably for non-canonical address 0xf00087d3f000f000: 0000 [#1] SMP NOPTI CPU: 2 UID: 0 PID: 786 Comm: cat Not tainted 6.16.0 #191 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-5.fc42 04/01/2014 RIP: 0010:pgtable_walk_level+0x98/0x150 RSP: 0018:ffffc90000f279c0 EFLAGS: 00010206 RAX: 0000000040000000 RBX: ffffc90000f27ab0 RCX: 000000000000001e RDX: 0000000000000003 RSI: f00087d3f000f000 RDI: f00087d3f0010000 RBP: ffffc90000f27a00 R08: ffffc90000f27a98 R09: 0000000000000002 R10: 0000000000000000 R11: 0000000000000000 R12: f00087d3f000f000 R13: 0000000000000000 R14: 0000000040000000 R15: ffffc90000f27a98 FS: 0000764566dcb740(0000) GS:ffff8881f812c000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000764566d44000 CR3: 0000000109d81003 CR4: 0000000000772ef0 PKRU: 55555554 Call Trace: <TASK> pgtable_walk_level+0x88/0x150 domain_translation_struct_show.isra.0+0x2d9/0x300 dev_domain_translation_struct_show+0x20/0x40 seq_read_iter+0x12d/0x490 ... Avoid walking the page table if TT is not 00b or 01b. Fixes: 2b437e804566 ("iommu/vt-d: debugfs: Support dumping a specified page table") Signed-off-by: Vineeth Pillai (Google) <vineeth(a)bitbyteword.org> Reviewed-by: Kevin Tian <kevin.tian(a)intel.com> Link: https://lore.kernel.org/r/20250814163153.634680-1-vineeth@bitbyteword.org Signed-off-by: Lu Baolu <baolu.lu(a)linux.intel.com> Signed-off-by: Joerg Roedel <joerg.roedel(a)amd.com> --- drivers/iommu/intel/debugfs.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/intel/debugfs.c b/drivers/iommu/intel/debugfs.c index 86b506af7daa..7223adfabd7d 100644 --- a/drivers/iommu/intel/debugfs.c +++ b/drivers/iommu/intel/debugfs.c @@ -435,8 +435,21 @@ static int domain_translation_struct_show(struct seq_file *m, } pgd &= VTD_PAGE_MASK; } else { /* legacy mode */ - pgd = context->lo & VTD_PAGE_MASK; - agaw = context->hi & 7; + u8 tt = (u8)(context->lo & GENMASK_ULL(3, 2)) >> 2; + + /* + * According to Translation Type(TT), + * get the page table pointer(SSPTPTR). + */ + switch (tt) { + case CONTEXT_TT_MULTI_LEVEL: + case CONTEXT_TT_DEV_IOTLB: + pgd = context->lo & VTD_PAGE_MASK; + agaw = context->hi & 7; + break; + default: + goto iommu_unlock; + } } seq_printf(m, "Device %04x:%02x:%02x.%x ", -- 2.43.0
2 1
0 0
[PATCH OLK-6.6] iommu/vt-d: debugfs: Fix legacy mode page table dump logic
by z00845436 22 Nov '25

22 Nov '25
From: "Vineeth Pillai (Google)" <vineeth(a)bitbyteword.org> mainline inclusion from mainline-v6.18-rc1 commit fbe6070c73badca726e4ff7877320e6c62339917 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/ID6B92 Reference:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.gi… -------------------------------- In legacy mode, SSPTPTR is ignored if TT is not 00b or 01b. SSPTPTR maybe uninitialized or zero in that case and may cause oops like: Oops: general protection fault, probably for non-canonical address 0xf00087d3f000f000: 0000 [#1] SMP NOPTI CPU: 2 UID: 0 PID: 786 Comm: cat Not tainted 6.16.0 #191 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-5.fc42 04/01/2014 RIP: 0010:pgtable_walk_level+0x98/0x150 RSP: 0018:ffffc90000f279c0 EFLAGS: 00010206 RAX: 0000000040000000 RBX: ffffc90000f27ab0 RCX: 000000000000001e RDX: 0000000000000003 RSI: f00087d3f000f000 RDI: f00087d3f0010000 RBP: ffffc90000f27a00 R08: ffffc90000f27a98 R09: 0000000000000002 R10: 0000000000000000 R11: 0000000000000000 R12: f00087d3f000f000 R13: 0000000000000000 R14: 0000000040000000 R15: ffffc90000f27a98 FS: 0000764566dcb740(0000) GS:ffff8881f812c000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000764566d44000 CR3: 0000000109d81003 CR4: 0000000000772ef0 PKRU: 55555554 Call Trace: <TASK> pgtable_walk_level+0x88/0x150 domain_translation_struct_show.isra.0+0x2d9/0x300 dev_domain_translation_struct_show+0x20/0x40 seq_read_iter+0x12d/0x490 ... Avoid walking the page table if TT is not 00b or 01b. Fixes: 2b437e804566 ("iommu/vt-d: debugfs: Support dumping a specified page table") Signed-off-by: Vineeth Pillai (Google) <vineeth(a)bitbyteword.org> Reviewed-by: Kevin Tian <kevin.tian(a)intel.com> Link: https://lore.kernel.org/r/20250814163153.634680-1-vineeth@bitbyteword.org Signed-off-by: Lu Baolu <baolu.lu(a)linux.intel.com> Signed-off-by: Joerg Roedel <joerg.roedel(a)amd.com> --- drivers/iommu/intel/debugfs.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/intel/debugfs.c b/drivers/iommu/intel/debugfs.c index 86b506af7daa..7223adfabd7d 100644 --- a/drivers/iommu/intel/debugfs.c +++ b/drivers/iommu/intel/debugfs.c @@ -435,8 +435,21 @@ static int domain_translation_struct_show(struct seq_file *m, } pgd &= VTD_PAGE_MASK; } else { /* legacy mode */ - pgd = context->lo & VTD_PAGE_MASK; - agaw = context->hi & 7; + u8 tt = (u8)(context->lo & GENMASK_ULL(3, 2)) >> 2; + + /* + * According to Translation Type(TT), + * get the page table pointer(SSPTPTR). + */ + switch (tt) { + case CONTEXT_TT_MULTI_LEVEL: + case CONTEXT_TT_DEV_IOTLB: + pgd = context->lo & VTD_PAGE_MASK; + agaw = context->hi & 7; + break; + default: + goto iommu_unlock; + } } seq_printf(m, "Device %04x:%02x:%02x.%x ", -- 2.43.0
2 1
0 0
[PATCH OLK-6.6] iommu/vt-d: debugfs: Fix legacy mode page table dump logic
by z00845436 22 Nov '25

22 Nov '25
From: "Vineeth Pillai (Google)" <vineeth(a)bitbyteword.org> mainline inclusion from mainline-v6.18-rc1 commit fbe6070c73badca726e4ff7877320e6c62339917 category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/ID6B92 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- In legacy mode, SSPTPTR is ignored if TT is not 00b or 01b. SSPTPTR maybe uninitialized or zero in that case and may cause oops like: Oops: general protection fault, probably for non-canonical address 0xf00087d3f000f000: 0000 [#1] SMP NOPTI CPU: 2 UID: 0 PID: 786 Comm: cat Not tainted 6.16.0 #191 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-5.fc42 04/01/2014 RIP: 0010:pgtable_walk_level+0x98/0x150 RSP: 0018:ffffc90000f279c0 EFLAGS: 00010206 RAX: 0000000040000000 RBX: ffffc90000f27ab0 RCX: 000000000000001e RDX: 0000000000000003 RSI: f00087d3f000f000 RDI: f00087d3f0010000 RBP: ffffc90000f27a00 R08: ffffc90000f27a98 R09: 0000000000000002 R10: 0000000000000000 R11: 0000000000000000 R12: f00087d3f000f000 R13: 0000000000000000 R14: 0000000040000000 R15: ffffc90000f27a98 FS: 0000764566dcb740(0000) GS:ffff8881f812c000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000764566d44000 CR3: 0000000109d81003 CR4: 0000000000772ef0 PKRU: 55555554 Call Trace: <TASK> pgtable_walk_level+0x88/0x150 domain_translation_struct_show.isra.0+0x2d9/0x300 dev_domain_translation_struct_show+0x20/0x40 seq_read_iter+0x12d/0x490 ... Avoid walking the page table if TT is not 00b or 01b. Fixes: 2b437e804566 ("iommu/vt-d: debugfs: Support dumping a specified page table") Signed-off-by: Vineeth Pillai (Google) <vineeth(a)bitbyteword.org> Reviewed-by: Kevin Tian <kevin.tian(a)intel.com> Link: https://lore.kernel.org/r/20250814163153.634680-1-vineeth@bitbyteword.org Signed-off-by: Lu Baolu <baolu.lu(a)linux.intel.com> Signed-off-by: Joerg Roedel <joerg.roedel(a)amd.com> --- drivers/iommu/intel/debugfs.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/drivers/iommu/intel/debugfs.c b/drivers/iommu/intel/debugfs.c index 86b506af7daa..7223adfabd7d 100644 --- a/drivers/iommu/intel/debugfs.c +++ b/drivers/iommu/intel/debugfs.c @@ -435,8 +435,21 @@ static int domain_translation_struct_show(struct seq_file *m, } pgd &= VTD_PAGE_MASK; } else { /* legacy mode */ - pgd = context->lo & VTD_PAGE_MASK; - agaw = context->hi & 7; + u8 tt = (u8)(context->lo & GENMASK_ULL(3, 2)) >> 2; + + /* + * According to Translation Type(TT), + * get the page table pointer(SSPTPTR). + */ + switch (tt) { + case CONTEXT_TT_MULTI_LEVEL: + case CONTEXT_TT_DEV_IOTLB: + pgd = context->lo & VTD_PAGE_MASK; + agaw = context->hi & 7; + break; + default: + goto iommu_unlock; + } } seq_printf(m, "Device %04x:%02x:%02x.%x ", -- 2.43.0
2 1
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • ...
  • 2135
  • Older →

HyperKitty Powered by HyperKitty