kvm: how big is type?
arch/x86/kvm/x86.c:3484:25: warning: cast truncates bits from constant value (100 becomes 0) arch/x86/kvm/x86.c:3510:24: warning: cast truncates bits from constant value (100 becomes 0)
The problem:
cseg_desc.type &= ~(1 << 8); //clear the B flag nseg_desc.type |= (1 << 8);
type is a 4-bit bitfield on x86....please look into this.
Harvey
Quoted 10 lines · Harvey Harrison
arch/x86/kvm/x86.c:3484:25: warning: cast truncates bits from constant value (100 becomes 0)arch/x86/kvm/x86.c:3510:24: warning: cast truncates bits from constant value (100 becomes 0)The problem:
cseg_desc.type &= ~(1 << 8); //clear the B flag nseg_desc.type |= (1 << 8);type is a 4-bit bitfield on x86....please look into this.
I think it ought to be (1 << 1), not (1 << 8), as it refers to the "busy" bit of the task type. Izik?
Signature · 8 lines
error compiling committee.c: too many arguments to function ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
Quoted 14 lines · Avi Kivity
Quoted 5 lines · Harvey Harrison
arch/x86/kvm/x86.c:3484:25: warning: cast truncates bits from constant value (100 becomes 0)arch/x86/kvm/x86.c:3510:24: warning: cast truncates bits from constant value (100 becomes 0)Quoted 7 lines
The problem:
cseg_desc.type &= ~(1 << 8); //clear the B flag nseg_desc.type |= (1 << 8);type is a 4-bit bitfield on x86....please look into this.
Quoted 5 lines
I think it ought to be (1 << 1), not (1 << 8), as it refers to the "busy" bit of the task type. Izik?
From
cf6e76c69a38a983df0c84a3dcc2336042eb3436Mon Sep 17 00:00:00 2001
From: Izik Eidus <[email protected]>
Date: Mon, 28 Apr 2008 18:16:08 +0300
Subject: [PATCH] KVM: x86: task switch: fix wrong bit setting for the busy flag.
the busy bit is in offset of 1 inside type and not in 8.
--- arch/x86/kvm/x86.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
arch/x86/kvm/x86.c +2 -2
@@ -3481,7 +3481,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason) }if (reason ==TASK_SWITCH_IRET || reason ==TASK_SWITCH_JMP ) { - cseg_desc.type &= ~(1 <<8 );//clear the B flag + cseg_desc.type &= ~(1 <<1 );//clear the B flag save_guest_segment_descriptor (vcpu, tr_seg.selector, &cseg_desc); }
@@ -3507,7 +3507,7 @@ int kvm_task_switch(struct kvm_vcpu *vcpu, u16 tss_selector, int reason) }if (reason !=TASK_SWITCH_IRET ) { - nseg_desc.type |= (1 <<8 ); + nseg_desc.type |= (1 <<1 );save_guest_segment_descriptor (vcpu, tss_selector, &nseg_desc); }
Signature · 5 lines
1.5.3.6 -- woof.
Avi Kivity
AppliedQuoted 22 lines · Izik Eidus
Quoted 11 lines · Avi Kivity
Quoted 9 lines · Harvey Harrison
arch/x86/kvm/x86.c:3484:25: warning: cast truncates bits from constant value (100 becomes 0)arch/x86/kvm/x86.c:3510:24: warning: cast truncates bits from constant value (100 becomes 0)The problem:
cseg_desc.type &= ~(1 << 8); //clear the B flag nseg_desc.type |= (1 << 8);Quoted 9 lines
Quoted 4 lines
type is a 4-bit bitfield on x86....please look into this.
I think it ought to be (1 << 1), not (1 << 8), as it refers to the "busy" bit of the task type. Izik?
Quoted 6 lines
From
cf6e76c69a38a983df0c84a3dcc2336042eb3436Mon Sep 17 00:00:00 2001
From: Izik Eidus <[email protected]>
Date: Mon, 28 Apr 2008 18:16:08 +0300
Subject: [PATCH] KVM: x86: task switch: fix wrong bit setting for the busy flag.
the busy bit is in offset of 1 inside type and not in 8.
Applied, thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function