From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Stefan Pietsch <stefan.pietsch@lsexperts.de>,
Gleb Natapov <gleb@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: [ 13/15] KVM: VMX: mark unusable segment as nonpresent
Date: Thu, 11 Jul 2013 15:19:43 -0700 [thread overview]
Message-ID: <20130711221257.441818744@linuxfoundation.org> (raw)
In-Reply-To: <20130711221255.925669600@linuxfoundation.org>
3.9-stable review patch. If anyone has any objections, please let me know.
------------------
From: Gleb Natapov <gleb@redhat.com>
commit 03617c188f41eeeb4223c919ee7e66e5a114f2c6 upstream.
Some userspaces do not preserve unusable property. Since usable
segment has to be present according to VMX spec we can use present
property to amend userspace bug by making unusable segment always
nonpresent. vmx_segment_access_rights() already marks nonpresent segment
as unusable.
Reported-by: Stefan Pietsch <stefan.pietsch@lsexperts.de>
Tested-by: Stefan Pietsch <stefan.pietsch@lsexperts.de>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kvm/vmx.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3259,15 +3259,22 @@ static void vmx_get_segment(struct kvm_v
var->limit = vmx_read_guest_seg_limit(vmx, seg);
var->selector = vmx_read_guest_seg_selector(vmx, seg);
ar = vmx_read_guest_seg_ar(vmx, seg);
+ var->unusable = (ar >> 16) & 1;
var->type = ar & 15;
var->s = (ar >> 4) & 1;
var->dpl = (ar >> 5) & 3;
- var->present = (ar >> 7) & 1;
+ /*
+ * Some userspaces do not preserve unusable property. Since usable
+ * segment has to be present according to VMX spec we can use present
+ * property to amend userspace bug by making unusable segment always
+ * nonpresent. vmx_segment_access_rights() already marks nonpresent
+ * segment as unusable.
+ */
+ var->present = !var->unusable;
var->avl = (ar >> 12) & 1;
var->l = (ar >> 13) & 1;
var->db = (ar >> 14) & 1;
var->g = (ar >> 15) & 1;
- var->unusable = (ar >> 16) & 1;
}
static u64 vmx_get_segment_base(struct kvm_vcpu *vcpu, int seg)
next prev parent reply other threads:[~2013-07-11 22:19 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-11 22:19 [ 00/15] 3.9.10-stable review Greg Kroah-Hartman
2013-07-11 22:19 ` [ 01/15] libceph: Fix NULL pointer dereference in auth client code Greg Kroah-Hartman
2013-07-11 22:19 ` [ 02/15] ceph: fix sleeping function called from invalid context Greg Kroah-Hartman
2013-07-11 22:19 ` [ 03/15] drivers/cdrom/cdrom.c: use kzalloc() for failing hardware Greg Kroah-Hartman
2013-07-11 22:19 ` [ 04/15] module: do percpu allocation after uniqueness check. No, really! Greg Kroah-Hartman
2013-07-11 22:19 ` [ 05/15] charger-manager: Ensure event is not used as format string Greg Kroah-Hartman
2013-07-11 22:19 ` [ 06/15] hpfs: better test for errors Greg Kroah-Hartman
2013-07-11 22:19 ` [ 07/15] block: do not pass disk names as format strings Greg Kroah-Hartman
2013-07-11 22:19 ` [ 08/15] crypto: sanitize argument for format string Greg Kroah-Hartman
2013-07-11 22:19 ` [ 09/15] MAINTAINERS: add stable_kernel_rules.txt to stable maintainer information Greg Kroah-Hartman
2013-07-11 22:19 ` [ 10/15] futex: Take hugepages into account when generating futex_key Greg Kroah-Hartman
2013-07-11 22:19 ` [ 11/15] Revert "serial: 8250_pci: add support for another kind of NetMos Technology PCI 9835 Multi-I/O Controller" Greg Kroah-Hartman
2013-07-11 22:19 ` [ 12/15] nfsd4: fix decoding of compounds across page boundaries Greg Kroah-Hartman
2013-07-11 22:19 ` Greg Kroah-Hartman [this message]
2013-07-11 22:19 ` [ 14/15] SCSI: sd: Fix parsing of temporary cache mode prefix Greg Kroah-Hartman
2013-07-11 22:19 ` [ 15/15] Revert "memcg: avoid dangling reference count in creation failure" Greg Kroah-Hartman
2013-07-12 17:23 ` [ 00/15] 3.9.10-stable review Shuah Khan
2013-07-12 22:05 ` Guenter Roeck
2013-07-13 1:32 ` Greg Kroah-Hartman
2013-07-13 4:16 ` Satoru Takeuchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130711221257.441818744@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=gleb@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=stable@vger.kernel.org \
--cc=stefan.pietsch@lsexperts.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).