Message ID | 20190501200451.255615-2-samitolvanen@google.com (mailing list archive) |
---|---|
State | Mainlined, archived |
Commit | 8ef8f368ce72b5e17f7c1f1ef15c38dcfd0fef64 |
Headers | show |
Series | fix function type mismatches in syscall wrappers | expand |
On Wed, May 01, 2019 at 01:04:50PM -0700, Sami Tolvanen wrote: > Use const struct pt_regs * instead of struct pt_regs * as > the argument type to fix indirect call type mismatches with > Control-Flow Integrity checking. It's probably worth noting that in <asm/syscall_wrapper.h> all syscall wrappers take a const struct pt_regs *, which is where the mismatch comes from. > > Signed-off-by: Sami Tolvanen <samitolvanen@google.com> > --- > arch/arm64/include/asm/syscall.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/include/asm/syscall.h b/arch/arm64/include/asm/syscall.h > index a179df3674a1a..6206ab9bfcfc5 100644 > --- a/arch/arm64/include/asm/syscall.h > +++ b/arch/arm64/include/asm/syscall.h > @@ -20,7 +20,7 @@ > #include <linux/compat.h> > #include <linux/err.h> > > -typedef long (*syscall_fn_t)(struct pt_regs *regs); > +typedef long (*syscall_fn_t)(const struct pt_regs *regs); For a second I was worried that we modify the regs to assign the return value, but I see we do that in the syscall.c wrapper, where the pt_regs argument isn't const. We certainly chouldn't need to modify the regs when acquiring the arguments, and as above this matches <asm/syscall_wrapper.h>, so this looks sound to me. FWIW: Reviewed-by: Mark Rutland <mark.rutland@arm.com> Thanks, Mark.
diff --git a/arch/arm64/include/asm/syscall.h b/arch/arm64/include/asm/syscall.h index a179df3674a1a..6206ab9bfcfc5 100644 --- a/arch/arm64/include/asm/syscall.h +++ b/arch/arm64/include/asm/syscall.h @@ -20,7 +20,7 @@ #include <linux/compat.h> #include <linux/err.h> -typedef long (*syscall_fn_t)(struct pt_regs *regs); +typedef long (*syscall_fn_t)(const struct pt_regs *regs); extern const syscall_fn_t sys_call_table[];
Use const struct pt_regs * instead of struct pt_regs * as the argument type to fix indirect call type mismatches with Control-Flow Integrity checking. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> --- arch/arm64/include/asm/syscall.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)