diff --git a/sys/arm/include/proc.h b/sys/arm/include/proc.h index 4ffbec59d86..a86df3557cc 100644 --- a/sys/arm/include/proc.h +++ b/sys/arm/include/proc.h @@ -68,15 +68,20 @@ struct mdproc { #endif #define MAXARGS 8 +/* + * This holds the syscall state for a single system call. + * As some syscall arguments may be 64-bit aligned we need to ensure the + * args value is 64-bit aligned. The ABI will then ensure any 64-bit + * arguments are already correctly aligned, even if they were passed in + * via registers, we just need to make sure we copy them to an algned + * buffer. + */ struct syscall_args { u_int code; struct sysent *callp; register_t args[MAXARGS]; int narg; u_int nap; -#ifndef __ARM_EABI__ - u_int32_t insn; -#endif -}; +} __aligned(8); #endif /* !_MACHINE_PROC_H_ */