x86/hvm: Fix Misra Rule 19.1 regression

Despite noticing an impending Rule 19.1 violation, the adjustment made (the
uint32_t cast) wasn't sufficient to avoid it.  Try again.

Subsequently noticed by Coverity too.

Fixes: 6a98383b08 ("x86/HVM: clear upper halves of GPRs upon entry from 32-bit code")
Coverity-IDs: 1596289 thru 1596298
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Andrew Cooper committed 2024-04-11 13:23:08 +01:00
1 parent d37c184236
commit d0a718a45f
1 file changed
+10 -10
+10 -10
View File
@@ -575,16 +575,16 @@ static inline void hvm_sanitize_regs_fields(struct cpu_user_regs *regs,
if ( compat )
{
/* Clear GPR upper halves, to counteract guests playing games. */
regs->rbp = (uint32_t)regs->ebp;
regs->rbx = (uint32_t)regs->ebx;
regs->rax = (uint32_t)regs->eax;
regs->rcx = (uint32_t)regs->ecx;
regs->rdx = (uint32_t)regs->edx;
regs->rsi = (uint32_t)regs->esi;
regs->rdi = (uint32_t)regs->edi;
regs->rip = (uint32_t)regs->eip;
regs->rflags = (uint32_t)regs->eflags;
regs->rsp = (uint32_t)regs->esp;
regs->rbp = (uint32_t)regs->rbp;
regs->rbx = (uint32_t)regs->rbx;
regs->rax = (uint32_t)regs->rax;
regs->rcx = (uint32_t)regs->rcx;
regs->rdx = (uint32_t)regs->rdx;
regs->rsi = (uint32_t)regs->rsi;
regs->rdi = (uint32_t)regs->rdi;
regs->rip = (uint32_t)regs->rip;
regs->rflags = (uint32_t)regs->rflags;
regs->rsp = (uint32_t)regs->rsp;
}
#ifndef NDEBUG
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.