On Thu, 2017-08-31 at 16:25:57 UTC, "Naveen N. Rao" wrote: > When a uprobe is installed on an instruction that we currently do not > emulate, we copy the instruction into a xol buffer and single step > that instruction. If that instruction generates a fault, we abort the > single stepping before invoking the signal handler. Once the signal > handler is done, the uprobe trap is hit again since the instruction is > retried and the process repeats. > > We use uprobe_deny_signal() to detect if the xol instruction triggered > a signal. If so, we clear TIF_SIGPENDING and set TIF_UPROBE so that the > signal is not handled until after the single stepping is aborted. In > this case, uprobe_deny_signal() returns true and get_signal() ends up > returning 0. However, in do_signal(), we are not looking at the return > value, but depending on ksig.sig for further action, all with an > uninitialized ksig that is not touched in this scenario. Fix the same > by initializing ksig.sig to 0. > > Fixes: 129b69df9c907 ("powerpc: Use get_signal() signal_setup_done()") > > Reported-by: Anton Blanchard <an...@samba.org> > Signed-off-by: Naveen N. Rao <naveen.n....@linux.vnet.ibm.com>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/46725b17f1c6c815a41429259b3f07 cheers