diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/uapi/ipc.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/uapi/ipc.c b/src/uapi/ipc.c index 0fba899..5f2aad1 100644 --- a/src/uapi/ipc.c +++ b/src/uapi/ipc.c @@ -283,13 +283,15 @@ static void leave_rpc(struct tcb *t, struct sys_ret a) if (t->notify_flags) notify(t, 0); - if (is_rpc(t)) { + if (is_rpc(t)) use_vmem(t->rpc.vmem); - return; - } + else + use_vmem(t->proc.vmem); - /* notification didn't take, return back to process normally */ - use_vmem(t->proc.vmem); + if (!ctx->notify) { + bkl_unlock(); + ret_userspace_partial(); + } } /** |
