Commit 9064c5eb authored by Philippe Gerum's avatar Philippe Gerum
Browse files

evl/thread: stop leaking syscall restart bit on inband switch



The inband kernel does not attempt to restart an interrupted syscall
upon signal delivery, we should not either. Since signal delivery
requires switching inband, clear T_SYSRST in evl_switch_inband() to
prevent this.

This is a port of a Cobalt fix for the same issue by Jan Kiszka
<jan.kiszka@siemens.com>.
Signed-off-by: Philippe Gerum's avatarPhilippe Gerum <rpm@xenomai.org>
parent 7b353029
......@@ -665,6 +665,7 @@ void evl_switch_inband(int cause)
xnlock_get(&nklock);
curr->info &= ~EVL_THREAD_INFO_MASK;
curr->state |= T_INBAND;
curr->local_info &= ~T_SYSRST;
rq = curr->rq;
evl_set_resched(rq);
dovetail_leave_oob();
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment