Message ID | 20231004133827.107-2-julian.stecklina@cyberus-technology.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] KVM: x86: Fix partially uninitialized integer in emulate_pop | expand |
On Wed, Oct 04, 2023, Julian Stecklina wrote: > push and emulate_pop are counterparts. Rename push to emulate_push and > harmonize its function signature with emulate_pop. This should remove > a bit of cognitive load when reading this code. > > Signed-off-by: Julian Stecklina <julian.stecklina@cyberus-technology.de> > --- > arch/x86/kvm/emulate.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c > index fc4a365a309f..33f3327ddfa7 100644 > --- a/arch/x86/kvm/emulate.c > +++ b/arch/x86/kvm/emulate.c > @@ -1819,22 +1819,23 @@ static int writeback(struct x86_emulate_ctxt *ctxt, struct operand *op) > return X86EMUL_CONTINUE; > } > > -static int push(struct x86_emulate_ctxt *ctxt, void *data, int bytes) > +static int emulate_push(struct x86_emulate_ctxt *ctxt, const unsigned long *data, > + u8 op_bytes) I like the rename and making @data const, but please leave @bytes as an int. Regarding @bytes versus @len, my vote is to do s/len/bytes for emulate_pop() and emulate_popf().
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index fc4a365a309f..33f3327ddfa7 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -1819,22 +1819,23 @@ static int writeback(struct x86_emulate_ctxt *ctxt, struct operand *op) return X86EMUL_CONTINUE; } -static int push(struct x86_emulate_ctxt *ctxt, void *data, int bytes) +static int emulate_push(struct x86_emulate_ctxt *ctxt, const unsigned long *data, + u8 op_bytes) { struct segmented_address addr; - rsp_increment(ctxt, -bytes); + rsp_increment(ctxt, -(int)op_bytes); addr.ea = reg_read(ctxt, VCPU_REGS_RSP) & stack_mask(ctxt); addr.seg = VCPU_SREG_SS; - return segmented_write(ctxt, addr, data, bytes); + return segmented_write(ctxt, addr, data, op_bytes); } static int em_push(struct x86_emulate_ctxt *ctxt) { /* Disable writeback. */ ctxt->dst.type = OP_NONE; - return push(ctxt, &ctxt->src.val, ctxt->op_bytes); + return emulate_push(ctxt, &ctxt->src.val, ctxt->op_bytes); } static int emulate_pop(struct x86_emulate_ctxt *ctxt, @@ -1925,7 +1926,7 @@ static int em_enter(struct x86_emulate_ctxt *ctxt) return X86EMUL_UNHANDLEABLE; rbp = reg_read(ctxt, VCPU_REGS_RBP); - rc = push(ctxt, &rbp, stack_size(ctxt)); + rc = emulate_push(ctxt, &rbp, stack_size(ctxt)); if (rc != X86EMUL_CONTINUE) return rc; assign_masked(reg_rmw(ctxt, VCPU_REGS_RBP), reg_read(ctxt, VCPU_REGS_RSP),
push and emulate_pop are counterparts. Rename push to emulate_push and harmonize its function signature with emulate_pop. This should remove a bit of cognitive load when reading this code. Signed-off-by: Julian Stecklina <julian.stecklina@cyberus-technology.de> --- arch/x86/kvm/emulate.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-)