Re: [PATCH 5/6] ptrace: introduce PTRACE_SET_SYSCALL_INFO request

kernel test robot
2025-01-09T14:04:00Z

Hi Dmitry,

kernel test robot noticed the following build warnings:

[auto build test WARNING on openrisc/for-next]
[also build test WARNING on powerpc/next powerpc/fixes s390/features uml/next jcmvbkbc-xtensa/xtensa-for-next arnd-asm-generic/master vgupta-arc/for-curr arm64/for-next/core linus/master uml/fixes tip/x86/core vgupta-arc/for-next v6.13-rc6 next-20250109]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Dmitry-V-Levin/Revert-arch-remove-unused-function-syscall_set_arguments/20250108-070658
base: https://github.com/openrisc/linux.git for-next
patch link: https://lore.kernel.org/r/20250107230456.GE30633%40strace.io
patch subject: [PATCH 5/6] ptrace: introduce PTRACE_SET_SYSCALL_INFO request
config: mips-randconfig-r122-20250109 (https://download.01.org/0day-ci/archive/20250109/202501092150.9BH2s9AO-lkp@intel.com/config)
compiler: mips64-linux-gcc (GCC) 14.2.0
reproduce: (https://download.01.org/0day-ci/archive/20250109/202501092150.9BH2s9AO-lkp@intel.com/reproduce)

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/202501092150.9BH2s9AO-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
kernel/ptrace.c:55:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/ptrace.c:55:22: sparse: struct task_struct *
kernel/ptrace.c:55:22: sparse: struct task_struct [noderef] __rcu *
kernel/ptrace.c:74:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct [noderef] __rcu *parent @@ got struct task_struct *new_parent @@
kernel/ptrace.c:74:23: sparse: expected struct task_struct [noderef] __rcu *parent
kernel/ptrace.c:74:23: sparse: got struct task_struct *new_parent
kernel/ptrace.c:75:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cred const [noderef] __rcu *ptracer_cred @@ got struct cred const * @@
kernel/ptrace.c:75:29: sparse: expected struct cred const [noderef] __rcu *ptracer_cred
kernel/ptrace.c:75:29: sparse: got struct cred const *
kernel/ptrace.c:129:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cred const *old_cred @@ got struct cred const [noderef] __rcu *ptracer_cred @@
kernel/ptrace.c:129:18: sparse: expected struct cred const *old_cred
kernel/ptrace.c:129:18: sparse: got struct cred const [noderef] __rcu *ptracer_cred
kernel/ptrace.c:133:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:133:25: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:133:25: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:160:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:160:27: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:160:27: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:192:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:192:28: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:192:28: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:198:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:198:30: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:198:30: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:251:44: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/ptrace.c:251:44: sparse: struct task_struct [noderef] __rcu *
kernel/ptrace.c:251:44: sparse: struct task_struct *
kernel/ptrace.c:494:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *parent @@ got struct task_struct [noderef] __rcu *parent @@
kernel/ptrace.c:494:54: sparse: expected struct task_struct *parent
kernel/ptrace.c:494:54: sparse: got struct task_struct [noderef] __rcu *parent
kernel/ptrace.c:502:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *new_parent @@ got struct task_struct [noderef] __rcu *real_parent @@
kernel/ptrace.c:502:53: sparse: expected struct task_struct *new_parent
kernel/ptrace.c:502:53: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/ptrace.c:550:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p1 @@ got struct task_struct [noderef] __rcu *real_parent @@
kernel/ptrace.c:550:41: sparse: expected struct task_struct *p1
kernel/ptrace.c:550:41: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/ptrace.c:552:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sighand_struct *sigh @@ got struct sighand_struct [noderef] __rcu *sighand @@
kernel/ptrace.c:552:50: sparse: expected struct sighand_struct *sigh
kernel/ptrace.c:552:50: sparse: got struct sighand_struct [noderef] __rcu *sighand
kernel/ptrace.c:743:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:743:37: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:743:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:751:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:751:39: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:751:39: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:862:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:862:29: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:862:29: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:866:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:866:31: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:866:31: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1206:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:1206:37: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:1206:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1208:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:1208:39: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:1208:39: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c: note: in included file (through include/linux/fwnode.h, include/linux/logic_pio.h, include/asm-generic/io.h, ...):
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true
kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, include/linux/percpu-rwsem.h, include/linux/fs.h, ...):
include/linux/sched/signal.h:751:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:751:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:751:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:380:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *l @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:380:30: sparse: expected struct spinlock [usertype] *l
kernel/ptrace.c:380:30: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:409:12: sparse: sparse: context imbalance in 'ptrace_attach' - different lock contexts for basic block
kernel/ptrace.c:500:38: sparse: sparse: dereference of noderef expression
kernel/ptrace.c: note: in included file (through include/linux/fwnode.h, include/linux/logic_pio.h, include/asm-generic/io.h, ...):
include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true
kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, include/linux/percpu-rwsem.h, include/linux/fs.h, ...):
include/linux/sched/signal.h:751:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:751:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:751:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:690:9: sparse: sparse: context imbalance in 'ptrace_getsiginfo' - different lock contexts for basic block
include/linux/sched/signal.h:751:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:751:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:751:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:706:9: sparse: sparse: context imbalance in 'ptrace_setsiginfo' - different lock contexts for basic block
kernel/ptrace.c: note: in included file:
arch/mips/include/asm/syscall.h:85:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const [noderef] __user *__p @@ got int * @@
arch/mips/include/asm/syscall.h:85:25: sparse: expected int const [noderef] __user *__p
arch/mips/include/asm/syscall.h:85:25: sparse: got int *
>> arch/mips/include/asm/syscall.h:121:25: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int [noderef] __user *__p @@ got int * @@
arch/mips/include/asm/syscall.h:121:25: sparse: expected int [noderef] __user *__p
arch/mips/include/asm/syscall.h:121:25: sparse: got int *
kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, include/linux/percpu-rwsem.h, include/linux/fs.h, ...):
include/linux/sched/signal.h:751:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:751:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:751:37: sparse: got struct spinlock [noderef] __rcu *
include/linux/sched/signal.h:751:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:751:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:751:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1369:9: sparse: sparse: context imbalance in 'ptrace_request' - different lock contexts for basic block

