From 88e9ee2a7c3ccce63fa55d6303b3328e30224df1 Mon Sep 17 00:00:00 2001 From: "Balazs Gerofi bgerofi@riken.jp" Date: Sat, 3 Nov 2012 18:50:03 +0900 Subject: [PATCH] fix return value from extend_process_region() --- kernel/syscall.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/syscall.c b/kernel/syscall.c index 94bfa441..2e119e30 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -467,7 +467,7 @@ SYSCALL_DECLARE(mmap) region->map_end, s + len); aal_mc_spinlock_unlock(&cpu_local_var(current)->vm->memory_range_lock, flags); - if (region->map_end != s + len) { return -EINVAL; } + if (region->map_end < s + len) { return -EINVAL; } struct syscall_request request AAL_DMA_ALIGN; request.number = n; @@ -484,7 +484,7 @@ SYSCALL_DECLARE(mmap) request.args[0] = __phys; int r = do_syscall(&request, ctx); - if(r == 0) { return s; } else { return -EINVAL; } + if(r == 0) { return region->map_end - len; } else { return -EINVAL; } } dkprintf("mmap flags not supported: fd = %lx, %lx\n", aal_mc_syscall_arg4(ctx), aal_mc_syscall_arg5(ctx));