diff --git a/sys/alpha/alpha/sys_machdep.c b/sys/alpha/alpha/sys_machdep.c index 224e7e48bcfd..cc213a372c18 100644 --- a/sys/alpha/alpha/sys_machdep.c +++ b/sys/alpha/alpha/sys_machdep.c @@ -77,7 +77,7 @@ sysarch(td, uap) struct thread *td; register struct sysarch_args *uap; { - int error = 0; + int error; switch(uap->op) { case ALPHA_SETHAE: diff --git a/sys/amd64/amd64/sys_machdep.c b/sys/amd64/amd64/sys_machdep.c index b48d527005c4..e1ed61780e50 100644 --- a/sys/amd64/amd64/sys_machdep.c +++ b/sys/amd64/amd64/sys_machdep.c @@ -88,8 +88,9 @@ sysarch(td, uap) struct thread *td; register struct sysarch_args *uap; { - int error = 0; + int error; + mtx_lock(&Giant); switch(uap->op) { case I386_GET_LDT: error = i386_get_ldt(td, uap->parms); @@ -108,9 +109,10 @@ sysarch(td, uap) error = vm86_sysarch(td, uap->parms); break; default: - error = EOPNOTSUPP; + error = EINVAL; break; } + mtx_unlock(&Giant); return (error); } diff --git a/sys/i386/i386/sys_machdep.c b/sys/i386/i386/sys_machdep.c index b48d527005c4..e1ed61780e50 100644 --- a/sys/i386/i386/sys_machdep.c +++ b/sys/i386/i386/sys_machdep.c @@ -88,8 +88,9 @@ sysarch(td, uap) struct thread *td; register struct sysarch_args *uap; { - int error = 0; + int error; + mtx_lock(&Giant); switch(uap->op) { case I386_GET_LDT: error = i386_get_ldt(td, uap->parms); @@ -108,9 +109,10 @@ sysarch(td, uap) error = vm86_sysarch(td, uap->parms); break; default: - error = EOPNOTSUPP; + error = EINVAL; break; } + mtx_unlock(&Giant); return (error); } diff --git a/sys/ia64/ia64/sys_machdep.c b/sys/ia64/ia64/sys_machdep.c index 810b7d131b0c..aecae85bd55e 100644 --- a/sys/ia64/ia64/sys_machdep.c +++ b/sys/ia64/ia64/sys_machdep.c @@ -68,7 +68,7 @@ sysarch(td, uap) struct thread *td; register struct sysarch_args *uap; { - int error = 0; + int error; switch(uap->op) { default: diff --git a/sys/powerpc/powerpc/sys_machdep.c b/sys/powerpc/powerpc/sys_machdep.c index a97e2101675a..146228fd8b65 100644 --- a/sys/powerpc/powerpc/sys_machdep.c +++ b/sys/powerpc/powerpc/sys_machdep.c @@ -35,5 +35,5 @@ int sysarch(struct thread *td, struct sysarch_args *uap) { - return (EOPNOTSUPP); + return (EINVAL); } diff --git a/sys/sparc64/sparc64/sys_machdep.c b/sys/sparc64/sparc64/sys_machdep.c index 34be95acf580..d26efbb783cf 100644 --- a/sys/sparc64/sparc64/sys_machdep.c +++ b/sys/sparc64/sparc64/sys_machdep.c @@ -28,7 +28,9 @@ #include #include +#include #include +#include #include #include @@ -50,7 +52,7 @@ sysarch(struct thread *td, struct sysarch_args *uap) { int error; - error = 0; + mtx_lock(&Giant); switch (uap->op) { case SPARC_SIGTRAMP_INSTALL: error = sparc_sigtramp_install(td, uap->parms); @@ -62,6 +64,7 @@ sysarch(struct thread *td, struct sysarch_args *uap) error = EINVAL; break; } + mtx_unlock(&Giant); return (error); }