tree: https://gitee.com/openeuler/kernel.git OLK-5.10 head: cbfb00d89c3b9971c3f0732b4f34d4e674bff5d8 commit: c649babf7cf25e545a7dc3eb6d59392ac3355cb9 [3790/30000] pid_ns: Make pid_max per namespace config: x86_64-randconfig-123-20240910 (https://download.01.org/0day-ci/archive/20240911/202409110524.f822gNQG-lkp@i...) 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/20240911/202409110524.f822gNQG-lkp@i...)
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@intel.com | Closes: https://lore.kernel.org/oe-kbuild-all/202409110524.f822gNQG-lkp@intel.com/
sparse warnings: (new ones prefixed by >>) kernel/pid.c:385:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/pid.c:385:9: sparse: struct pid [noderef] __rcu * kernel/pid.c:385:9: sparse: struct pid * kernel/pid.c:386:9: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/pid.c:386:9: sparse: struct pid [noderef] __rcu * kernel/pid.c:386:9: sparse: struct pid * kernel/pid.c:449:23: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/pid.c:449:23: sparse: struct pid [noderef] __rcu * kernel/pid.c:449:23: sparse: struct pid * kernel/pid.c:507:24: sparse: sparse: incompatible types in comparison expression (different address spaces): kernel/pid.c:507:24: sparse: struct pid [noderef] __rcu * kernel/pid.c:507:24: sparse: struct pid *
kernel/pid.c:623:50: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void * @@ got void [noderef] __user *buffer @@
kernel/pid.c:623:50: sparse: expected void * kernel/pid.c:623:50: sparse: got void [noderef] __user *buffer
kernel/pid.c:632:35: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@
kernel/pid.c:632:35: sparse: expected int ( [usertype] *proc_handler )( ... ) kernel/pid.c:632:35: sparse: got int ( * )( ... ) kernel/pid.c: note: in included file (through include/linux/pid.h, include/linux/sched.h, include/linux/mm.h): include/linux/rculist.h:553:9: sparse: sparse: incompatible types in comparison expression (different address spaces): include/linux/rculist.h:553:9: sparse: struct hlist_node [noderef] __rcu * include/linux/rculist.h:553:9: sparse: struct hlist_node * include/linux/rculist.h:554:9: sparse: sparse: incompatible types in comparison expression (different address spaces): include/linux/rculist.h:554:9: sparse: struct hlist_node [noderef] __rcu * include/linux/rculist.h:554:9: sparse: struct hlist_node *
vim +623 kernel/pid.c
614 615 static int proc_dointvec_pidmax(struct ctl_table *table, int write, 616 void __user *buffer, size_t *lenp, loff_t *ppos) 617 { 618 struct ctl_table tmp; 619 620 tmp = *table; 621 tmp.data = &task_active_pid_ns(current)->pid_max; 622
623 return proc_dointvec_minmax(&tmp, write, buffer, lenp, ppos);
624 } 625 626 static struct ctl_table pid_ctl_table[] = { 627 { 628 .procname = "pid_max", 629 .data = &init_pid_ns.pid_max, 630 .maxlen = sizeof(int), 631 .mode = 0644,
632 .proc_handler = proc_dointvec_pidmax,
633 .extra1 = &pid_max_min, 634 .extra2 = &pid_max_max, 635 }, 636 {} 637 }; 638