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 -----
  • 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

  • 4 participants
  • 18451 discussions
[openeuler:OLK-6.6 1834/1834] drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:87:21: sparse: sparse: symbol 'g_cdev_set' was not declared. Should it be static?
by kernel test robot 22 Jan '25

22 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 75c81bcddd82381fbd4cef477a5b56eb2fe56697 commit: 0b6609ecfba8575f870350666ab13e25accc8d14 [1834/1834] Huawei BMA: Adding Huawei BMA driver: host_cdev_drv config: x86_64-randconfig-121-20250122 (https://download.01.org/0day-ci/archive/20250122/202501221109.65gRQ9hH-lkp@…) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250122/202501221109.65gRQ9hH-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/202501221109.65gRQ9hH-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:246:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:258:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:264:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:313:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:323:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:349:9: sparse: sparse: Using plain integer as NULL pointer >> drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:87:21: sparse: sparse: symbol 'g_cdev_set' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:151:17: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __poll_t ( *poll )( ... ) @@ got unsigned int ( * )( ... ) @@ drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:151:17: sparse: expected restricted __poll_t ( *poll )( ... ) drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:151:17: sparse: got unsigned int ( * )( ... ) drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:147:30: sparse: sparse: symbol 'g_bma_cdev_fops' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:185:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:196:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:208:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c:213:17: sparse: sparse: Using plain integer as NULL pointer vim +/g_cdev_set +87 drivers/net/ethernet/huawei/bma/cdev_drv/bma_cdev.c 78 79 static int cdev_open(struct inode *inode, struct file *filp); 80 static int cdev_release(struct inode *inode, struct file *filp); 81 static unsigned int cdev_poll(struct file *file, poll_table *wait); 82 static ssize_t cdev_read(struct file *filp, char __user *data, size_t count, 83 loff_t *ppos); 84 static ssize_t cdev_write(struct file *filp, const char __user *data, 85 size_t count, loff_t *ppos); 86 > 87 struct cdev_dev_set g_cdev_set; 88 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[PATCH] mm/slub: Reduce memory consumption in extreme scenarios
by Kaixiong Yu 22 Jan '25

22 Jan '25
From: Chen Jun <chenjun102(a)huawei.com> mainline inclusion from mainline-v6.10-rc1 commit 9198ffbd2b494daae3a67cac1d59c3a2754e64cd category: bugfix bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBH72Q Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?… -------------------------------- When kmalloc_node() is called without __GFP_THISNODE and the target node lacks sufficient memory, SLUB allocates a folio from a different node other than the requested node, instead of taking a partial slab from it. However, since the allocated folio does not belong to the requested node, on the following allocation it is deactivated and added to the partial slab list of the node it belongs to. This behavior can result in excessive memory usage when the requested node has insufficient memory, as SLUB will repeatedly allocate folios from other nodes without reusing the previously allocated ones. To prevent memory wastage, when a preferred node is indicated (not NUMA_NO_NODE) but without a prior __GFP_THISNODE constraint: 1) try to get a partial slab from target node only by having __GFP_THISNODE in pc.flags for get_partial() 2) if 1) failed, try to allocate a new slab from target node with GFP_NOWAIT | __GFP_THISNODE opportunistically. 3) if 2) failed, retry with original gfpflags which will allow get_partial() try partial lists of other nodes before potentially allocating new page from other nodes Without a preferred node, or with __GFP_THISNODE constraint, the behavior remains unchanged. On qemu with 4 numa nodes and each numa has 1G memory. Write a test ko to call kmalloc_node(196, GFP_KERNEL, 3) for (4 * 1024 + 4) * 1024 times. cat /proc/slabinfo shows: kmalloc-256 4200530 13519712 256 32 2 : tunables.. after this patch, cat /proc/slabinfo shows: kmalloc-256 4200558 4200768 256 32 2 : tunables.. Signed-off-by: Chen Jun <chenjun102(a)huawei.com> Signed-off-by: Kefeng Wang <wangkefeng.wang(a)huawei.com> Signed-off-by: Vlastimil Babka <vbabka(a)suse.cz> Conflicts: mm/slub.c [The conflict is large. Because OLK-5.10 does not merge mainline patch 53a0de06e50acb372c75d87fcc72ddfdf4a060ee ("mm, slub: dissolve new_slab_objects() into ___slab_alloc()")] Signed-off-by: Kaixiong Yu <yukaixiong(a)huawei.com> --- mm/slub.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/mm/slub.c b/mm/slub.c index 9dd4cc478ec3..d4e7e88df7ff 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2105,7 +2105,7 @@ static void *get_partial(struct kmem_cache *s, gfp_t flags, int node, searchnode = numa_mem_id(); object = get_partial_node(s, get_node(s, searchnode), c, flags); - if (object || node != NUMA_NO_NODE) + if (object || (node != NUMA_NO_NODE && (flags & __GFP_THISNODE))) return object; return get_any_partial(s, flags, c); @@ -2687,6 +2687,8 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, { void *freelist; struct page *page; + bool try_thisnode = true; + gfp_t pc_gfpflags; stat(s, ALLOC_SLOWPATH); @@ -2764,9 +2766,33 @@ static void *___slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, goto redo; } - freelist = new_slab_objects(s, gfpflags, node, &c); +new_objects: + + pc_gfpflags = gfpflags; + /* + * When a preferred node is indicated but no __GFP_THISNODE + * + * 1) try to get a partial slab from target node only by having + * __GFP_THISNODE in pc_gfpflags for new_slab_objects() + * 2) if 1) failed, try to allocate a new slab from target node with + * GPF_NOWAIT | __GFP_THISNODE opportunistically + * 3) if 2) failed, retry with original gfpflags which will allow + * new_slab_objects() try partial lists of other nodes before potentially + * allocating new page from other nodes + */ + if (unlikely(node != NUMA_NO_NODE && !(gfpflags & __GFP_THISNODE) + && try_thisnode)) + pc_gfpflags = GFP_NOWAIT | __GFP_THISNODE; + + freelist = new_slab_objects(s, pc_gfpflags, node, &c); if (unlikely(!freelist)) { + if (node != NUMA_NO_NODE && !(gfpflags & __GFP_THISNODE) + && try_thisnode) { + try_thisnode = false; + goto new_objects; + } + slab_out_of_memory(s, gfpflags, node); return NULL; } -- 2.34.1
1 0
0 0
[PATCH OLK-6.6] bpf: Fix theoretical prog_array UAF in __uprobe_perf_func()
by Pu Lehui 22 Jan '25

22 Jan '25
From: Jann Horn <jannh(a)google.com> stable inclusion from stable-v6.6.67 commit 68d23ee1bdf1c7ce499897d738033d67db46fffa category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IBJ838 Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id… -------------------------------- commit 7d0d673627e20cfa3b21a829a896ce03b58a4f1c upstream. Currently, the pointer stored in call->prog_array is loaded in __uprobe_perf_func(), with no RCU annotation and no immediately visible RCU protection, so it looks as if the loaded pointer can immediately be dangling. Later, bpf_prog_run_array_uprobe() starts a RCU-trace read-side critical section, but this is too late. It then uses rcu_dereference_check(), but this use of rcu_dereference_check() does not actually dereference anything. Fix it by aligning the semantics to bpf_prog_run_array(): Let the caller provide rcu_read_lock_trace() protection and then load call->prog_array with rcu_dereference_check(). This issue seems to be theoretical: I don't know of any way to reach this code without having handle_swbp() further up the stack, which is already holding a rcu_read_lock_trace() lock, so where we take rcu_read_lock_trace() in __uprobe_perf_func()/bpf_prog_run_array_uprobe() doesn't actually have any effect. Fixes: 8c7dcb84e3b7 ("bpf: implement sleepable uprobes by chaining gps") Suggested-by: Andrii Nakryiko <andrii(a)kernel.org> Signed-off-by: Jann Horn <jannh(a)google.com> Signed-off-by: Andrii Nakryiko <andrii(a)kernel.org> Link: https://lore.kernel.org/bpf/20241210-bpf-fix-uprobe-uaf-v4-1-5fc8959b2b74@g… Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org> Signed-off-by: Pu Lehui <pulehui(a)huawei.com> --- include/linux/bpf.h | 13 +++++-------- kernel/trace/trace_uprobe.c | 6 +++++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 73ef8dda7ada..8f4c303080a8 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -2078,26 +2078,25 @@ bpf_prog_run_array(const struct bpf_prog_array *array, * rcu-protected dynamically sized maps. */ static __always_inline u32 -bpf_prog_run_array_uprobe(const struct bpf_prog_array __rcu *array_rcu, +bpf_prog_run_array_uprobe(const struct bpf_prog_array *array, const void *ctx, bpf_prog_run_fn run_prog) { const struct bpf_prog_array_item *item; const struct bpf_prog *prog; - const struct bpf_prog_array *array; struct bpf_run_ctx *old_run_ctx; struct bpf_trace_run_ctx run_ctx; u32 ret = 1; might_fault(); + RCU_LOCKDEP_WARN(!rcu_read_lock_trace_held(), "no rcu lock held"); + + if (unlikely(!array)) + return ret; - rcu_read_lock_trace(); migrate_disable(); run_ctx.is_uprobe = true; - array = rcu_dereference_check(array_rcu, rcu_read_lock_trace_held()); - if (unlikely(!array)) - goto out; old_run_ctx = bpf_set_run_ctx(&run_ctx.run_ctx); item = &array->items[0]; while ((prog = READ_ONCE(item->prog))) { @@ -2112,9 +2111,7 @@ bpf_prog_run_array_uprobe(const struct bpf_prog_array __rcu *array_rcu, rcu_read_unlock(); } bpf_reset_run_ctx(old_run_ctx); -out: migrate_enable(); - rcu_read_unlock_trace(); return ret; } diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c index 791c0723212b..9110a759e882 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c @@ -1346,9 +1346,13 @@ static void __uprobe_perf_func(struct trace_uprobe *tu, #ifdef CONFIG_BPF_EVENTS if (bpf_prog_array_valid(call)) { + const struct bpf_prog_array *array; u32 ret; - ret = bpf_prog_run_array_uprobe(call->prog_array, regs, bpf_prog_run); + rcu_read_lock_trace(); + array = rcu_dereference_check(call->prog_array, rcu_read_lock_trace_held()); + ret = bpf_prog_run_array_uprobe(array, regs, bpf_prog_run); + rcu_read_unlock_trace(); if (!ret) return; } -- 2.34.1
2 1
0 0
[PATCH OLK-6.6] tracing/kprobe: Make trace_kprobe's module callback called after jump_label update
by Pu Lehui 22 Jan '25

22 Jan '25
From: "Masami Hiramatsu (Google)" <mhiramat(a)kernel.org> stable inclusion from stable-v6.6.69 commit d4d67fa7158daedfe0dbb264beb39238477f4023 category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IBJ86N Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id… -------------------------------- [ Upstream commit d685d55dfc86b1a4bdcec77c3c1f8a83f181264e ] Make sure the trace_kprobe's module notifer callback function is called after jump_label's callback is called. Since the trace_kprobe's callback eventually checks jump_label address during registering new kprobe on the loading module, jump_label must be updated before this registration happens. Link: https://lore.kernel.org/all/173387585556.995044.3157941002975446119.stgit@d… Fixes: 614243181050 ("tracing/kprobes: Support module init function probing") Signed-off-by: Masami Hiramatsu (Google) <mhiramat(a)kernel.org> Signed-off-by: Sasha Levin <sashal(a)kernel.org> Signed-off-by: Pu Lehui <pulehui(a)huawei.com> --- kernel/trace/trace_kprobe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index e3684eab3745..19da97098383 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c @@ -702,7 +702,7 @@ static int trace_kprobe_module_callback(struct notifier_block *nb, static struct notifier_block trace_kprobe_module_nb = { .notifier_call = trace_kprobe_module_callback, - .priority = 1 /* Invoked after kprobe module callback */ + .priority = 2 /* Invoked after kprobe and jump_label module callback */ }; static int count_symbols(void *data, unsigned long unused) -- 2.34.1
2 1
0 0
[openeuler:OLK-6.6 1834/1834] drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:261:37: sparse: sparse: incorrect type in assignment (different address spaces)
by kernel test robot 22 Jan '25

22 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 75c81bcddd82381fbd4cef477a5b56eb2fe56697 commit: f0db1bf5852542c46c16d0b305193069e265f769 [1834/1834] Huawei BMA: Adding Huawei BMA driver: host_edma_drv config: x86_64-randconfig-121-20250122 (https://download.01.org/0day-ci/archive/20250122/202501220955.ixdK6Dao-lkp@…) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250122/202501220955.ixdK6Dao-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/202501220955.ixdK6Dao-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:450:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:460:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:461:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:67:5: sparse: sparse: symbol 'edma_param_get_statics' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:103:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:114:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:125:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:185:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:192:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:201:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:214:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:251:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:259:14: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:258:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *edma_swap_addr @@ got unsigned char * @@ drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:258:37: sparse: expected void [noderef] __iomem *edma_swap_addr drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:258:37: sparse: got unsigned char * drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:262:14: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:261:37: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *veth_swap_addr @@ got unsigned char * @@ drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:261:37: sparse: expected void [noderef] __iomem *veth_swap_addr drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:261:37: sparse: got unsigned char * drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:282:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:292:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:303:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:316:17: sparse: sparse: Using plain integer as NULL pointer >> drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:328:5: sparse: sparse: symbol 'pme_pci_enable_msi' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:361:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:375:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:354:5: sparse: sparse: symbol 'pci_device_init' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:399:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:405:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:412:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:383:5: sparse: sparse: symbol 'pci_device_config' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:509:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:513:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:505:12: sparse: sparse: symbol 'bma_pci_init' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:520:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c:518:13: sparse: sparse: symbol 'bma_pci_cleanup' was not declared. Should it be static? -- drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:108:16: sparse: sparse: cast removes address space '__iomem' of expression >> drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:110:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:131:35: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:136:28: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:147:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:254:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:413:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:581:6: sparse: sparse: symbol 'host_dma_transfer_without_list' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:629:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:608:6: sparse: sparse: symbol 'host_dma_transfer_withlist' was not declared. Should it be static? drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:653:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:668:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:708:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:716:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:748:25: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:754:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:759:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:765:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:777:27: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:791:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:810:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:852:35: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:859:49: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:869:49: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:876:33: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:960:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:966:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:996:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1046:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1050:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1061:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1087:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1102:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1126:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1138:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1160:25: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1162:44: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1165:22: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1166:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned char * @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1166:33: sparse: expected void const volatile [noderef] __iomem *addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1166:33: sparse: got unsigned char * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1167:22: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1167:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *addr @@ got unsigned char * @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1167:22: sparse: expected void const volatile [noderef] __iomem *addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1167:22: sparse: got unsigned char * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1169:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1175:28: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1175:28: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1175:28: sparse: expected void volatile [noderef] __iomem *addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1175:28: sparse: got void * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1181:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1186:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1196:33: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1200:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1201:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1203:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1217:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1218:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1219:25: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1227:36: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1227:36: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got void * @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1227:36: sparse: expected void volatile [noderef] __iomem *addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1227:36: sparse: got void * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1272:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1282:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1287:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1299:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1356:17: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1372:23: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1371:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *edma_send_addr @@ got void * @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1371:35: sparse: expected void [noderef] __iomem *edma_send_addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1371:35: sparse: got void * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *edma_send_addr @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: expected void const * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: got void [noderef] __iomem *edma_send_addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const * @@ got void [noderef] __iomem *edma_send_addr @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: expected void const * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: got void [noderef] __iomem *edma_send_addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *p @@ got void [noderef] __iomem *edma_send_addr @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: expected void *p drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1374:9: sparse: got void [noderef] __iomem *edma_send_addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1377:23: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1376:35: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected void [noderef] __iomem *edma_recv_addr @@ got void * @@ drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1376:35: sparse: expected void [noderef] __iomem *edma_recv_addr drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1376:35: sparse: got void * drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1380:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1406:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1413:9: sparse: sparse: Using plain integer as NULL pointer drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c:1442:16: sparse: sparse: cast removes address space '__iomem' of expression drivers/net/ethernet/huawei/bma/edma_drv/edma_host.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true vim +261 drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c 177 178 static int ioremap_pme_bar1_mem(struct pci_dev *pdev, 179 struct bma_pci_dev_s *bma_pci_dev) 180 { 181 unsigned long bar1_resource_flag = 0; 182 u32 data = 0; 183 184 bma_pci_dev->kbox_base_len = PCI_PME_USEABLE_SPACE; 185 BMA_LOG(DLOG_DEBUG, "1710\n"); 186 187 bma_pci_dev->bma_base_phy_addr = 188 pci_resource_start(pdev, PCI_BAR1); 189 bar1_resource_flag = pci_resource_flags(pdev, PCI_BAR1); 190 191 if (!(bar1_resource_flag & IORESOURCE_MEM)) { 192 BMA_LOG(DLOG_ERROR, 193 "Cannot find proper PCI device base address, aborting\n"); 194 return -ENODEV; 195 } 196 197 bma_pci_dev->bma_base_len = pci_resource_len(pdev, PCI_BAR1); 198 bma_pci_dev->edma_swap_len = EDMA_SWAP_DATA_SIZE; 199 bma_pci_dev->veth_swap_len = VETH_SWAP_DATA_SIZE; 200 201 BMA_LOG(DLOG_DEBUG, 202 "bar1: bma_base_len = 0x%lx, edma_swap_len = %ld, veth_swap_len = %ld(0x%lx)\n", 203 bma_pci_dev->bma_base_len, bma_pci_dev->edma_swap_len, 204 bma_pci_dev->veth_swap_len, bma_pci_dev->veth_swap_len); 205 206 bma_pci_dev->hostrtc_phyaddr = bma_pci_dev->bma_base_phy_addr; 207 /* edma */ 208 bma_pci_dev->edma_swap_phy_addr = 209 bma_pci_dev->bma_base_phy_addr + EDMA_SWAP_BASE_OFFSET; 210 /* veth */ 211 bma_pci_dev->veth_swap_phy_addr = 212 bma_pci_dev->edma_swap_phy_addr + EDMA_SWAP_DATA_SIZE; 213 214 BMA_LOG(DLOG_DEBUG, 215 "bar1: hostrtc_phyaddr = 0x%lx, edma_swap_phy_addr = 0x%lx, veth_swap_phy_addr = 0x%lx\n", 216 bma_pci_dev->hostrtc_phyaddr, 217 bma_pci_dev->edma_swap_phy_addr, 218 bma_pci_dev->veth_swap_phy_addr); 219 220 __atu_config_H(pdev, 0, 221 GET_HIGH_ADDR(bma_pci_dev->kbox_base_phy_addr), 222 (bma_pci_dev->kbox_base_phy_addr & 0xffffffff), 223 0, PCI_BAR0_PME_1710, PCI_PME_USEABLE_SPACE); 224 225 __atu_config_H(pdev, 1, 226 GET_HIGH_ADDR(bma_pci_dev->hostrtc_phyaddr), 227 (bma_pci_dev->hostrtc_phyaddr & 0xffffffff), 228 0, HOSTRTC_REG_BASE, HOSTRTC_REG_SIZE); 229 230 __atu_config_H(pdev, 2, 231 GET_HIGH_ADDR(bma_pci_dev->edma_swap_phy_addr), 232 (bma_pci_dev->edma_swap_phy_addr & 0xffffffff), 233 0, EDMA_SWAP_DATA_BASE, EDMA_SWAP_DATA_SIZE); 234 235 __atu_config_H(pdev, 3, 236 GET_HIGH_ADDR(bma_pci_dev->veth_swap_phy_addr), 237 (bma_pci_dev->veth_swap_phy_addr & 0xffffffff), 238 0, VETH_SWAP_DATA_BASE, VETH_SWAP_DATA_SIZE); 239 240 if (bar1_resource_flag & IORESOURCE_CACHEABLE) { 241 bma_pci_dev->bma_base_addr = 242 ioremap(bma_pci_dev->bma_base_phy_addr, 243 bma_pci_dev->bma_base_len); 244 } else { 245 bma_pci_dev->bma_base_addr = 246 IOREMAP(bma_pci_dev->bma_base_phy_addr, 247 bma_pci_dev->bma_base_len); 248 } 249 250 if (!bma_pci_dev->bma_base_addr) { 251 BMA_LOG(DLOG_ERROR, 252 "Cannot map device registers, aborting\n"); 253 254 return -ENODEV; 255 } 256 257 bma_pci_dev->hostrtc_viraddr = bma_pci_dev->bma_base_addr; 258 bma_pci_dev->edma_swap_addr = 259 (unsigned char *)bma_pci_dev->bma_base_addr + 260 EDMA_SWAP_BASE_OFFSET; > 261 bma_pci_dev->veth_swap_addr = 262 (unsigned char *)bma_pci_dev->edma_swap_addr + 263 EDMA_SWAP_DATA_SIZE; 264 265 (void)pci_read_config_dword(pdev, 0x78, &data); 266 data = data & 0xfffffff0; 267 (void)pci_write_config_dword(pdev, 0x78, data); 268 (void)pci_read_config_dword(pdev, 0x78, &data); 269 270 return 0; 271 } 272 273 static int ioremap_bar_mem(struct pci_dev *pdev, 274 struct bma_pci_dev_s *bma_pci_dev) 275 { 276 int err = 0; 277 unsigned long bar0_resource_flag = 0; 278 279 bar0_resource_flag = pci_resource_flags(pdev, PCI_BAR0); 280 281 if (!(bar0_resource_flag & IORESOURCE_MEM)) { 282 BMA_LOG(DLOG_ERROR, 283 "Cannot find proper PCI device base address, aborting\n"); 284 err = -ENODEV; 285 return err; 286 } 287 288 bma_pci_dev->kbox_base_phy_addr = pci_resource_start(pdev, PCI_BAR0); 289 290 bma_pci_dev->kbox_base_len = pci_resource_len(pdev, PCI_BAR0); 291 292 BMA_LOG(DLOG_DEBUG, 293 "bar0: kbox_base_phy_addr = 0x%lx, base_len = %ld(0x%lx)\n", 294 bma_pci_dev->kbox_base_phy_addr, bma_pci_dev->kbox_base_len, 295 bma_pci_dev->kbox_base_len); 296 297 if (PME_DEV_CHECK(pdev->device, pdev->vendor)) { 298 err = ioremap_pme_bar1_mem(pdev, bma_pci_dev); 299 if (err != 0) 300 return err; 301 } 302 303 BMA_LOG(DLOG_DEBUG, "remap BAR0 KBOX\n"); 304 305 if (bar0_resource_flag & IORESOURCE_CACHEABLE) { 306 bma_pci_dev->kbox_base_addr = 307 ioremap(bma_pci_dev->kbox_base_phy_addr, 308 bma_pci_dev->kbox_base_len); 309 } else { 310 bma_pci_dev->kbox_base_addr = 311 IOREMAP(bma_pci_dev->kbox_base_phy_addr, 312 bma_pci_dev->kbox_base_len); 313 } 314 315 if (!bma_pci_dev->kbox_base_addr) { 316 BMA_LOG(DLOG_ERROR, "Cannot map device registers, aborting\n"); 317 318 iounmap(bma_pci_dev->bma_base_addr); 319 bma_pci_dev->bma_base_addr = NULL; 320 bma_pci_dev->edma_swap_addr = NULL; 321 bma_pci_dev->hostrtc_viraddr = NULL; 322 return -ENOMEM; 323 } 324 325 return 0; 326 } 327 > 328 int pme_pci_enable_msi(struct pci_dev *pdev) 329 { 330 int err = 0; 331 332 pci_set_master(pdev); 333 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1834/1834] drivers/scsi/hpsa.o: warning: objtool: hpsa_find_cfg_addrs+0x123: unreachable instruction
by kernel test robot 22 Jan '25

22 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 75c81bcddd82381fbd4cef477a5b56eb2fe56697 commit: 241ad43fe7e9c24d5ba4cdd1ec22e731cdd22d14 [1834/1834] Compiler: Add clang's PGO support for kernel. config: x86_64-randconfig-102-20250122 (https://download.01.org/0day-ci/archive/20250122/202501220929.hTMn2Z7o-lkp@…) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250122/202501220929.hTMn2Z7o-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/202501220929.hTMn2Z7o-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from drivers/scsi/hpsa.c:24: In file included from include/linux/pci.h:1666: In file included from include/linux/dmapool.h:14: In file included from include/linux/scatterlist.h:8: In file included from include/linux/mm.h:2235: include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 509 | item]; | ~~~~ include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 516 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 528 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 537 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ 5 warnings generated. >> drivers/scsi/hpsa.o: warning: objtool: hpsa_find_cfg_addrs+0x123: unreachable instruction -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1834/1834] drivers/net/can/spi/mcp251xfd/mcp251xfd-core.o: warning: objtool: mcp251xfd_chip_softreset+0x2fd: unreachable instruction
by kernel test robot 22 Jan '25

22 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 75c81bcddd82381fbd4cef477a5b56eb2fe56697 commit: 241ad43fe7e9c24d5ba4cdd1ec22e731cdd22d14 [1834/1834] Compiler: Add clang's PGO support for kernel. config: x86_64-randconfig-101-20250122 (https://download.01.org/0day-ci/archive/20250122/202501220937.KjMFVpWd-lkp@…) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250122/202501220937.KjMFVpWd-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/202501220937.KjMFVpWd-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c:24: In file included from drivers/net/can/spi/mcp251xfd/mcp251xfd.h:14: In file included from include/linux/can/core.h:18: In file included from include/linux/skbuff.h:17: In file included from include/linux/bvec.h:10: In file included from include/linux/highmem.h:8: In file included from include/linux/cacheflush.h:5: In file included from arch/x86/include/asm/cacheflush.h:5: In file included from include/linux/mm.h:2235: include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ 1 warning generated. >> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.o: warning: objtool: mcp251xfd_chip_softreset+0x2fd: unreachable instruction >> drivers/net/can/spi/mcp251xfd/mcp251xfd-core.o: warning: objtool: mcp251xfd_chip_wait_for_osc_ready+0x32a: unreachable instruction -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS 1410/1410] mm/vmscan.c:3257:28: error: implicit declaration of function 'kernel_swap_enabled'; did you mean 'kernfs_ns_enabled'?
by kernel test robot 22 Jan '25

22 Jan '25
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS head: fdf62dff2537450d438667d817333e17ec71148a commit: 44983705e56ab22fda801d66e2a6bd0d1be7ca0b [1410/1410] etmem: add original kernel swap enabled options config: x86_64-randconfig-102-20250121 (https://download.01.org/0day-ci/archive/20250122/202501220839.T9NIZlrQ-lkp@…) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250122/202501220839.T9NIZlrQ-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/202501220839.T9NIZlrQ-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/gpu/drm/ttm/ttm_object.c:60: error: Cannot parse struct or union! drivers/gpu/drm/ttm/ttm_object.c:98: warning: Function parameter or member 'mem_glob' not described in 'ttm_object_device' drivers/gpu/drm/ttm/ttm_object.c:98: warning: Function parameter or member 'ops' not described in 'ttm_object_device' drivers/gpu/drm/ttm/ttm_object.c:98: warning: Function parameter or member 'dmabuf_release' not described in 'ttm_object_device' drivers/gpu/drm/ttm/ttm_object.c:98: warning: Function parameter or member 'dma_buf_size' not described in 'ttm_object_device' drivers/gpu/drm/ttm/ttm_object.c:129: warning: Function parameter or member 'rcu_head' not described in 'ttm_ref_object' drivers/gpu/drm/ttm/ttm_object.c:129: warning: Function parameter or member 'tfile' not described in 'ttm_ref_object' drivers/gpu/drm/ttm/ttm_object.c:561: warning: Function parameter or member 'dmabuf' not described in 'get_dma_buf_unless_doomed' drivers/gpu/drm/ttm/ttm_object.c:561: warning: Excess function parameter 'dma_buf' description in 'get_dma_buf_unless_doomed' -- drivers/pinctrl/core.c:168: warning: Function parameter or member 'pin' not described in 'pin_get_name' drivers/pinctrl/core.c:168: warning: Excess function parameter 'name' description in 'pin_get_name' drivers/pinctrl/core.c:607: warning: Function parameter or member 'selector' not described in 'pinctrl_generic_get_group' drivers/pinctrl/core.c:607: warning: Excess function parameter 'gselector' description in 'pinctrl_generic_get_group' >> drivers/pinctrl/core.c:1338: error: Cannot parse struct or union! drivers/pinctrl/core.c:2226: warning: Function parameter or member 'pctldev' not described in 'devm_pinctrl_register_and_init' -- mm/vmscan.c: In function 'kernel_swap_check': >> mm/vmscan.c:3257:28: error: implicit declaration of function 'kernel_swap_enabled'; did you mean 'kernfs_ns_enabled'? [-Werror=implicit-function-declaration] 3257 | if (sc != NULL && !kernel_swap_enabled()) | ^~~~~~~~~~~~~~~~~~~ | kernfs_ns_enabled cc1: some warnings being treated as errors vim +3257 mm/vmscan.c 3250 3251 /* 3252 * Check if original kernel swap is enabled 3253 * turn off kernel swap,but leave page cache reclaim on 3254 */ 3255 static inline void kernel_swap_check(struct scan_control *sc) 3256 { > 3257 if (sc != NULL && !kernel_swap_enabled()) 3258 sc->may_swap = 0; 3259 } 3260 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:openEuler-1.0-LTS] BUILD REGRESSION fdf62dff2537450d438667d817333e17ec71148a
by kernel test robot 22 Jan '25

22 Jan '25
tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS branch HEAD: fdf62dff2537450d438667d817333e17ec71148a !14254 [openEuler-1.0-LTS]fix wangxun 1G/10G drivers hardware tx unit hang. Error/Warning (recently discovered and may have been fixed): https://lore.kernel.org/oe-kbuild-all/202501220126.4njU5YRX-lkp@intel.com drivers/net/ethernet/netswift/ngbe/ngbe_main.c:5164:6: warning: unused variable 'len' [-Wunused-variable] include/linux/uaccess.h:115:17: warning: 'gpu32' may be used uninitialized [-Wmaybe-uninitialized] kernel/.tmp_kthread.o: warning: objtool: kthread_destroy_worker()+0xdc: unreachable instruction kernel/rcu/tree.o: warning: objtool: rcu_note_context_switch()+0x2f9: can't find switch jump table Error/Warning ids grouped by kconfigs: recent_errors |-- arm64-allmodconfig | |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle | |-- block-blk-io-hierarchy-iodump.c:warning:no-previous-prototype-for-__bio_stage_hierarchy_start | |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used | |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_issue | |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_requeue | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | `-- include-linux-kernel.h:warning:comparison-of-distinct-pointer-types-lacks-a-cast |-- arm64-allnoconfig | `-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used |-- arm64-defconfig | |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | `-- include-linux-kernel.h:warning:comparison-of-distinct-pointer-types-lacks-a-cast |-- arm64-randconfig-001-20250121 | |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used | |-- include-linux-uaccess.h:warning:cap-may-be-used-uninitialized | |-- include-linux-uaccess.h:warning:data_arg-may-be-used-uninitialized | |-- include-linux-uaccess.h:warning:gpu32-may-be-used-uninitialized | |-- include-linux-uaccess.h:warning:ifreq-may-be-used-uninitialized | |-- include-linux-uaccess.h:warning:info64-may-be-used-uninitialized | `-- include-linux-uaccess.h:warning:ioc_data-may-be-used-uninitialized |-- arm64-randconfig-003-20250121 | |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | `-- include-linux-kernel.h:warning:comparison-of-distinct-pointer-types-lacks-a-cast |-- arm64-randconfig-004-20250121 | |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | |-- include-linux-list.h:warning:array-subscript-is-outside-array-bounds-of-struct-plist_node | |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used | `-- include-linux-plist.h:warning:array-subscript-is-outside-array-bounds-of-struct-plist_node |-- arm64-randconfig-r121-20250122 | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_issue | |-- block-blk-wbt.c:warning:no-previous-prototype-for-wbt_requeue | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | |-- drivers-bus-fsl-mc-mc-sys.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-usertype-header-got-restricted-__le64-usertype | |-- drivers-firmware-meson-meson_sm.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-got-void-noderef-__iomem-static-toplevel-sm_shmem_out_base | |-- drivers-firmware-meson-meson_sm.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-got-void-noderef-__iomem-static-toplevel-sm_shmem_in_base | |-- drivers-gpu-drm-sun4i-sun4i_tcon.c:sparse:sparse:symbol-sun4i_tcon_set_mux-was-not-declared.-Should-it-be-static | |-- drivers-iio-adc-at91-sama5d2_adc.c:sparse:sparse:Using-plain-integer-as-NULL-pointer | |-- drivers-irqchip-irq-gic-phytium-.c:sparse:sparse:dereference-of-noderef-expression | |-- drivers-irqchip-irq-gic-phytium-its.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-got-restricted-__le64-usertype | |-- drivers-pci-endpoint-functions-pci-epf-test.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-got-void-noderef-__iomem-assigned-src_addr | |-- drivers-pci-endpoint-functions-pci-epf-test.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-got-void-noderef-__iomem-assigned-dst_addr | |-- drivers-phy-qualcomm-phy-qcom-ufs.c:sparse:sparse:cast-removes-address-space-__iomem-of-expression | |-- drivers-video-fbdev-sh_mobile_lcdcfb.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-char-noderef-__iomem-screen_base-got-void-fb_mem | |-- drivers-video-fbdev-ssd1307fb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-to-got-unsigned-char-noderef-usertype-__iomem-dst | |-- drivers-video-fbdev-ssd1307fb.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-unsigned-char-noderef-usertype-__iomem-dst-got-void | |-- drivers-video-fbdev-ssd1307fb.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-char-usertype-vmem-got-char-noderef-__iomem-screen_base | |-- drivers-w1-slaves-w1_ds28e04.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-char-const-noderef-__user-got-char-const-buf | |-- drivers-w1-slaves-w1_ds28e04.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-char-noderef-__user-got-char-buf | |-- fs-ext4-super.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-got-char-noderef-__rcu | |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used | |-- kernel-cred.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-p-got-int-const-noderef-__rcu | |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-addr-got-void-noderef-__iomem-mem_base | |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-noderef-__iomem-mem_base-got-void | |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-virt_base-got-void-noderef-__iomem-mem_base | |-- kernel-module.c:sparse:sparse:symbol-set_module_sig_enforced-was-not-declared.-Should-it-be-static | |-- mm-kmemleak.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-noderef-__percpu-ptr-got-void-const-ptr | |-- mm-kmemleak.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-ptr-got-void-const-noderef-__percpu-ptr | `-- mm-kmemleak.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-void-const-noderef-__percpu-ptr-got-void-const-ptr |-- x86_64-allmodconfig | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle | |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used | |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used | `-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests |-- x86_64-allnoconfig | `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration |-- x86_64-allyesconfig | |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle | |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle | |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used | |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests | |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue | |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue | |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions | `-- drivers-net-ethernet-netswift-ngbe-ngbe_main.c:warning:unused-variable-len |-- x86_64-buildonly-randconfig-001-20250121 | |-- block-bio-integrity.c:warning:no-previous-prototype-for-__bio_integrity_free | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-blk-rq-qos.o:warning:objtool:missing-symbol-for-section-.text | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | |-- crypto-sm4_generic.o:warning:objtool:missing-symbol-for-section-.text | |-- drivers-staging-media-zoran-zoran_procfs.c:warning:d-directive-output-may-be-truncated-writing-between-and-bytes-into-a-region-of-size | `-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used |-- x86_64-buildonly-randconfig-002-20250121 | |-- drivers-regulator-sy8106a-regulator.c:warning:unused-variable-sy8106a_i2c_of_match | `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration |-- x86_64-buildonly-randconfig-003-20250121 | |-- drivers-video-fbdev-omap2-omapfb-dss-hdmi4.o:warning:objtool:missing-symbol-for-section-.init.text | |-- include-linux-kernel.h:warning:comparison-of-distinct-pointer-types-lacks-a-cast | |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used | |-- net-ipv4-bpfilter-sockopt.o:warning:objtool:missing-symbol-for-section-.text | `-- sound-soc-rockchip-rockchip_pcm.o:warning:objtool:missing-symbol-for-section-.text |-- x86_64-buildonly-randconfig-004-20250121 | |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests | |-- block-blk-rq-qos.o:warning:objtool:missing-symbol-for-section-.text | |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions | |-- kernel-hung_task.c:error:use-of-undeclared-identifier-sysctl_hung_task_all_cpu_backtrace | `-- kernel-rcu-tree.o:warning:objtool:rcu_note_context_switch:can-t-find-switch-jump-table |-- x86_64-buildonly-randconfig-005-20250121 | |-- kernel-.tmp_kthread.o:warning:objtool:kthread_destroy_worker:unreachable-instruction | |-- kernel-hung_task.c:error:use-of-undeclared-identifier-sysctl_hung_task_all_cpu_backtrace | `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration |-- x86_64-buildonly-randconfig-006-20250121 | |-- drivers-video-fbdev-omap2-omapfb-dss-hdmi4.o:warning:objtool:missing-symbol-for-section-.init.text | |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used | `-- sound-soc-rockchip-rockchip_pcm.o:warning:objtool:missing-symbol-for-section-.text |-- x86_64-defconfig | |-- block-blk-merge.c:warning:no-previous-prototype-for-blk_try_req_merge | |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-__blk_mq_sched_dispatch_requests | |-- block-genhd.c:warning:no-previous-prototype-for-disk_scan_partitions | `-- include-linux-kernel.h:warning:comparison-of-distinct-pointer-types-lacks-a-cast |-- x86_64-randconfig-102-20250121 | |-- drivers-gpu-drm-ttm-ttm_object.c:error:Cannot-parse-struct-or-union | |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union | `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled `-- x86_64-randconfig-161-20250122 |-- block-bio-integrity.c:warning:no-previous-prototype-for-function-__bio_integrity_free |-- block-blk-cgroup.c:warning:Function-parameter-or-member-blkg-not-described-in-blkcg_add_delay |-- block-blk-cgroup.c:warning:Function-parameter-or-member-delta-not-described-in-blkcg_add_delay |-- block-blk-cgroup.c:warning:Function-parameter-or-member-now-not-described-in-blkcg_add_delay |-- block-blk-cgroup.c:warning:Function-parameter-or-member-q-not-described-in-blkcg_schedule_throttle |-- block-blk-cgroup.c:warning:Function-parameter-or-member-use_memdelay-not-described-in-blkcg_schedule_throttle |-- block-blk-iolatency.c:warning:variable-blkiolat-set-but-not-used |-- block-blk-iolatency.c:warning:variable-changed-set-but-not-used |-- block-blk-mq-sched.c:warning:no-previous-prototype-for-function-__blk_mq_sched_dispatch_requests |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue |-- block-genhd.c:warning:no-previous-prototype-for-function-disk_scan_partitions `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration elapsed time: 723m configs tested: 16 configs skipped: 129 tested configs: arm64 allmodconfig gcc-14.2.0 arm64 allnoconfig gcc-14.2.0 arm64 defconfig gcc-14.2.0 arm64 randconfig-001-20250121 gcc-14.2.0 arm64 randconfig-002-20250121 gcc-14.2.0 arm64 randconfig-003-20250121 gcc-14.2.0 arm64 randconfig-004-20250121 gcc-14.2.0 x86_64 allnoconfig clang-19 x86_64 allyesconfig clang-19 x86_64 buildonly-randconfig-001-20250121 gcc-12 x86_64 buildonly-randconfig-002-20250121 clang-19 x86_64 buildonly-randconfig-003-20250121 gcc-12 x86_64 buildonly-randconfig-004-20250121 clang-19 x86_64 buildonly-randconfig-005-20250121 clang-19 x86_64 buildonly-randconfig-006-20250121 gcc-12 x86_64 defconfig gcc-11 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 1834/1834] mm/memcontrol.c:4061:5: sparse: sparse: symbol 'sysctl_memcg_oom_prio' was not declared. Should it be static?
by kernel test robot 22 Jan '25

22 Jan '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 75c81bcddd82381fbd4cef477a5b56eb2fe56697 commit: 44391f3171b05060096ff496f3507033f2460161 [1834/1834] memcg: Add sysctl memcg_qos_enable config: x86_64-randconfig-121-20250122 (https://download.01.org/0day-ci/archive/20250122/202501220758.6wiUFGfn-lkp@…) compiler: gcc-12 (Debian 12.2.0-14) 12.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250122/202501220758.6wiUFGfn-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/202501220758.6wiUFGfn-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) >> mm/memcontrol.c:4061:5: sparse: sparse: symbol 'sysctl_memcg_oom_prio' was not declared. Should it be static? mm/memcontrol.c:4223:50: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void * @@ got void [noderef] __user *buffer @@ mm/memcontrol.c:4223:50: sparse: expected void * mm/memcontrol.c:4223:50: sparse: got void [noderef] __user *buffer >> mm/memcontrol.c:4245:35: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@ mm/memcontrol.c:4245:35: sparse: expected int ( [usertype] *proc_handler )( ... ) mm/memcontrol.c:4245:35: sparse: got int ( * )( ... ) mm/memcontrol.c:4504:21: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4504:21: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4504:21: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4506:21: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4506:21: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4506:21: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4662:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4662:9: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4662:9: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4756:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4756:9: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4756:9: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:6799:23: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:6799:23: sparse: struct task_struct [noderef] __rcu * mm/memcontrol.c:6799:23: sparse: struct task_struct * mm/memcontrol.c:7016:52: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:7016:52: sparse: struct task_struct [noderef] __rcu * mm/memcontrol.c:7016:52: sparse: struct task_struct * mm/memcontrol.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true mm/memcontrol.c: note: in included file: include/linux/memcontrol.h:782:9: sparse: sparse: context imbalance in 'folio_lruvec_lock' - wrong count at exit include/linux/memcontrol.h:782:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irq' - wrong count at exit include/linux/memcontrol.h:782:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irqsave' - wrong count at exit mm/memcontrol.c:2134:6: sparse: sparse: context imbalance in 'folio_memcg_lock' - wrong count at exit mm/memcontrol.c:2181:17: sparse: sparse: context imbalance in '__folio_memcg_unlock' - unexpected unlock mm/memcontrol.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true mm/memcontrol.c: note: in included file (through include/linux/rculist.h, include/linux/pid.h, include/linux/sched.h, ...): include/linux/rcupdate.h:780:9: sparse: sparse: context imbalance in 'mem_cgroup_count_precharge_pte_range' - unexpected unlock include/linux/rcupdate.h:780:9: sparse: sparse: context imbalance in 'mem_cgroup_move_charge_pte_range' - unexpected unlock vim +/sysctl_memcg_oom_prio +4061 mm/memcontrol.c 4057 4058 #ifdef CONFIG_MEMCG_OOM_PRIORITY 4059 #define ENABLE_MEMCG_OOM_PROIRITY 1 4060 #define DISABLE_MEMCG_OOM_PROIRITY 0 > 4061 int sysctl_memcg_oom_prio = DISABLE_MEMCG_OOM_PROIRITY; 4062 4063 bool memcg_oom_prio_disabled(void) 4064 { 4065 return READ_ONCE(sysctl_memcg_oom_prio) == DISABLE_MEMCG_OOM_PROIRITY; 4066 } 4067 4068 static void memcg_oom_prio_init(struct mem_cgroup *memcg) 4069 { 4070 struct mem_cgroup *parent = parent_mem_cgroup(memcg); 4071 int oom_prio; 4072 4073 if (!parent) 4074 return; 4075 4076 oom_prio = READ_ONCE(parent->oom_prio); 4077 WRITE_ONCE(memcg->oom_prio, oom_prio); 4078 } 4079 4080 static s64 memcg_oom_prio_read(struct cgroup_subsys_state *css, 4081 struct cftype *cft) 4082 { 4083 struct mem_cgroup *memcg = mem_cgroup_from_css(css); 4084 4085 if (memcg_oom_prio_disabled()) 4086 return 0; 4087 4088 return READ_ONCE(memcg->oom_prio); 4089 } 4090 4091 static int memcg_oom_prio_write(struct cgroup_subsys_state *css, 4092 struct cftype *cft, s64 val) 4093 { 4094 struct mem_cgroup *memcg = mem_cgroup_from_css(css); 4095 struct mem_cgroup *iter_memcg; 4096 struct cgroup_subsys_state *iter_css; 4097 4098 if (memcg_oom_prio_disabled()) 4099 return -EACCES; 4100 4101 if (mem_cgroup_is_root(memcg)) 4102 return -EINVAL; 4103 4104 if (val != MEMCG_LOW_OOM_PRIORITY && val != MEMCG_HIGH_OOM_PRIORITY) 4105 return -EINVAL; 4106 4107 rcu_read_lock(); 4108 css_for_each_descendant_pre(iter_css, &memcg->css) { 4109 iter_memcg = mem_cgroup_from_css(iter_css); 4110 4111 WRITE_ONCE(iter_memcg->oom_prio, val); 4112 } 4113 rcu_read_unlock(); 4114 4115 return 0; 4116 } 4117 4118 static struct mem_cgroup *memcg_find_max_usage(struct mem_cgroup *last) 4119 { 4120 struct mem_cgroup *iter, *max_memcg = NULL; 4121 struct cgroup_subsys_state *css; 4122 unsigned long usage, max_usage = 0; 4123 int oom_prio; 4124 4125 rcu_read_lock(); 4126 css_for_each_descendant_pre(css, &root_mem_cgroup->css) { 4127 iter = mem_cgroup_from_css(css); 4128 oom_prio = READ_ONCE(iter->oom_prio); 4129 4130 if (oom_prio == MEMCG_HIGH_OOM_PRIORITY || 4131 iter == root_mem_cgroup || 4132 iter == last) 4133 continue; 4134 4135 usage = mem_cgroup_usage(iter, false); 4136 if (usage > max_usage) { 4137 max_usage = usage; 4138 max_memcg = iter; 4139 } 4140 } 4141 rcu_read_unlock(); 4142 4143 return max_memcg; 4144 } 4145 4146 bool memcg_oom_prio_scan_tasks(int (*fn)(struct task_struct *, void *), 4147 void *arg) 4148 { 4149 struct mem_cgroup *max, *last = NULL; 4150 struct oom_control *oc = arg; 4151 struct css_task_iter it; 4152 struct task_struct *task; 4153 int ret = 0; 4154 bool retry = true; 4155 4156 if (memcg_oom_prio_disabled()) 4157 return false; 4158 retry: 4159 max = memcg_find_max_usage(last); 4160 if (!max) 4161 return false; 4162 4163 css_task_iter_start(&max->css, 0, &it); 4164 while (!ret && (task = css_task_iter_next(&it))) { 4165 if (test_tsk_thread_flag(task, TIF_MEMDIE)) 4166 continue; 4167 4168 ret = fn(task, arg); 4169 } 4170 css_task_iter_end(&it); 4171 4172 if (ret) 4173 return false; 4174 4175 if (!oc->chosen && retry) { 4176 last = max; 4177 retry = false; 4178 goto retry; 4179 } 4180 4181 if (oc->chosen) 4182 pr_info("The bad task [%d:%s] is from low-priority memcg.\n", 4183 oc->chosen->pid, oc->chosen->comm); 4184 4185 return oc->chosen ? true : false; 4186 } 4187 4188 void memcg_print_bad_task(struct oom_control *oc) 4189 { 4190 if (memcg_oom_prio_disabled()) 4191 return; 4192 4193 if (oc->chosen) { 4194 struct mem_cgroup *memcg; 4195 4196 rcu_read_lock(); 4197 memcg = mem_cgroup_from_task(oc->chosen); 4198 if (READ_ONCE(memcg->oom_prio) == MEMCG_LOW_OOM_PRIORITY) 4199 pr_info("The bad task [%d:%s] is from low-priority memcg.\n", 4200 oc->chosen->pid, oc->chosen->comm); 4201 rcu_read_unlock(); 4202 } 4203 } 4204 4205 static void memcg_oom_prio_reset(void) 4206 { 4207 struct mem_cgroup *iter; 4208 struct cgroup_subsys_state *css; 4209 4210 rcu_read_lock(); 4211 css_for_each_descendant_pre(css, &root_mem_cgroup->css) { 4212 iter = mem_cgroup_from_css(css); 4213 WRITE_ONCE(iter->oom_prio, 0); 4214 } 4215 rcu_read_unlock(); 4216 } 4217 4218 static int sysctl_memcg_oom_prio_handler(struct ctl_table *table, int write, 4219 void __user *buffer, size_t *length, loff_t *ppos) 4220 { 4221 int ret; 4222 4223 ret = proc_dointvec_minmax(table, write, buffer, length, ppos); 4224 if (ret) 4225 return ret; 4226 4227 if (write) { 4228 if (READ_ONCE(sysctl_memcg_oom_prio) == DISABLE_MEMCG_OOM_PROIRITY) 4229 memcg_oom_prio_reset(); 4230 } 4231 4232 return ret; 4233 } 4234 4235 static struct ctl_table memcg_oom_prio_sysctls[] = { 4236 { 4237 /* 4238 * This sysctl is used to control memcg oom priority 4239 * feature, the sysctl name is for compatibility. 4240 */ 4241 .procname = "memcg_qos_enable", 4242 .data = &sysctl_memcg_oom_prio, 4243 .maxlen = sizeof(int), 4244 .mode = 0644, > 4245 .proc_handler = sysctl_memcg_oom_prio_handler, 4246 .extra1 = SYSCTL_ZERO, 4247 .extra2 = SYSCTL_ONE, 4248 }, 4249 }; 4250 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
  • ← Newer
  • 1
  • ...
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • ...
  • 1846
  • Older →

HyperKitty Powered by HyperKitty