On Fri, Aug 28, 2020 at 05:02:46PM +0530, Vamshi K Sthambamkadi wrote: > On i386, the order of parameters passed on regs is eax,edx,and ecx > (as per regparm(3) calling conventions). > > Change the mapping in regs_get_kernel_argument(), so that arg1=ax > arg2=dx, and arg3=cx. > > Running the selftests testcase kprobes_args_use.tc shows the result > as passed. > Fixes: 3c88ee194c28 ("x86: ptrace: Add function argument access API") > Signed-off-by: Vamshi K Sthambamkadi <vamshi.k.sthambamk...@gmail.com>
Acked-by: Peter Zijlstra (Intel) <pet...@infradead.org> > --- > arch/x86/include/asm/ptrace.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h > index 40aa69d..d8324a2 100644 > --- a/arch/x86/include/asm/ptrace.h > +++ b/arch/x86/include/asm/ptrace.h > @@ -327,8 +327,8 @@ static inline unsigned long > regs_get_kernel_argument(struct pt_regs *regs, > static const unsigned int argument_offs[] = { > #ifdef __i386__ > offsetof(struct pt_regs, ax), > - offsetof(struct pt_regs, cx), > offsetof(struct pt_regs, dx), > + offsetof(struct pt_regs, cx), > #define NR_REG_ARGUMENTS 3 > #else > offsetof(struct pt_regs, di), > -- > 2.7.4 >