summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/uts/intel/ia32/os/syscall.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/usr/src/uts/intel/ia32/os/syscall.c b/usr/src/uts/intel/ia32/os/syscall.c
index f2087a2023..45d707199a 100644
--- a/usr/src/uts/intel/ia32/os/syscall.c
+++ b/usr/src/uts/intel/ia32/os/syscall.c
@@ -136,7 +136,7 @@ static struct sysent sysent_err = {
/*
* Called from syscall() when a non-trivial 32-bit system call occurs.
- * Sets up the args and returns a pointer to the handler.
+ * Sets up the args and returns a pointer to the handler.
*/
struct sysent *
syscall_entry(kthread_t *t, long *argp)
@@ -219,8 +219,9 @@ syscall_exit(kthread_t *t, long rval1, long rval2)
rp->r_r0 = rval1;
rp->r_r1 = rval2;
lwp->lwp_state = LWP_USER;
- } else
+ } else {
post_syscall(rval1, rval2);
+ }
t->t_sysnum = 0; /* invalidate args */
}
@@ -392,9 +393,9 @@ pre_syscall()
(void) save_syscall_args();
mutex_enter(&systrace_lock);
printf("%d: ", p->p_pid);
- if (code >= NSYSCALL)
+ if (code >= NSYSCALL) {
printf("0x%x", code);
- else {
+ } else {
sysname = mod_getsysname(code);
printf("%s[0x%x/0x%p]", sysname == NULL ? "NULL" :
sysname, code, callp->sy_callc);
@@ -623,7 +624,7 @@ sig_check:
* Note we will still take the lock and check the binding
* if the condition was true without the lock held. This
* prevents lock contention among threads owned by the
- * same proc.
+ * same proc.
*/
if (curthread->t_proc_flag & TP_CHANGEBIND) {
@@ -1187,7 +1188,6 @@ loadable_syscall(
struct sysent *se = LWP_GETSYSENT(lwp);
krwlock_t *module_lock;
int code, error = 0;
- int64_t (*sy_call)();
code = curthread->t_sysnum;
callp = se + code;
@@ -1205,10 +1205,11 @@ loadable_syscall(
if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) {
#if defined(_LP64)
if (callp->sy_flags & SE_ARGC) {
- sy_call = (int64_t (*)())callp->sy_call;
- rval = (*sy_call)(a0, a1, a2, a3, a4, a5);
- } else
+ rval = (int64_t)(*callp->sy_call)(a0, a1, a2, a3,
+ a4, a5);
+ } else {
rval = syscall_ap();
+ }
} else {
#endif
/*
@@ -1219,12 +1220,12 @@ loadable_syscall(
if (error) {
rval = set_errno(error);
} else if (callp->sy_flags & SE_ARGC) {
- sy_call = (int64_t (*)())callp->sy_call;
- rval = (*sy_call)(lwp->lwp_ap[0], lwp->lwp_ap[1],
- lwp->lwp_ap[2], lwp->lwp_ap[3], lwp->lwp_ap[4],
- lwp->lwp_ap[5]);
- } else
+ rval = (int64_t)(*callp->sy_call)(lwp->lwp_ap[0],
+ lwp->lwp_ap[1], lwp->lwp_ap[2], lwp->lwp_ap[3],
+ lwp->lwp_ap[4], lwp->lwp_ap[5]);
+ } else {
rval = syscall_ap();
+ }
}
THREAD_KPRI_REQUEST(); /* regain priority from read lock */