From 190039f5d9565b8987f72414ff83867fb214f385 Mon Sep 17 00:00:00 2001 From: "Shiratori, Takehiro" Date: Tue, 16 Oct 2018 20:09:47 +0900 Subject: [PATCH] arch_cpu_read_write_register: error return fix. Fixed an issue where errors generated in arch_cpu_read_write_register() are not transmitted to the caller. Change-Id: I05d7d872eab834918220cf18f628aee37208a156 Fujitsu: POSTK_DEBUG_TEMP_FIX_94 --- executer/kernel/mcctrl/control.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/executer/kernel/mcctrl/control.c b/executer/kernel/mcctrl/control.c index 8ee32e53..771aa3b8 100644 --- a/executer/kernel/mcctrl/control.c +++ b/executer/kernel/mcctrl/control.c @@ -3284,6 +3284,7 @@ long __mcctrl_control(ihk_os_t os, unsigned int req, unsigned long arg, struct mcctrl_os_cpu_response { int done; unsigned long val; + int err; wait_queue_head_t wq; }; @@ -3362,6 +3363,7 @@ void mcctrl_os_read_write_cpu_response(ihk_os_t os, resp->val = pisp->desc.val; resp->done = 1; + resp->err = pisp->err; wake_up_interruptible(&resp->wq); } @@ -3380,6 +3382,7 @@ int __mcctrl_os_read_write_cpu_register(ihk_os_t os, int cpu, isp.resp = &resp; resp.done = 0; + resp.err = 0; init_waitqueue_head(&resp.wq); mb(); @@ -3396,6 +3399,12 @@ int __mcctrl_os_read_write_cpu_register(ihk_os_t os, int cpu, goto out; } + ret = resp.err; + if (ret != 0) { + printk("%s: ERROR receive: %d\n", __FUNCTION__, resp.err); + goto out; + } + /* Update if read */ if (ret == 0 && op == MCCTRL_OS_CPU_READ_REGISTER) { desc->val = resp.val;