uprobes: Change handle_trampoline() to find the next chain beforehand
authorOleg Nesterov <[email protected]>
Tue, 21 Jul 2015 13:40:13 +0000 (15:40 +0200)
committerIngo Molnar <[email protected]>
Fri, 31 Jul 2015 08:38:04 +0000 (10:38 +0200)
commita83cfeb92132c279b20bbc8ed3cef833b0fe417e
tree993d56e06db2cf0b927ba39b578cb9310720fdff
parent6c58d0e4cc26ea8882928e64c0de9afed4fc37cb
uprobes: Change handle_trampoline() to find the next chain beforehand

No functional changes, preparation.

Add the new helper, find_next_ret_chain(), which finds the first
!chained entry and returns its ->next. Yes, it is suboptimal. We
probably want to turn ->chained into ->start_of_this_chain
pointer and avoid another loop. But this needs the boring
changes in dup_utask(), so lets do this later.

Change the main loop in handle_trampoline() to unwind the stack
until ri is equal to the pointer returned by this new helper.

Tested-by: Pratyush Anand <[email protected]>
Signed-off-by: Oleg Nesterov <[email protected]>
Acked-by: Srikar Dronamraju <[email protected]>
Acked-by: Anton Arapov <[email protected]>
Cc: Andy Lutomirski <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
kernel/events/uprobes.c