bhyve: Simplify spinup_ap_realmode slightly.

There is no reason to modify the passed in rip variable.

Reviewed by:	corvink, markj
Differential Revision:	https://reviews.freebsd.org/D37647
This commit is contained in:
John Baldwin 2022-12-21 10:33:34 -08:00
parent 7224a96a55
commit e53fcff184

View File

@ -45,21 +45,20 @@ __FBSDID("$FreeBSD$");
#include "spinup_ap.h"
static void
spinup_ap_realmode(struct vmctx *ctx, int newcpu, uint64_t *rip)
spinup_ap_realmode(struct vmctx *ctx, int newcpu, uint64_t rip)
{
int vector, error;
uint16_t cs;
uint64_t desc_base;
uint32_t desc_limit, desc_access;
vector = *rip >> PAGE_SHIFT;
*rip = 0;
vector = rip >> PAGE_SHIFT;
/*
* Update the %cs and %rip of the guest so that it starts
* executing real mode code at at 'vector << 12'.
*/
error = vm_set_register(ctx, newcpu, VM_REG_GUEST_RIP, *rip);
error = vm_set_register(ctx, newcpu, VM_REG_GUEST_RIP, 0);
assert(error == 0);
error = vm_get_desc(ctx, newcpu, VM_REG_GUEST_CS, &desc_base,
@ -87,7 +86,7 @@ spinup_ap(struct vmctx *ctx, int newcpu, uint64_t rip)
error = vcpu_reset(ctx, newcpu);
assert(error == 0);
spinup_ap_realmode(ctx, newcpu, &rip);
spinup_ap_realmode(ctx, newcpu, rip);
vm_resume_cpu(ctx, newcpu);
}