Re: 3.9-rc1 powerpc ptrace.c: 'brk.len' is used uninitialized

From: Michael Neuling
Date: Thu Mar 07 2013 - 17:32:56 EST


Philippe De Muyter <phdm@xxxxxxxxx> wrote:

> Hello Mikey,
>
> On Thu, Mar 07, 2013 at 10:14:30AM +1100, Michael Neuling wrote:
> > Philippe De Muyter <phdm@xxxxxxxxx> wrote:
> >
> > > On Thu, Mar 07, 2013 at 09:09:48AM +1100, Michael Neuling wrote:
> > > > > bisect tells me that since your commit 9422de3e953d0e60eb95f5430a9dd803eec1c6d7
> > > > > "powerpc: Hardware breakpoints rewrite to handle non DABR breakpoint registers",
> > > > > compiling linux fails with :
> > > > >
> > > > > cc1: warnings being treated as errors
> > > > > arch/powerpc/kernel/ptrace.c: In function 'arch_ptrace':
> > > > > arch/powerpc/kernel/ptrace.c:1450: warning: 'brk.len' is used uninitialized in this function
> > > > > arch/powerpc/kernel/ptrace.c:1352: note: 'brk.len' was declared here
> > > > >
> > > > > could you look at that ?
> > > >
> > > > Sure.
> > >
> > > I use gcc-4.2.2, and my .config follows.
> >
> > I'm a bit lost.
> >
> > I don't have 4.2.2 (which is ancient BTW) and I can't hit this on
> > 4.3,4.5 or 4.6 with your config. It compiles fine.
> >
> > Also:
> >
> > > arch/powerpc/kernel/ptrace.c:1450: warning: 'brk.len' is used uninitialized in this function
> > > arch/powerpc/kernel/ptrace.c:1352: note: 'brk.len' was declared here
> >
> > These line numbers make no sense at all WRT v3.9-rc1. brk.len is neither
> > declared or used in those lines:
>
> those were the line numbers just after your commit
>
> In 3.9-rc1 they are :
>
> cc1: warnings being treated as errors
> arch/powerpc/kernel/ptrace.c: In function 'arch_ptrace':
> arch/powerpc/kernel/ptrace.c:1479: warning: 'brk.len' is used uninitialized in this function
> arch/powerpc/kernel/ptrace.c:1381: note: 'brk.len' was declared here
>
> if (child->thread.hw_brk.address)
> return -ENOSPC;
>
> 1479: child->thread.hw_brk = brk;
>
> return 1;
> #endif /* !CONFIG_PPC_ADV_DEBUG_DVCS */

Got it. I still can't replicate the issue here, so can you check if the
below works for you?

Thanks,
Mikey

diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 245c1b6..3b5f9dc 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -1428,6 +1428,7 @@ static long ppc_set_hwdebug(struct task_struct *child,

brk.address = bp_info->addr & ~7UL;
brk.type = HW_BRK_TYPE_TRANSLATE;
+ brk.len = len;
if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_READ)
brk.type |= HW_BRK_TYPE_READ;
if (bp_info->trigger_type & PPC_BREAKPOINT_TRIGGER_WRITE)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/