temporary fix for bug #889
This commit is contained in:
@@ -1770,9 +1770,6 @@ void __return_syscall(ihk_os_t os, struct ikc_scd_packet *packet,
|
|||||||
unsigned long phys;
|
unsigned long phys;
|
||||||
struct syscall_response *res;
|
struct syscall_response *res;
|
||||||
|
|
||||||
if (stid == -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
phys = ihk_device_map_memory(ihk_os_to_dev(os),
|
phys = ihk_device_map_memory(ihk_os_to_dev(os),
|
||||||
packet->resp_pa, sizeof(*res));
|
packet->resp_pa, sizeof(*res));
|
||||||
res = ihk_device_map_virtual(ihk_os_to_dev(os),
|
res = ihk_device_map_virtual(ihk_os_to_dev(os),
|
||||||
|
|||||||
@@ -211,8 +211,7 @@ long do_syscall(struct syscall_request *req, int cpu, int pid)
|
|||||||
send_syscall(req, cpu, pid, &res);
|
send_syscall(req, cpu, pid, &res);
|
||||||
|
|
||||||
if (req->rtid == -1) {
|
if (req->rtid == -1) {
|
||||||
rc = 0;
|
preempt_disable();
|
||||||
goto out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dkprintf("%s: syscall num: %d waiting for Linux.. \n",
|
dkprintf("%s: syscall num: %d waiting for Linux.. \n",
|
||||||
@@ -363,6 +362,9 @@ long do_syscall(struct syscall_request *req, int cpu, int pid)
|
|||||||
send_syscall(&req2, cpu, pid, &res);
|
send_syscall(&req2, cpu, pid, &res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (req->rtid == -1) {
|
||||||
|
preempt_enable();
|
||||||
|
}
|
||||||
|
|
||||||
dkprintf("%s: syscall num: %d got host reply: %d \n",
|
dkprintf("%s: syscall num: %d got host reply: %d \n",
|
||||||
__FUNCTION__, req->number, res.ret);
|
__FUNCTION__, req->number, res.ret);
|
||||||
|
|||||||
Reference in New Issue
Block a user