On Mon 2015-03-02 09:35:30, Peter Zijlstra wrote: > On Sun, Mar 01, 2015 at 09:09:24PM +0100, Jiri Kosina wrote: > > On Sat, 28 Feb 2015, Peter Zijlstra wrote: > > > > > While one must hold RCU-sched (aka. preempt_disable) for find_symbol() > > > one must equally hold it over the use of the object returned. > > > > > > The moment you release the RCU-sched read lock, the object can be dead > > > and gone. > > > > > > Cc: Seth Jennings <[email protected]> > > > Cc: Josh Poimboeuf <[email protected]> > > > Cc: Masami Hiramatsu <[email protected]> > > > Cc: Miroslav Benes <[email protected]> > > > Cc: Petr Mladek <[email protected]> > > > Cc: Jiri Kosina <[email protected]> > > > Cc: "Paul E. McKenney" <[email protected]> > > > Cc: Rusty Russell <[email protected]> > > > Signed-off-by: Peter Zijlstra (Intel) <[email protected]> > > > > Acked-by: Jiri Kosina <[email protected]> > > > > I guess you'll be taking this together with the series, so I am not > > applying it. > > Feel free to take it; this series might take a wee while longer to > mature. > > That said; I do have a follow up question on that code. So now you've > successfully obtained an address in module space; but the moment you > release that RCU-sched lock, the module can be gone. > > How does the whole live patching stuff deal with module removal during > patching?
There is a notifier, see klp_module_notify(). It applies existing patches when an affected module is loaded. Also it removes patches when an affected module is going. It is serialized with the other operations using the klp_mutex lock. Hmm, when I think about it. I am afraid that there is a race. For example, the going module might be unpatched by the notifier but a new patch might get applied when it is still visible by kallsyms. I am going to look at it. Best Regards, Petr -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

