| Submitter | Leann Ogasawara |
|---|---|
| Date | May 24, 2011, 7:24 p.m. |
| Message ID | <1306265095.1548.60.camel@adamo> |
| Download | mbox | patch |
| Permalink | /patch/97209/ |
| State | New |
| Headers | show |
Pull-request
git://kernel.ubuntu.com/ogasawara/ubuntu-lucid.git lp787675Comments
On 05/24/2011 12:24 PM, Leann Ogasawara wrote: > SRU Justification: > > http://bugs.launchpad.net/bugs/787675 > > I've clearly buggered up a backported patch on Lucid that came in as an > aside for the 2.6.32.26+drm33.11 stable patch set (See bug 681132). The > patch in question is: > > KVM: VMX: Fix host userspace gsbase corruption > > We now use load_gs_index() to load gs safely; unfortunately this also > changes MSR_KERNEL_GS_BASE, which we managed separately. This resulted > in confusion and breakage running 32-bit host userspace on a 64-bit kernel. > > The original thread regarding this patch can be read at: > > https://lists.ubuntu.com/archives/kernel-team/2010-November/013655.html > > The attached patch correctly fixes up the accidental deletion of a line > of code, and correctly removes the intended line. Please apply to Lucid. > I've also built a test kernel and referenced it in the bug. I'm hoping > for testing feedback from Jiang who originally brought the mistake to my > attention. > > Thanks, > Leann > > The following changes since commit 800e98aaa03cf2134fb3b1a7c11f59e93fa97c23: > Thomas Schlichter (1): > UBUNTU: SAUCE: vesafb: enable mtrr WC by default > > are available in the git repository at: > > git://kernel.ubuntu.com/ogasawara/ubuntu-lucid.git lp787675 > > Leann Ogasawara (1): > UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > From 7766255c19171ecd6961ea9b6455d0de11245d19 Mon Sep 17 00:00:00 2001 > From: Leann Ogasawara<leann.ogasawara@canonical.com> > Date: Tue, 24 May 2011 09:40:12 -0700 > Subject: [PATCH] UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > BugLink: http://bugs.launchpad.net/bugs/787675 > > The backport for the following commit was incorrect, eg. it removed a > line which it shouldn't have. > > commit 6cbdc7ba48dff850c233a1ea1abe87a6d0cde2dd > Author: Avi Kivity<avi@redhat.com> > Date: Thu Nov 11 12:37:26 2010 +0200 > > KVM: VMX: Fix host userspace gsbase corruption > > Fix up the backport to be correct. > > Signed-off-by: Leann Ogasawara<leann.ogasawara@canonical.com> > --- > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 77c3287..e3222ab 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -699,7 +699,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) > if (vmx->host_state.gs_ldt_reload_needed) { > kvm_load_ldt(vmx->host_state.ldt_sel); > #ifdef CONFIG_X86_64 > - wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); > + load_gs_index(vmx->host_state.gs_sel); > #else > loadsegment(gs, vmx->host_state.gs_sel); > #endif Acked-by: Brad Figg <brad.figg@canonical.com>
On Tue, 2011-05-24 at 12:24 -0700, Leann Ogasawara wrote: > SRU Justification: > > http://bugs.launchpad.net/bugs/787675 > > I've clearly buggered up a backported patch on Lucid that came in as an > aside for the 2.6.32.26+drm33.11 stable patch set (See bug 681132). The > patch in question is: > > KVM: VMX: Fix host userspace gsbase corruption > > We now use load_gs_index() to load gs safely; unfortunately this also > changes MSR_KERNEL_GS_BASE, which we managed separately. This resulted > in confusion and breakage running 32-bit host userspace on a 64-bit kernel. > > The original thread regarding this patch can be read at: > > https://lists.ubuntu.com/archives/kernel-team/2010-November/013655.html > > The attached patch correctly fixes up the accidental deletion of a line > of code, and correctly removes the intended line. Please apply to Lucid. > I've also built a test kernel and referenced it in the bug. I'm hoping > for testing feedback from Jiang who originally brought the mistake to my > attention. > > Thanks, > Leann > > The following changes since commit 800e98aaa03cf2134fb3b1a7c11f59e93fa97c23: > Thomas Schlichter (1): > UBUNTU: SAUCE: vesafb: enable mtrr WC by default > > are available in the git repository at: > > git://kernel.ubuntu.com/ogasawara/ubuntu-lucid.git lp787675 > > Leann Ogasawara (1): > UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > From 7766255c19171ecd6961ea9b6455d0de11245d19 Mon Sep 17 00:00:00 2001 > From: Leann Ogasawara <leann.ogasawara@canonical.com> > Date: Tue, 24 May 2011 09:40:12 -0700 > Subject: [PATCH] UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > BugLink: http://bugs.launchpad.net/bugs/787675 > > The backport for the following commit was incorrect, eg. it removed a > line which it shouldn't have. > > commit 6cbdc7ba48dff850c233a1ea1abe87a6d0cde2dd > Author: Avi Kivity <avi@redhat.com> > Date: Thu Nov 11 12:37:26 2010 +0200 > > KVM: VMX: Fix host userspace gsbase corruption > > Fix up the backport to be correct. > > Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com> > --- > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 77c3287..e3222ab 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -699,7 +699,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) > if (vmx->host_state.gs_ldt_reload_needed) { > kvm_load_ldt(vmx->host_state.ldt_sel); > #ifdef CONFIG_X86_64 > - wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); > + load_gs_index(vmx->host_state.gs_sel); > #else > loadsegment(gs, vmx->host_state.gs_sel); > #endif > -- > 1.7.0.4 > > > Acked-by: Steve Conklin <sconklin@canonical.com>
On Tue, May 24, 2011 at 12:24:55PM -0700, Leann Ogasawara wrote: > SRU Justification: > > http://bugs.launchpad.net/bugs/787675 > > I've clearly buggered up a backported patch on Lucid that came in as an > aside for the 2.6.32.26+drm33.11 stable patch set (See bug 681132). The > patch in question is: > > KVM: VMX: Fix host userspace gsbase corruption > > We now use load_gs_index() to load gs safely; unfortunately this also > changes MSR_KERNEL_GS_BASE, which we managed separately. This resulted > in confusion and breakage running 32-bit host userspace on a 64-bit kernel. > > The original thread regarding this patch can be read at: > > https://lists.ubuntu.com/archives/kernel-team/2010-November/013655.html > > The attached patch correctly fixes up the accidental deletion of a line > of code, and correctly removes the intended line. Please apply to Lucid. > I've also built a test kernel and referenced it in the bug. I'm hoping > for testing feedback from Jiang who originally brought the mistake to my > attention. > > Thanks, > Leann > > The following changes since commit 800e98aaa03cf2134fb3b1a7c11f59e93fa97c23: > Thomas Schlichter (1): > UBUNTU: SAUCE: vesafb: enable mtrr WC by default > > are available in the git repository at: > > git://kernel.ubuntu.com/ogasawara/ubuntu-lucid.git lp787675 > > Leann Ogasawara (1): > UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > From 7766255c19171ecd6961ea9b6455d0de11245d19 Mon Sep 17 00:00:00 2001 > From: Leann Ogasawara <leann.ogasawara@canonical.com> > Date: Tue, 24 May 2011 09:40:12 -0700 > Subject: [PATCH] UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > BugLink: http://bugs.launchpad.net/bugs/787675 > > The backport for the following commit was incorrect, eg. it removed a > line which it shouldn't have. > > commit 6cbdc7ba48dff850c233a1ea1abe87a6d0cde2dd > Author: Avi Kivity <avi@redhat.com> > Date: Thu Nov 11 12:37:26 2010 +0200 > > KVM: VMX: Fix host userspace gsbase corruption > > Fix up the backport to be correct. > > Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com> Acked-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com> > --- > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 77c3287..e3222ab 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -699,7 +699,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) > if (vmx->host_state.gs_ldt_reload_needed) { > kvm_load_ldt(vmx->host_state.ldt_sel); > #ifdef CONFIG_X86_64 > - wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); > + load_gs_index(vmx->host_state.gs_sel); > #else > loadsegment(gs, vmx->host_state.gs_sel); > #endif > -- > 1.7.0.4 > > > > > -- > kernel-team mailing list > kernel-team@lists.ubuntu.com > https://lists.ubuntu.com/mailman/listinfo/kernel-team >
Applied On Tue, 2011-05-24 at 12:24 -0700, Leann Ogasawara wrote: > SRU Justification: > > http://bugs.launchpad.net/bugs/787675 > > I've clearly buggered up a backported patch on Lucid that came in as an > aside for the 2.6.32.26+drm33.11 stable patch set (See bug 681132). The > patch in question is: > > KVM: VMX: Fix host userspace gsbase corruption > > We now use load_gs_index() to load gs safely; unfortunately this also > changes MSR_KERNEL_GS_BASE, which we managed separately. This resulted > in confusion and breakage running 32-bit host userspace on a 64-bit kernel. > > The original thread regarding this patch can be read at: > > https://lists.ubuntu.com/archives/kernel-team/2010-November/013655.html > > The attached patch correctly fixes up the accidental deletion of a line > of code, and correctly removes the intended line. Please apply to Lucid. > I've also built a test kernel and referenced it in the bug. I'm hoping > for testing feedback from Jiang who originally brought the mistake to my > attention. > > Thanks, > Leann > > The following changes since commit 800e98aaa03cf2134fb3b1a7c11f59e93fa97c23: > Thomas Schlichter (1): > UBUNTU: SAUCE: vesafb: enable mtrr WC by default > > are available in the git repository at: > > git://kernel.ubuntu.com/ogasawara/ubuntu-lucid.git lp787675 > > Leann Ogasawara (1): > UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > From 7766255c19171ecd6961ea9b6455d0de11245d19 Mon Sep 17 00:00:00 2001 > From: Leann Ogasawara <leann.ogasawara@canonical.com> > Date: Tue, 24 May 2011 09:40:12 -0700 > Subject: [PATCH] UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption > > BugLink: http://bugs.launchpad.net/bugs/787675 > > The backport for the following commit was incorrect, eg. it removed a > line which it shouldn't have. > > commit 6cbdc7ba48dff850c233a1ea1abe87a6d0cde2dd > Author: Avi Kivity <avi@redhat.com> > Date: Thu Nov 11 12:37:26 2010 +0200 > > KVM: VMX: Fix host userspace gsbase corruption > > Fix up the backport to be correct. > > Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com> > --- > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 77c3287..e3222ab 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -699,7 +699,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) > if (vmx->host_state.gs_ldt_reload_needed) { > kvm_load_ldt(vmx->host_state.ldt_sel); > #ifdef CONFIG_X86_64 > - wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); > + load_gs_index(vmx->host_state.gs_sel); > #else > loadsegment(gs, vmx->host_state.gs_sel); > #endif > -- > 1.7.0.4 > > > >
With this patch, the 32bit android emulator works quite well. I already update the bugzilla. Leann, really appreciate your quick response! Thanks --jyh >-----Original Message----- >From: Leann Ogasawara [mailto:leann.ogasawara@canonical.com] >Sent: Wednesday, May 25, 2011 3:25 AM >To: kernel-team >Cc: Jiang, Yunhong >Subject: [Lucid][SRU][PATCH] UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host >userspace gsbase corruption > >SRU Justification: > >http://bugs.launchpad.net/bugs/787675 > >I've clearly buggered up a backported patch on Lucid that came in as an >aside for the 2.6.32.26+drm33.11 stable patch set (See bug 681132). The >patch in question is: > > KVM: VMX: Fix host userspace gsbase corruption > > We now use load_gs_index() to load gs safely; unfortunately this also > changes MSR_KERNEL_GS_BASE, which we managed separately. This resulted > in confusion and breakage running 32-bit host userspace on a 64-bit kernel. > >The original thread regarding this patch can be read at: > >https://lists.ubuntu.com/archives/kernel-team/2010-November/013655.html > >The attached patch correctly fixes up the accidental deletion of a line >of code, and correctly removes the intended line. Please apply to Lucid. >I've also built a test kernel and referenced it in the bug. I'm hoping >for testing feedback from Jiang who originally brought the mistake to my >attention. > >Thanks, >Leann > >The following changes since commit 800e98aaa03cf2134fb3b1a7c11f59e93fa97c23: > Thomas Schlichter (1): > UBUNTU: SAUCE: vesafb: enable mtrr WC by default > >are available in the git repository at: > > git://kernel.ubuntu.com/ogasawara/ubuntu-lucid.git lp787675 > >Leann Ogasawara (1): > UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase >corruption > > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > >From 7766255c19171ecd6961ea9b6455d0de11245d19 Mon Sep 17 00:00:00 2001 >From: Leann Ogasawara <leann.ogasawara@canonical.com> >Date: Tue, 24 May 2011 09:40:12 -0700 >Subject: [PATCH] UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace >gsbase corruption > >BugLink: http://bugs.launchpad.net/bugs/787675 > >The backport for the following commit was incorrect, eg. it removed a >line which it shouldn't have. > > commit 6cbdc7ba48dff850c233a1ea1abe87a6d0cde2dd > Author: Avi Kivity <avi@redhat.com> > Date: Thu Nov 11 12:37:26 2010 +0200 > > KVM: VMX: Fix host userspace gsbase corruption > >Fix up the backport to be correct. > >Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com> >--- > arch/x86/kvm/vmx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > >diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c >index 77c3287..e3222ab 100644 >--- a/arch/x86/kvm/vmx.c >+++ b/arch/x86/kvm/vmx.c >@@ -699,7 +699,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) > if (vmx->host_state.gs_ldt_reload_needed) { > kvm_load_ldt(vmx->host_state.ldt_sel); > #ifdef CONFIG_X86_64 >- wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); >+ load_gs_index(vmx->host_state.gs_sel); > #else > loadsegment(gs, vmx->host_state.gs_sel); > #endif >-- >1.7.0.4 > >
Patch
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 77c3287..e3222ab 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -699,7 +699,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx) if (vmx->host_state.gs_ldt_reload_needed) { kvm_load_ldt(vmx->host_state.ldt_sel); #ifdef CONFIG_X86_64 - wrmsrl(MSR_KERNEL_GS_BASE, current->thread.gs); + load_gs_index(vmx->host_state.gs_sel); #else loadsegment(gs, vmx->host_state.gs_sel); #endif
SRU Justification: http://bugs.launchpad.net/bugs/787675 I've clearly buggered up a backported patch on Lucid that came in as an aside for the 2.6.32.26+drm33.11 stable patch set (See bug 681132). The patch in question is: KVM: VMX: Fix host userspace gsbase corruption We now use load_gs_index() to load gs safely; unfortunately this also changes MSR_KERNEL_GS_BASE, which we managed separately. This resulted in confusion and breakage running 32-bit host userspace on a 64-bit kernel. The original thread regarding this patch can be read at: https://lists.ubuntu.com/archives/kernel-team/2010-November/013655.html The attached patch correctly fixes up the accidental deletion of a line of code, and correctly removes the intended line. Please apply to Lucid. I've also built a test kernel and referenced it in the bug. I'm hoping for testing feedback from Jiang who originally brought the mistake to my attention. Thanks, Leann The following changes since commit 800e98aaa03cf2134fb3b1a7c11f59e93fa97c23: Thomas Schlichter (1): UBUNTU: SAUCE: vesafb: enable mtrr WC by default are available in the git repository at: git://kernel.ubuntu.com/ogasawara/ubuntu-lucid.git lp787675 Leann Ogasawara (1): UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption arch/x86/kvm/vmx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) From 7766255c19171ecd6961ea9b6455d0de11245d19 Mon Sep 17 00:00:00 2001 From: Leann Ogasawara <leann.ogasawara@canonical.com> Date: Tue, 24 May 2011 09:40:12 -0700 Subject: [PATCH] UBUNTU: SAUCE: (no-up) Fix up KVM: VMX: Fix host userspace gsbase corruption BugLink: http://bugs.launchpad.net/bugs/787675 The backport for the following commit was incorrect, eg. it removed a line which it shouldn't have. commit 6cbdc7ba48dff850c233a1ea1abe87a6d0cde2dd Author: Avi Kivity <avi@redhat.com> Date: Thu Nov 11 12:37:26 2010 +0200 KVM: VMX: Fix host userspace gsbase corruption Fix up the backport to be correct. Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com> --- arch/x86/kvm/vmx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)