aboutsummaryrefslogtreecommitdiff
path: root/src/uapi/ipc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/uapi/ipc.c')
-rw-r--r--src/uapi/ipc.c12
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();
+ }
}
/**