Module Name: src Committed By: rin Date: Tue Jun 18 13:29:56 UTC 2024
Modified Files: src/sys/arch/aarch64/aarch64: netbsd32_machdep.c Log Message: aarch64: cpu_getmcontext32: Fix sign compare for ras_lookup(9) Now, compare with `(void *)-1` is done for x0, instead of w0. No binary changes except for that. Found by WARNS=5 build (as a module). To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/sys/arch/aarch64/aarch64/netbsd32_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/aarch64/aarch64/netbsd32_machdep.c diff -u src/sys/arch/aarch64/aarch64/netbsd32_machdep.c:1.24 src/sys/arch/aarch64/aarch64/netbsd32_machdep.c:1.25 --- src/sys/arch/aarch64/aarch64/netbsd32_machdep.c:1.24 Wed Feb 7 04:20:26 2024 +++ src/sys/arch/aarch64/aarch64/netbsd32_machdep.c Tue Jun 18 13:29:56 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_machdep.c,v 1.24 2024/02/07 04:20:26 msaitoh Exp $ */ +/* $NetBSD: netbsd32_machdep.c,v 1.25 2024/06/18 13:29:56 rin Exp $ */ /* * Copyright (c) 2018 Ryo Shimizu @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.24 2024/02/07 04:20:26 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_machdep.c,v 1.25 2024/06/18 13:29:56 rin Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -424,7 +424,7 @@ cpu_getmcontext32(struct lwp *l, mcontex { struct trapframe * const tf = lwp_trapframe(l); __greg32_t *gr = mcp->__gregs; - __greg32_t ras_pc; + void *ras_pc; gr[_REG_R0] = tf->tf_reg[0]; gr[_REG_R1] = tf->tf_reg[1]; @@ -444,9 +444,9 @@ cpu_getmcontext32(struct lwp *l, mcontex gr[_REG_R15] = tf->tf_pc; gr[_REG_CPSR] = tf->tf_spsr; - if ((ras_pc = (__greg32_t)(uintptr_t)ras_lookup(l->l_proc, - (void *)(uintptr_t)gr[_REG_R15])) != -1) { - gr[_REG_R15] = ras_pc; + ras_pc = ras_lookup(l->l_proc, (void *)(uintptr_t)gr[_REG_R15]); + if (ras_pc != (void *)-1) { + gr[_REG_R15] = (__greg32_t)(uintptr_t)ras_pc; } *flagsp |= _UC_CPU;