Date: Wed, 5 Jul 2023 09:46:09 GMT From: Andrew Turner <andrew@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 6b1f53295148 - main - arm64: Fix a use of update_lower_register Message-ID: <202307050946.3659k9Xw039194@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=6b1f53295148fb1a10b1193dbd22cb00a796f8d6 commit 6b1f53295148fb1a10b1193dbd22cb00a796f8d6 Author: Andrew Turner <andrew@FreeBSD.org> AuthorDate: 2023-07-03 09:38:10 +0000 Commit: Andrew Turner <andrew@FreeBSD.org> CommitDate: 2023-07-05 09:42:14 +0000 arm64: Fix a use of update_lower_register In get_kernel_reg_masked we use update_lower_register to get the lower value of two registers for a given field. It will return the entire register value with just the single field updated. Because of this get_kernel_reg_masked needs to use the returned value directly rather than ORing each field together. Fix this by updating the mask and returning that from get_kernel_reg_masked. Reviewed by: markj Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D40846 --- sys/arm64/arm64/identcpu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c index 20ef74f58de2..bbb3e2d1484b 100644 --- a/sys/arm64/arm64/identcpu.c +++ b/sys/arm64/arm64/identcpu.c @@ -1821,12 +1821,12 @@ get_kernel_reg_masked(u_int reg, uint64_t *valp, uint64_t mask) for (int i = 0; i < nitems(user_regs); i++) { if (user_regs[i].reg == reg) { val = CPU_DESC_FIELD(kern_cpu_desc, i); - *valp = 0; fields = user_regs[i].fields; for (int j = 0; fields[j].type != 0; j++) { - *valp |= update_lower_register(mask, val, + mask = update_lower_register(mask, val, fields[j].shift, 4, fields[j].sign); } + *valp = mask; return (true); } }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202307050946.3659k9Xw039194>