From 5a7ca14fcc628a8c8e703f166a683151a87a6bec Mon Sep 17 00:00:00 2001 From: Masamichi Takagi Date: Tue, 20 Mar 2018 14:02:51 +0900 Subject: [PATCH] rus_vm_fault: Return VM_FAULT_SIGBUS when per-process data is not found --- executer/kernel/mcctrl/syscall.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/executer/kernel/mcctrl/syscall.c b/executer/kernel/mcctrl/syscall.c index 1e81029f..fb0e0cc4 100644 --- a/executer/kernel/mcctrl/syscall.c +++ b/executer/kernel/mcctrl/syscall.c @@ -700,7 +700,8 @@ static int rus_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) if (!ppd) { kprintf("%s: ERROR: no per-process structure for PID %d??\n", __FUNCTION__, task_tgid_vnr(current)); - return -EINVAL; + ret = VM_FAULT_SIGBUS; + goto no_ppd; } packet = (struct ikc_scd_packet *)mcctrl_get_per_thread_data(ppd, current); @@ -892,6 +893,7 @@ static int rus_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) put_and_out: mcctrl_put_per_proc_data(ppd); + no_ppd: return ret; }