uti: Change field name of release_user_space_desc

Change-Id: I18ada86ec3835198c1a947d8ceb36075d6ff2e94
This commit is contained in:
Masamichi Takagi
2018-09-02 17:32:54 +09:00
parent 6b031c5472
commit 98ee584ab6
3 changed files with 13 additions and 9 deletions

View File

@ -255,7 +255,11 @@ struct release_user_space_desc {
struct terminate_thread_desc {
int pid;
int tid;
long sig;
long code;
/* 32------32 31--16 15--------8 7----0
exit_group exit-status signal */
unsigned long tsk; /* struct task_struct * */
};

View File

@ -2509,14 +2509,14 @@ mcexec_sig_thread(ihk_os_t os, unsigned long arg, struct file *file)
return ret;
}
static long mcexec_terminate_thread_unsafe(ihk_os_t os, int pid, int tid, long sig, struct task_struct *tsk)
static long mcexec_terminate_thread_unsafe(ihk_os_t os, int pid, int tid, long code, struct task_struct *tsk)
{
struct ikc_scd_packet *packet;
struct mcctrl_usrdata *usrdata = ihk_host_os_get_usrdata(os);
struct mcctrl_per_proc_data *ppd;
struct mcctrl_per_thread_data *ptd;
dprintk("%s: target pid=%d,tid=%d,sig=%lx,task=%p\n", __FUNCTION__, pid, tid, sig, tsk);
dprintk("%s: target pid=%d,tid=%d,code=%lx,task=%p\n", __FUNCTION__, pid, tid, code, tsk);
ppd = mcctrl_get_per_proc_data(usrdata, pid);
if (!ppd) {
@ -2542,7 +2542,7 @@ static long mcexec_terminate_thread_unsafe(ihk_os_t os, int pid, int tid, long s
__FUNCTION__, tid);
goto no_ptd;
}
__return_syscall(usrdata->os, packet, sig, tid);
__return_syscall(usrdata->os, packet, code, tid);
ihk_ikc_release_packet((struct ihk_ikc_free_packet *)packet,
(usrdata->ikc2linux[smp_processor_id()] ?
usrdata->ikc2linux[smp_processor_id()] :
@ -2606,7 +2606,7 @@ mcexec_terminate_thread(ihk_os_t os, struct terminate_thread_desc * __user arg)
write_unlock_irqrestore(&host_thread_lock, flags);
rc = mcexec_terminate_thread_unsafe(os, desc.pid, desc.tid, desc.sig, (struct task_struct *)desc.tsk);
rc = mcexec_terminate_thread_unsafe(os, desc.pid, desc.tid, desc.code, (struct task_struct *)desc.tsk);
out:
return rc;

View File

@ -23,7 +23,7 @@ hook(long syscall_number,
//return 1; /* debug */
int tid = uti_syscall0(__NR_gettid);
struct terminate_thread_desc term_desc;
unsigned long sig;
unsigned long code;
if (!uti_desc.start_syscall_intercept) {
return 1; /* System call isn't taken over */
@ -79,15 +79,15 @@ hook(long syscall_number,
}
break;
case __NR_exit_group:
sig = 0x100000000;
code = 0x100000000;
goto make_remote_thread_exit;
case __NR_exit:
sig = 0;
code = 0;
make_remote_thread_exit:
/* Make migrated-to-Linux thread on the McKernel side call do_exit() or terminate() */
term_desc.pid = uti_desc.pid;
term_desc.tid = uti_desc.tid; /* tid of mcexec */
term_desc.sig = sig | (arg0 << 8);
term_desc.code = code | ((arg0 & 255) << 8);
term_desc.tsk = uti_desc.key;
uti_syscall3(__NR_ioctl, uti_desc.fd, MCEXEC_UP_TERMINATE_THREAD, (long)&term_desc);