On 07/22/2016 01:38 PM, Wei Liu wrote: > On Fri, Jul 22, 2016 at 01:14:01PM -0400, Boris Ostrovsky wrote: >> Current code incorrectly adds 1 to full register instead of >> incrementing the field in bits 15:12. >> >> Signed-off-by: Boris Ostrovsky <boris.ostrov...@oracle.com> > Acked-by: Wei Liu <wei.l...@citrix.com> > > I trust your expertise in this field. :-)
Just in this field? The field is only 4 bits! ;-) But this actually fixes a regression that was triggered by recent hvmloader change on one particular processor that we have in the test farm. -boris > >> --- >> tools/libxc/xc_cpuid_x86.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/tools/libxc/xc_cpuid_x86.c b/tools/libxc/xc_cpuid_x86.c >> index 84f4e08..fbbac9e 100644 >> --- a/tools/libxc/xc_cpuid_x86.c >> +++ b/tools/libxc/xc_cpuid_x86.c >> @@ -331,7 +331,8 @@ static void amd_xc_cpuid_policy(xc_interface *xch, >> * ECX[15:12] is ApicIdCoreSize: ECX[7:0] is NumberOfCores (minus >> one). >> * Update to reflect vLAPIC_ID = vCPU_ID * 2. >> */ >> - regs[2] = ((regs[2] & 0xf000u) + 1) | ((regs[2] & 0xffu) << 1) | 1u; >> + regs[2] = ((regs[2] + (1u << 12)) & 0xf000u) | >> + ((regs[2] & 0xffu) << 1) | 1u; >> break; >> >> case 0x8000000a: { >> -- >> 1.8.3.1 >> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel