linux-user: Forget about synchronous signal once it is delivered
commit31efaef1d9b80b7803e22ef28ffc51df04db60ab
authorPeter Maydell <peter.maydell@linaro.org>
Wed, 6 Jul 2016 14:09:29 +0000 (6 15:09 +0100)
committerRiku Voipio <riku.voipio@linaro.org>
Tue, 19 Jul 2016 12:23:16 +0000 (19 15:23 +0300)
treed46156d7a59537b364e30aa6365e40e1c85f4630
parentf2c2fb50be13aca9c449d9156817c915d9cd2acb
linux-user: Forget about synchronous signal once it is delivered

Commit 655ed67c2a248cf which switched synchronous signals to
benig recorded in ts->sync_signal rather than in a queue
with every other signal had a bug: we failed to clear
the flag indicating that a synchronous signal was pending
when we delivered it. This meant that we would take the signal
again and again every time the guest made a syscall.
(This is a bug introduced in my refactoring of Timothy Baldwin's
original code.)

Fix this by passing in the struct emulated_sigtable* to
handle_pending_signal(), so that we clear the pending flag
in the ts->sync_signal struct when handling a synchronous signal.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
linux-user/signal.c