|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH][SVM] CPL initialization fix
For reference, from AMD's manual, Vol.2:
"The processor reads the current privilege level from the CPL field in the
VMCB, not from SS.DPL. However, SS.DPL should match the CPL field."
And from Intel's manual, Vol.3B:
"Note that the value of the DPL field for SS is always equal to the logical
processor¹s current privilege level (CPL)."
-- Keir
On 10/3/08 19:18, "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx> wrote:
> CPL is architecturally SS.DPL in almost all cases. It's certainly not
> CS.DPL. What do you mean by 'migrate a QEMU guest'?
>
> -- Keir
>
> On 10/3/08 19:14, "Ben Guthro" <bguthro@xxxxxxxxxxxxxxx> wrote:
>
>> CPL should be determined by code segment's DPL, not data segment's.
>>
>> This solves a problem migrating a QEMU guest without PV-on-HVM drivers
>>
>> Signed-off-by: Robert Plillips <rphillips@xxxxxxxxxxxxxxx>
>> Signed-off-by: Ben Guthro <bguthro@xxxxxxxxxxxxxxxx>
>> diff -r f76f151a7431 xen/arch/x86/hvm/svm/svm.c
>> --- a/xen/arch/x86/hvm/svm/svm.c
>> +++ b/xen/arch/x86/hvm/svm/svm.c
>> @@ -557,7 +557,7 @@ static void svm_set_segment_register(str
>> break;
>> case x86_seg_ss:
>> memcpy(&vmcb->ss, reg, sizeof(*reg));
>> - vmcb->cpl = vmcb->ss.attr.fields.dpl;
>> + vmcb->cpl = vmcb->cs.attr.fields.dpl;
>> break;
>> case x86_seg_tr:
>> memcpy(&vmcb->tr, reg, sizeof(*reg));
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
>
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|