From mboxrd@z Thu Jan 1 00:00:00 1970 From: Norbert Manthey Subject: [PATCH SpectreV1+L1TF v6 3/9] x86/hvm: block speculative out-of-bound accesses Date: Fri, 8 Feb 2019 14:44:43 +0100 Message-ID: <1549633489-12724-4-git-send-email-nmanthey@amazon.de> References: <1c2b8322-1b66-ccc6-9ba9-e86eafb0227a@amazon.de> <1549633489-12724-1-git-send-email-nmanthey@amazon.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gs6Ul-0006JV-Ur for xen-devel@lists.xenproject.org; Fri, 08 Feb 2019 13:47:07 +0000 In-Reply-To: <1549633489-12724-1-git-send-email-nmanthey@amazon.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Tim Deegan , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Dario Faggioli , Martin Pohlack , Pawel Wieczorkiewicz , Julien Grall , David Woodhouse , Jan Beulich , Martin Mazein , Julian Stecklina , Bjoern Doebel , Norbert Manthey List-Id: xen-devel@lists.xenproject.org VGhlcmUgYXJlIG11bHRpcGxlIGFycmF5cyBpbiB0aGUgSFZNIGludGVyZmFjZSB0aGF0IGFyZSBh Y2Nlc3NlZAp3aXRoIGluZGljZXMgdGhhdCBhcmUgcHJvdmlkZWQgYnkgdGhlIGd1ZXN0LiBUbyBh dm9pZCBzcGVjdWxhdGl2ZQpvdXQtb2YtYm91bmQgYWNjZXNzZXMsIHdlIHVzZSB0aGUgYXJyYXlf aW5kZXhfbm9zcGVjIG1hY3JvLgoKV2hlbiBibG9ja2luZyBzcGVjdWxhdGl2ZSBvdXQtb2YtYm91 bmQgYWNjZXNzZXMsIHdlIGNhbiBjbGFzc2lmeSBhcnJheXMKaW50byBkeW5hbWljIGFycmF5cyBh bmQgc3RhdGljIGFycmF5cy4gV2hlcmUgdGhlIGZvcm1lciBhcmUgYWxsb2NhdGVkCmR1cmluZyBy dW4gdGltZSwgdGhlIHNpemUgb2YgdGhlIGxhdHRlciBpcyBrbm93biBkdXJpbmcgY29tcGlsZSB0 aW1lLgpPbiBzdGF0aWMgYXJyYXlzLCBjb21waWxlciBtaWdodCBiZSBhYmxlIHRvIGJsb2NrIHNw ZWN1bGF0aXZlIGFjY2Vzc2VzCmluIHRoZSBmdXR1cmUuCgpUaGlzIGNvbW1pdCBpcyBwYXJ0IG9m IHRoZSBTcGVjdHJlVjErTDFURiBtaXRpZ2F0aW9uIHBhdGNoIHNlcmllcy4KClJlcG9ydGVkLWJ5 OiBQYXdlbCBXaWVjem9ya2lld2ljeiA8d2lwYXdlbEBhbWF6b24uZGU+ClNpZ25lZC1vZmYtYnk6 IE5vcmJlcnQgTWFudGhleSA8bm1hbnRoZXlAYW1hem9uLmRlPgoKLS0tCgpOb3RlczoKICB2Njog TWF0Y2ggY29tbWl0IG1lc3NhZ2Ugd2l0aCBjb2RlCiAgICAgIEZpeCBub3NwZWMgYm91bmQgaW4g aHZtX21zcl9yZWFkX2ludGVyY2VwdAogeGVuL2FyY2gveDg2L2h2bS9odm0uYyB8IDI2ICsrKysr KysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVu L2FyY2gveDg2L2h2bS9odm0uYwotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDx4ZW4vbW9u aXRvci5oPgogI2luY2x1ZGUgPHhlbi93YXJuaW5nLmg+CiAjaW5jbHVkZSA8eGVuL3ZwY2kuaD4K KyNpbmNsdWRlIDx4ZW4vbm9zcGVjLmg+CiAjaW5jbHVkZSA8YXNtL3NoYWRvdy5oPgogI2luY2x1 ZGUgPGFzbS9oYXAuaD4KICNpbmNsdWRlIDxhc20vY3VycmVudC5oPgpAQCAtMjA5Miw3ICsyMDkz LDcgQEAgaW50IGh2bV9tb3ZfZnJvbV9jcih1bnNpZ25lZCBpbnQgY3IsIHVuc2lnbmVkIGludCBn cHIpCiAgICAgY2FzZSAyOgogICAgIGNhc2UgMzoKICAgICBjYXNlIDQ6Ci0gICAgICAgIHZhbCA9 IGN1cnItPmFyY2guaHZtLmd1ZXN0X2NyW2NyXTsKKyAgICAgICAgdmFsID0gYXJyYXlfYWNjZXNz X25vc3BlYyhjdXJyLT5hcmNoLmh2bS5ndWVzdF9jciwgY3IpOwogICAgICAgICBicmVhazsKICAg ICBjYXNlIDg6CiAgICAgICAgIHZhbCA9ICh2bGFwaWNfZ2V0X3JlZyh2Y3B1X3ZsYXBpYyhjdXJy KSwgQVBJQ19UQVNLUFJJKSAmIDB4ZjApID4+IDQ7CkBAIC0zNDM4LDEzICszNDM5LDE1IEBAIGlu dCBodm1fbXNyX3JlYWRfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICptc3Jf Y29udGVudCkKICAgICAgICAgaWYgKCAhZC0+YXJjaC5jcHVpZC0+YmFzaWMubXRyciApCiAgICAg ICAgICAgICBnb3RvIGdwX2ZhdWx0OwogICAgICAgICBpbmRleCA9IG1zciAtIE1TUl9NVFJSZml4 MTZLXzgwMDAwOwotICAgICAgICAqbXNyX2NvbnRlbnQgPSBmaXhlZF9yYW5nZV9iYXNlW2luZGV4 ICsgMV07CisgICAgICAgICptc3JfY29udGVudCA9IGZpeGVkX3JhbmdlX2Jhc2VbYXJyYXlfaW5k ZXhfbm9zcGVjKGluZGV4ICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QVJSQVlfU0laRSh2LT5hcmNoLmh2bS5tdHJyLmZpeGVkX3JhbmdlcykpXTsKICAgICAgICAgYnJl YWs7CiAgICAgY2FzZSBNU1JfTVRSUmZpeDRLX0MwMDAwLi4uTVNSX01UUlJmaXg0S19GODAwMDoK ICAgICAgICAgaWYgKCAhZC0+YXJjaC5jcHVpZC0+YmFzaWMubXRyciApCiAgICAgICAgICAgICBn b3RvIGdwX2ZhdWx0OwogICAgICAgICBpbmRleCA9IG1zciAtIE1TUl9NVFJSZml4NEtfQzAwMDA7 Ci0gICAgICAgICptc3JfY29udGVudCA9IGZpeGVkX3JhbmdlX2Jhc2VbaW5kZXggKyAzXTsKKyAg ICAgICAgKm1zcl9jb250ZW50ID0gZml4ZWRfcmFuZ2VfYmFzZVthcnJheV9pbmRleF9ub3NwZWMo aW5kZXggKyAzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUlJBWV9TSVpF KHYtPmFyY2guaHZtLm10cnIuZml4ZWRfcmFuZ2VzKSldOwogICAgICAgICBicmVhazsKICAgICBj YXNlIE1TUl9JQTMyX01UUlJfUEhZU0JBU0UoMCkuLi5NU1JfSUEzMl9NVFJSX1BIWVNNQVNLKE1U UlJfVkNOVF9NQVggLSAxKToKICAgICAgICAgaWYgKCAhZC0+YXJjaC5jcHVpZC0+YmFzaWMubXRy ciApCkBAIC0zNDUzLDcgKzM0NTYsOCBAQCBpbnQgaHZtX21zcl9yZWFkX2ludGVyY2VwdCh1bnNp Z25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgICAgIGlmICggKGluZGV4 IC8gMikgPj0KICAgICAgICAgICAgICBNQVNLX0VYVFIodi0+YXJjaC5odm0ubXRyci5tdHJyX2Nh cCwgTVRSUmNhcF9WQ05UKSApCiAgICAgICAgICAgICBnb3RvIGdwX2ZhdWx0OwotICAgICAgICAq bXNyX2NvbnRlbnQgPSB2YXJfcmFuZ2VfYmFzZVtpbmRleF07CisgICAgICAgICptc3JfY29udGVu dCA9IHZhcl9yYW5nZV9iYXNlW2FycmF5X2luZGV4X25vc3BlYyhpbmRleCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIDIqTUFTS19FWFRSKHYtPmFyY2guaHZtLm10cnIubXRycl9jYXAsIE1UUlJj YXBfVkNOVCkpXTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE1TUl9JQTMyX1hTUzoKQEAg LTQwMTYsNyArNDAyMCw3IEBAIHN0YXRpYyBpbnQgaHZtb3Bfc2V0X2V2dGNobl91cGNhbGxfdmVj dG9yKAogICAgIGlmICggb3AudmVjdG9yIDwgMHgxMCApCiAgICAgICAgIHJldHVybiAtRUlOVkFM OwogCi0gICAgaWYgKCBvcC52Y3B1ID49IGQtPm1heF92Y3B1cyB8fCAodiA9IGQtPnZjcHVbb3Au dmNwdV0pID09IE5VTEwgKQorICAgIGlmICggKHYgPSBkb21haW5fdmNwdShkLCBvcC52Y3B1KSkg PT0gTlVMTCApCiAgICAgICAgIHJldHVybiAtRU5PRU5UOwogCiAgICAgcHJpbnRrKFhFTkxPR19H X0lORk8gIiVwdjogdXBjYWxsIHZlY3RvciAlMDJ4XG4iLCB2LCBvcC52ZWN0b3IpOwpAQCAtNDEw NCw2ICs0MTA4LDEyIEBAIHN0YXRpYyBpbnQgaHZtb3Bfc2V0X3BhcmFtKAogICAgIGlmICggYS5p bmRleCA+PSBIVk1fTlJfUEFSQU1TICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKKyAgICAv KgorICAgICAqIE1ha2Ugc3VyZSB0aGUgZ3Vlc3QgY29udHJvbGxlZCB2YWx1ZSBhLmluZGV4IGlz IGJvdW5kZWQgZXZlbiBkdXJpbmcKKyAgICAgKiBzcGVjdWxhdGl2ZSBleGVjdXRpb24uCisgICAg ICovCisgICAgYS5pbmRleCA9IGFycmF5X2luZGV4X25vc3BlYyhhLmluZGV4LCBIVk1fTlJfUEFS QU1TKTsKKwogICAgIGQgPSByY3VfbG9ja19kb21haW5fYnlfYW55X2lkKGEuZG9taWQpOwogICAg IGlmICggZCA9PSBOVUxMICkKICAgICAgICAgcmV0dXJuIC1FU1JDSDsKQEAgLTQzNzAsNiArNDM4 MCwxMiBAQCBzdGF0aWMgaW50IGh2bW9wX2dldF9wYXJhbSgKICAgICBpZiAoIGEuaW5kZXggPj0g SFZNX05SX1BBUkFNUyApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAgLyoKKyAgICAg KiBNYWtlIHN1cmUgdGhlIGd1ZXN0IGNvbnRyb2xsZWQgdmFsdWUgYS5pbmRleCBpcyBib3VuZGVk IGV2ZW4gZHVyaW5nCisgICAgICogc3BlY3VsYXRpdmUgZXhlY3V0aW9uLgorICAgICAqLworICAg IGEuaW5kZXggPSBhcnJheV9pbmRleF9ub3NwZWMoYS5pbmRleCwgSFZNX05SX1BBUkFNUyk7CisK ICAgICBkID0gcmN1X2xvY2tfZG9tYWluX2J5X2FueV9pZChhLmRvbWlkKTsKICAgICBpZiAoIGQg PT0gTlVMTCApCiAgICAgICAgIHJldHVybiAtRVNSQ0g7Ci0tIAoyLjcuNAoKCgoKQW1hem9uIERl dmVsb3BtZW50IENlbnRlciBHZXJtYW55IEdtYkgKS3JhdXNlbnN0ci4gMzgKMTAxMTcgQmVybGlu Ckdlc2NoYWVmdHNmdWVocmVyOiBDaHJpc3RpYW4gU2NobGFlZ2VyLCBSYWxmIEhlcmJyaWNoClVz dC1JRDogREUgMjg5IDIzNyA4NzkKRWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRl bmJ1cmcgSFJCIDE0OTE3MyBCCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnBy b2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94 ZW4tZGV2ZWw=