uti: Change field name of release_user_space_desc
Change-Id: I18ada86ec3835198c1a947d8ceb36075d6ff2e94
This commit is contained in:
@ -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 * */
|
||||
};
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user