From d6c51ff997886c715d281d682f5f0e91286b2a73 Mon Sep 17 00:00:00 2001 From: NAKAMURA Gou Date: Fri, 18 Mar 2016 15:52:58 +0900 Subject: [PATCH] treat memory devices as regular files, to enable processes to mmap() /dev/zero --- executer/kernel/mcctrl/syscall.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/executer/kernel/mcctrl/syscall.c b/executer/kernel/mcctrl/syscall.c index 42e5c805..97ca75db 100644 --- a/executer/kernel/mcctrl/syscall.c +++ b/executer/kernel/mcctrl/syscall.c @@ -902,7 +902,10 @@ static int pager_req_create(ihk_os_t os, int fd, uintptr_t result_pa) dprintk("pager_req_create(%d,%lx):vfs_stat failed. %d\n", fd, (long)result_pa, error); goto out; } - if (!S_ISREG(st.mode)) { + if (S_ISCHR(st.mode) && (MAJOR(st.rdev) == 1)) { + /* treat memory devices as regular files */ + } + else if (!S_ISREG(st.mode)) { error = -ESRCH; dprintk("pager_req_create(%d,%lx):not VREG. %x\n", fd, (long)result_pa, st.mode); goto out;