vim +121 arch/mips/include/asm/syscall.h

307e4cb2957c2f Dmitry V. Levin 2025-01-08 116
307e4cb2957c2f Dmitry V. Levin 2025-01-08 117 #ifdef CONFIG_64BIT
307e4cb2957c2f Dmitry V. Levin 2025-01-08 118 case 4: case 5: case 6: case 7:
307e4cb2957c2f Dmitry V. Levin 2025-01-08 119 #ifdef CONFIG_MIPS32_O32
307e4cb2957c2f Dmitry V. Levin 2025-01-08 120 if (test_tsk_thread_flag(task, TIF_32BIT_REGS))
307e4cb2957c2f Dmitry V. Levin 2025-01-08 @121 put_user(*arg, (int *)usp + n);
307e4cb2957c2f Dmitry V. Levin 2025-01-08 122 else
307e4cb2957c2f Dmitry V. Levin 2025-01-08 123 #endif
307e4cb2957c2f Dmitry V. Levin 2025-01-08 124 regs->regs[4 + n] = *arg;
307e4cb2957c2f Dmitry V. Levin 2025-01-08 125
307e4cb2957c2f Dmitry V. Levin 2025-01-08 126 return;
307e4cb2957c2f Dmitry V. Levin 2025-01-08 127 #endif
307e4cb2957c2f Dmitry V. Levin 2025-01-08 128 }
307e4cb2957c2f Dmitry V. Levin 2025-01-08 129 }
307e4cb2957c2f Dmitry V. Levin 2025-01-08 130

--
0-DAY CI Kernel Test Service