lkml.org 
[lkml]   [2009]   [Dec]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC Patch 2/2][Bugfix][x86][hw-breakpoint] Fix return-code to notifier chain in hw_breakpoint_handler
    On Sat, Dec 26, 2009 at 11:58:33PM +0530, K.Prasad wrote:
    > The hw-breakpoint handler will return NOTIFY_DONE for user-space breakpoints
    > to generate SIGTRAP signal (and not for kernel-space addresses).
    >
    > Signed-off-by: K.Prasad <prasad@linux.vnet.ibm.com>
    > ---
    > arch/x86/kernel/hw_breakpoint.c | 9 +++++++--
    > 1 file changed, 7 insertions(+), 2 deletions(-)
    >
    > Index: linux-2.6-tip/arch/x86/kernel/hw_breakpoint.c
    > ===================================================================
    > --- linux-2.6-tip.orig/arch/x86/kernel/hw_breakpoint.c
    > +++ linux-2.6-tip/arch/x86/kernel/hw_breakpoint.c
    > @@ -502,8 +502,6 @@ static int __kprobes hw_breakpoint_handl
    > rcu_read_lock();
    >
    > bp = per_cpu(bp_per_reg[i], cpu);
    > - if (bp)
    > - rc = NOTIFY_DONE;
    > /*
    > * Reset the 'i'th TRAP bit in dr6 to denote completion of
    > * exception handling
    > @@ -517,6 +515,13 @@ static int __kprobes hw_breakpoint_handl
    > rcu_read_unlock();
    > break;
    > }
    > + /*
    > + * Further processing in do_debug() is needed for a) user-space
    > + * breakpoints (to generate signals) and b) when the system has
    > + * taken exception due to multiple causes
    > + */
    > + if (bp->attr.bp_addr < TASK_SIZE)
    > + rc = NOTIFY_DONE;
    >
    > perf_bp_event(bp, args->regs);
    >
    >


    Looks good. This stops any further checks though. This
    is fine in case we have the DR_STEP bit as we will
    toggle to NOTIFY_DONE. But what about vm86 case? Is it
    possible we might still have something to handle in this
    side? (although I don't quite understand how we can have
    a breakpoint triggered in vm86 mode).



    \
     
     \ /
      Last update: 2009-12-31 01:37    [W:0.022 / U:1.368 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site