Re: [PATCH 2/2] hw-breakpoint: Keep track of dr7 local enable bits

From: K.Prasad
Date: Fri Feb 19 2010 - 12:59:18 EST


On Fri, Feb 19, 2010 at 04:34:03PM +0100, Frederic Weisbecker wrote:
> 2010/2/19 K.Prasad <prasad@xxxxxxxxxxxxxxxxxx>:
> > So, the thread's copy of DR7 (in thread->ptrace_dr7) stores the
> > requested data even if the 'write' onto DR7 i.e. ptrace_write_dr7()
> > failed. This can be the other way round i.e. populate the thread's copy
> > of DR7 only if the write was successful.
>
>
>
> No. We store the new dr7 value only if ptrace_set_dr7() didn't fail.
>
>
>
> > I think it will be in consonance with the v2.6.32 behaviour as well. For
> > instance, in the code snippet from ptrace_set_debugreg() in v2.6.32
> > below:
> >                for (i = 0; i < 4; i++)
> >                        if ((DR7_MASK >> ((data >> (16 + 4*i)) & 0xf)) & 1)
> >                                return -EIO;
> >                child->thread.debugreg7 = data;
> >
> > The thread's copy of DR7 is populated only if the incoming data is
> > found to be valid.
>
>
> This is also what does this patch. thread->ptrace_dr7 is only
> changed if ptrace_set_dr7() succeeded.
>
> Thanks.

hmmh...I see...looks like I experienced single-bit ECC as I read
the patch :-) Yes, let debugreg7 store values only when a valid bkpt
request comes in.

Thanks,
K.Prasad

--
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/