uti: Fix signal relay from mcexec to McKernel
Change-Id: I2ffd8049a0fb1637cfc6bab7fe24c6a85e5e53fc
This commit is contained in:
@@ -1154,9 +1154,9 @@ sendsig(int sig, siginfo_t *siginfo, void *context)
|
||||
int cpu;
|
||||
struct signal_desc sigdesc;
|
||||
struct thread_data_s *tp;
|
||||
int localthread;
|
||||
int not_uti;
|
||||
|
||||
localthread = ioctl(fd, MCEXEC_UP_SIG_THREAD, 1);
|
||||
not_uti = ioctl(fd, MCEXEC_UP_SIG_THREAD, 1);
|
||||
pid = getpid();
|
||||
tid = gettid();
|
||||
if (siginfo->si_pid == pid &&
|
||||
@@ -1189,7 +1189,7 @@ sendsig(int sig, siginfo_t *siginfo, void *context)
|
||||
remote_tid = -1;
|
||||
}
|
||||
|
||||
if (localthread) {
|
||||
if (not_uti) { /* target isn't uti thread, ask McKernel to call the handler */
|
||||
memset(&sigdesc, '\0', sizeof sigdesc);
|
||||
sigdesc.cpu = cpu;
|
||||
sigdesc.pid = (int)pid;
|
||||
@@ -1201,7 +1201,7 @@ sendsig(int sig, siginfo_t *siginfo, void *context)
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
else { /* target is uti thread, mcexec calls the handler */
|
||||
struct syscall_struct param;
|
||||
int rc;
|
||||
|
||||
@@ -1226,7 +1226,7 @@ sendsig(int sig, siginfo_t *siginfo, void *context)
|
||||
}
|
||||
}
|
||||
out:
|
||||
if (!localthread)
|
||||
if (!not_uti)
|
||||
ioctl(fd, MCEXEC_UP_SIG_THREAD, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user