Hi Simon, > The ckpt_regs usage in gpr32_set_common/gpr32_get_common() > will lead to cppcheck error. > > [arch/powerpc/kernel/ptrace.c:2062]: (error) Uninitialized variable: ckpt_regs > [arch/powerpc/kernel/ptrace.c:2130]: (error) Uninitialized variable: ckpt_regs > > A straightforward fix to clean it. I'm always happy to see cppcheck warnings fixed :) > static int gpr32_get_common(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM > void *kbuf, void __user *ubuf, bool tm_active) > +#else > + void *kbuf, void __user *ubuf) > +#endif I wonder if it might be possible to avoid some of the ifdefs and general churn by making the tm_active argument __maybe_unused rather than ifdefing around it? In particular, it would mean the two hunks in the function definitions and these these two hunks at the call site would be unnecessary: > @@ -2218,7 +2225,11 @@ static int gpr32_get(struct task_struct *target, > unsigned int pos, unsigned int count, > void *kbuf, void __user *ubuf) > { > +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM > return gpr32_get_common(target, regset, pos, count, kbuf, ubuf, 0); > +#else > + return gpr32_get_common(target, regset, pos, count, kbuf, ubuf); > +#endif > } > > static int gpr32_set(struct task_struct *target, > @@ -2226,7 +2237,11 @@ static int gpr32_set(struct task_struct *target, > unsigned int pos, unsigned int count, > const void *kbuf, const void __user *ubuf) > { > +#ifdef CONFIG_PPC_TRANSACTIONAL_MEM > return gpr32_set_common(target, regset, pos, count, kbuf, ubuf, 0); > +#else > + return gpr32_set_common(target, regset, pos, count, kbuf, ubuf); > +#endif > } Apart from that, thanks for fixing this up! Regards, Daniel > > /* > -- > 1.8.3.1