linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] KVM - Fix rmode_tss_base declaration
@ 2007-06-06 19:19 Jeff Dike
  2007-06-07  2:13 ` [kvm-devel] " Li, Xin B
  0 siblings, 1 reply; 6+ messages in thread
From: Jeff Dike @ 2007-06-06 19:19 UTC (permalink / raw)
  To: avi; +Cc: kvm-devel, LKML, jun.nakajima, eddie.dong

The long return value of rmode_tss_base is truncated by its declared
return type of int.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
--
 drivers/kvm/vmx.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: kvm/drivers/kvm/vmx.c
===================================================================
--- kvm.orig/drivers/kvm/vmx.c
+++ kvm/drivers/kvm/vmx.c
@@ -884,7 +884,7 @@ static void enter_pmode(struct kvm_vcpu 
 	vmcs_write32(GUEST_CS_AR_BYTES, 0x9b);
 }
 
-static int rmode_tss_base(struct kvm* kvm)
+static unsigned long rmode_tss_base(struct kvm* kvm)
 {
 	gfn_t base_gfn = kvm->memslots[0].base_gfn + kvm->memslots[0].npages - 3;
 	return base_gfn << PAGE_SHIFT;

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [kvm-devel] [PATCH] KVM - Fix rmode_tss_base declaration
  2007-06-06 19:19 [PATCH] KVM - Fix rmode_tss_base declaration Jeff Dike
@ 2007-06-07  2:13 ` Li, Xin B
  2007-06-07  3:11   ` Jeff Dike
  0 siblings, 1 reply; 6+ messages in thread
From: Li, Xin B @ 2007-06-07  2:13 UTC (permalink / raw)
  To: Jeff Dike, avi; +Cc: kvm-devel, LKML

>
>The long return value of rmode_tss_base is truncated by its declared
>return type of int.
>
>Signed-off-by: Jeff Dike <jdike@linux.intel.com>
>--
> drivers/kvm/vmx.c |    2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>Index: kvm/drivers/kvm/vmx.c
>===================================================================
>--- kvm.orig/drivers/kvm/vmx.c
>+++ kvm/drivers/kvm/vmx.c
>@@ -884,7 +884,7 @@ static void enter_pmode(struct kvm_vcpu 
> 	vmcs_write32(GUEST_CS_AR_BYTES, 0x9b);
> }
> 
>-static int rmode_tss_base(struct kvm* kvm)
>+static unsigned long rmode_tss_base(struct kvm* kvm)

Should use gpa_t instead.
-Xin 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [kvm-devel] [PATCH] KVM - Fix rmode_tss_base declaration
  2007-06-07  2:13 ` [kvm-devel] " Li, Xin B
@ 2007-06-07  3:11   ` Jeff Dike
  2007-06-07  5:09     ` Avi Kivity
  0 siblings, 1 reply; 6+ messages in thread
From: Jeff Dike @ 2007-06-07  3:11 UTC (permalink / raw)
  To: Li, Xin B; +Cc: avi, kvm-devel, LKML

On Thu, Jun 07, 2007 at 10:13:42AM +0800, Li, Xin B wrote:
> >-static int rmode_tss_base(struct kvm* kvm)
> >+static unsigned long rmode_tss_base(struct kvm* kvm)
> 
> Should use gpa_t instead.

Right you are, I didn't notice that type.

Will fix.

				Jeff

-- 
Work email - jdike at linux dot intel dot com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [kvm-devel] [PATCH] KVM - Fix rmode_tss_base declaration
  2007-06-07  3:11   ` Jeff Dike
@ 2007-06-07  5:09     ` Avi Kivity
  2007-06-08 19:44       ` Jeff Dike
  0 siblings, 1 reply; 6+ messages in thread
From: Avi Kivity @ 2007-06-07  5:09 UTC (permalink / raw)
  To: Jeff Dike; +Cc: Li, Xin B, kvm-devel, LKML

Jeff Dike wrote:
> On Thu, Jun 07, 2007 at 10:13:42AM +0800, Li, Xin B wrote:
>   
>>> -static int rmode_tss_base(struct kvm* kvm)
>>> +static unsigned long rmode_tss_base(struct kvm* kvm)
>>>       
>> Should use gpa_t instead.
>>     
>
> Right you are, I didn't notice that type.
>
>   

Some extra logic is needed on i386 with >= 4GB.  Current code will
wraparound since gfn_t is 32-bits long, but casting it to 64-bits is not
the answer since the processor will truncate it back to 32 bits (the
return value is eventually used as a long in enter_rmode()).


-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [kvm-devel] [PATCH] KVM - Fix rmode_tss_base declaration
  2007-06-07  5:09     ` Avi Kivity
@ 2007-06-08 19:44       ` Jeff Dike
  2007-06-10  7:36         ` Avi Kivity
  0 siblings, 1 reply; 6+ messages in thread
From: Jeff Dike @ 2007-06-08 19:44 UTC (permalink / raw)
  To: Avi Kivity; +Cc: Li, Xin B, kvm-devel, LKML

On Thu, Jun 07, 2007 at 08:09:48AM +0300, Avi Kivity wrote:
> Some extra logic is needed on i386 with >= 4GB.  Current code will
> wraparound since gfn_t is 32-bits long, but casting it to 64-bits is not
> the answer since the processor will truncate it back to 32 bits (the
> return value is eventually used as a long in enter_rmode()).

Is it necessary to initialize TR in enter_rmode?  I can't see anything
that says it has any meaning in real mode.

And if not, would not the guest be responsible for finding room for the
TSS?

				Jeff

-- 
Work email - jdike at linux dot intel dot com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [kvm-devel] [PATCH] KVM - Fix rmode_tss_base declaration
  2007-06-08 19:44       ` Jeff Dike
@ 2007-06-10  7:36         ` Avi Kivity
  0 siblings, 0 replies; 6+ messages in thread
From: Avi Kivity @ 2007-06-10  7:36 UTC (permalink / raw)
  To: Jeff Dike; +Cc: Li, Xin B, kvm-devel, LKML

Jeff Dike wrote:
> On Thu, Jun 07, 2007 at 08:09:48AM +0300, Avi Kivity wrote:
>   
>> Some extra logic is needed on i386 with >= 4GB.  Current code will
>> wraparound since gfn_t is 32-bits long, but casting it to 64-bits is not
>> the answer since the processor will truncate it back to 32 bits (the
>> return value is eventually used as a long in enter_rmode()).
>>     
>
> Is it necessary to initialize TR in enter_rmode?  I can't see anything
> that says it has any meaning in real mode.
>
>   

VT doesn't support real mode.  kvm uses virtual-8086 mode to virtualize 
real mode.  Virtual 8086 mode does require a task state segment.

-- 
error compiling committee.c: too many arguments to function


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-06-10  7:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-06-06 19:19 [PATCH] KVM - Fix rmode_tss_base declaration Jeff Dike
2007-06-07  2:13 ` [kvm-devel] " Li, Xin B
2007-06-07  3:11   ` Jeff Dike
2007-06-07  5:09     ` Avi Kivity
2007-06-08 19:44       ` Jeff Dike
2007-06-10  7:36         ` Avi Kivity

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).