From mboxrd@z Thu Jan 1 00:00:00 1970 From: Norbert Manthey Subject: [PATCH SpectreV1+L1TF v5 3/9] x86/hvm: block speculative out-of-bound accesses Date: Tue, 29 Jan 2019 15:43:11 +0100 Message-ID: <1548772997-32742-4-git-send-email-nmanthey@amazon.de> References: <1548772997-32742-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 all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1goUcx-0001kA-On for xen-devel@lists.xenproject.org; Tue, 29 Jan 2019 14:44:39 +0000 In-Reply-To: <1548772997-32742-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 , 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 ZWN1bGF0aXZlIGFjY2Vzc2VzCmluIHRoZSBmdXR1cmUuCgpXZSBpbnRyb2R1Y2UgYW5vdGhlciBt YWNybyB0aGF0IHVzZXMgdGhlIEFSUkFZX1NJWkUgbWFjcm8gdG8gYmxvY2sKc3BlY3VsYXRpdmUg YWNjZXNzZXMuIEZvciBhcnJheXMgdGhhdCBhcmUgc3RhdGljYWxseSBhY2Nlc3NlZCwgdGhpcyBt YWNybwpjYW4gYmUgdXNlZCBpbnN0ZWFkIG9mIHRoZSB1c3VhbCBtYWNyby4gVXNpbmcgdGhpcyBt YWNybyByZXN1bHRzIGluIG1vcmUKcmVhZGFibGUgY29kZSwgYW5kIGFsbG93cyB0byBtb2RpZnkg dGhlIHdheSB0aGlzIGNhc2UgaXMgaGFuZGxlZCBpbiBhCnNpbmdsZSBwbGFjZS4KClRoaXMgY29t bWl0IGlzIHBhcnQgb2YgdGhlIFNwZWN0cmVWMStMMVRGIG1pdGlnYXRpb24gcGF0Y2ggc2VyaWVz LgoKUmVwb3J0ZWQtYnk6IFBhd2VsIFdpZWN6b3JraWV3aWN6IDx3aXBhd2VsQGFtYXpvbi5kZT4K U2lnbmVkLW9mZi1ieTogTm9yYmVydCBNYW50aGV5IDxubWFudGhleUBhbWF6b24uZGU+CgotLS0K IHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgfCAyNiArKysrKysrKysrKysrKysrKysrKystLS0tLQog MSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKLS0t IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBA IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8eGVuL21vbml0b3IuaD4KICNpbmNsdWRlIDx4ZW4v d2FybmluZy5oPgogI2luY2x1ZGUgPHhlbi92cGNpLmg+CisjaW5jbHVkZSA8eGVuL25vc3BlYy5o PgogI2luY2x1ZGUgPGFzbS9zaGFkb3cuaD4KICNpbmNsdWRlIDxhc20vaGFwLmg+CiAjaW5jbHVk ZSA8YXNtL2N1cnJlbnQuaD4KQEAgLTIwOTIsNyArMjA5Myw3IEBAIGludCBodm1fbW92X2Zyb21f Y3IodW5zaWduZWQgaW50IGNyLCB1bnNpZ25lZCBpbnQgZ3ByKQogICAgIGNhc2UgMjoKICAgICBj YXNlIDM6CiAgICAgY2FzZSA0OgotICAgICAgICB2YWwgPSBjdXJyLT5hcmNoLmh2bS5ndWVzdF9j cltjcl07CisgICAgICAgIHZhbCA9IGFycmF5X2FjY2Vzc19ub3NwZWMoY3Vyci0+YXJjaC5odm0u Z3Vlc3RfY3IsIGNyKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA4OgogICAgICAgICB2YWwg PSAodmxhcGljX2dldF9yZWcodmNwdV92bGFwaWMoY3VyciksIEFQSUNfVEFTS1BSSSkgJiAweGYw KSA+PiA0OwpAQCAtMzQzOCwxMyArMzQzOSwxNSBAQCBpbnQgaHZtX21zcl9yZWFkX2ludGVyY2Vw dCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpCiAgICAgICAgIGlmICgg IWQtPmFyY2guY3B1aWQtPmJhc2ljLm10cnIgKQogICAgICAgICAgICAgZ290byBncF9mYXVsdDsK ICAgICAgICAgaW5kZXggPSBtc3IgLSBNU1JfTVRSUmZpeDE2S184MDAwMDsKLSAgICAgICAgKm1z cl9jb250ZW50ID0gZml4ZWRfcmFuZ2VfYmFzZVtpbmRleCArIDFdOworICAgICAgICAqbXNyX2Nv bnRlbnQgPSBmaXhlZF9yYW5nZV9iYXNlW2FycmF5X2luZGV4X25vc3BlYyhpbmRleCArIDEsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUodi0+YXJjaC5odm0u bXRyci5maXhlZF9yYW5nZXMpKV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTVNSX01UUlJm aXg0S19DMDAwMC4uLk1TUl9NVFJSZml4NEtfRjgwMDA6CiAgICAgICAgIGlmICggIWQtPmFyY2gu Y3B1aWQtPmJhc2ljLm10cnIgKQogICAgICAgICAgICAgZ290byBncF9mYXVsdDsKICAgICAgICAg aW5kZXggPSBtc3IgLSBNU1JfTVRSUmZpeDRLX0MwMDAwOwotICAgICAgICAqbXNyX2NvbnRlbnQg PSBmaXhlZF9yYW5nZV9iYXNlW2luZGV4ICsgM107CisgICAgICAgICptc3JfY29udGVudCA9IGZp eGVkX3JhbmdlX2Jhc2VbYXJyYXlfaW5kZXhfbm9zcGVjKGluZGV4ICsgMywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQVJSQVlfU0laRSh2LT5hcmNoLmh2bS5tdHJyLmZpeGVk X3JhbmdlcykpXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBNU1JfSUEzMl9NVFJSX1BIWVNC QVNFKDApLi4uTVNSX0lBMzJfTVRSUl9QSFlTTUFTSyhNVFJSX1ZDTlRfTUFYIC0gMSk6CiAgICAg ICAgIGlmICggIWQtPmFyY2guY3B1aWQtPmJhc2ljLm10cnIgKQpAQCAtMzQ1Myw3ICszNDU2LDgg QEAgaW50IGh2bV9tc3JfcmVhZF9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3Qg Km1zcl9jb250ZW50KQogICAgICAgICBpZiAoIChpbmRleCAvIDIpID49CiAgICAgICAgICAgICAg TUFTS19FWFRSKHYtPmFyY2guaHZtLm10cnIubXRycl9jYXAsIE1UUlJjYXBfVkNOVCkgKQogICAg ICAgICAgICAgZ290byBncF9mYXVsdDsKLSAgICAgICAgKm1zcl9jb250ZW50ID0gdmFyX3Jhbmdl X2Jhc2VbaW5kZXhdOworICAgICAgICAqbXNyX2NvbnRlbnQgPSB2YXJfcmFuZ2VfYmFzZVthcnJh eV9pbmRleF9ub3NwZWMoaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE1BU0tfRVhU Uih2LT5hcmNoLmh2bS5tdHJyLm10cnJfY2FwLCBNVFJSY2FwX1ZDTlQpKV07CiAgICAgICAgIGJy ZWFrOwogCiAgICAgY2FzZSBNU1JfSUEzMl9YU1M6CkBAIC00MDE2LDcgKzQwMjAsNyBAQCBzdGF0 aWMgaW50IGh2bW9wX3NldF9ldnRjaG5fdXBjYWxsX3ZlY3RvcigKICAgICBpZiAoIG9wLnZlY3Rv ciA8IDB4MTAgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIGlmICggb3AudmNwdSA+ PSBkLT5tYXhfdmNwdXMgfHwgKHYgPSBkLT52Y3B1W29wLnZjcHVdKSA9PSBOVUxMICkKKyAgICBp ZiAoICh2ID0gZG9tYWluX3ZjcHUoZCwgb3AudmNwdSkpID09IE5VTEwgKQogICAgICAgICByZXR1 cm4gLUVOT0VOVDsKIAogICAgIHByaW50ayhYRU5MT0dfR19JTkZPICIlcHY6IHVwY2FsbCB2ZWN0 b3IgJTAyeFxuIiwgdiwgb3AudmVjdG9yKTsKQEAgLTQxMDQsNiArNDEwOCwxMiBAQCBzdGF0aWMg aW50IGh2bW9wX3NldF9wYXJhbSgKICAgICBpZiAoIGEuaW5kZXggPj0gSFZNX05SX1BBUkFNUyAp CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAgLyoKKyAgICAgKiBNYWtlIHN1cmUgdGhl IGd1ZXN0IGNvbnRyb2xsZWQgdmFsdWUgYS5pbmRleCBpcyBib3VuZGVkIGV2ZW4gZHVyaW5nCisg ICAgICogc3BlY3VsYXRpdmUgZXhlY3V0aW9uLgorICAgICAqLworICAgIGEuaW5kZXggPSBhcnJh eV9pbmRleF9ub3NwZWMoYS5pbmRleCwgSFZNX05SX1BBUkFNUyk7CisKICAgICBkID0gcmN1X2xv Y2tfZG9tYWluX2J5X2FueV9pZChhLmRvbWlkKTsKICAgICBpZiAoIGQgPT0gTlVMTCApCiAgICAg ICAgIHJldHVybiAtRVNSQ0g7CkBAIC00MzcwLDYgKzQzODAsMTIgQEAgc3RhdGljIGludCBodm1v cF9nZXRfcGFyYW0oCiAgICAgaWYgKCBhLmluZGV4ID49IEhWTV9OUl9QQVJBTVMgKQogICAgICAg ICByZXR1cm4gLUVJTlZBTDsKIAorICAgIC8qCisgICAgICogTWFrZSBzdXJlIHRoZSBndWVzdCBj b250cm9sbGVkIHZhbHVlIGEuaW5kZXggaXMgYm91bmRlZCBldmVuIGR1cmluZworICAgICAqIHNw ZWN1bGF0aXZlIGV4ZWN1dGlvbi4KKyAgICAgKi8KKyAgICBhLmluZGV4ID0gYXJyYXlfaW5kZXhf bm9zcGVjKGEuaW5kZXgsIEhWTV9OUl9QQVJBTVMpOworCiAgICAgZCA9IHJjdV9sb2NrX2RvbWFp bl9ieV9hbnlfaWQoYS5kb21pZCk7CiAgICAgaWYgKCBkID09IE5VTEwgKQogICAgICAgICByZXR1 cm4gLUVTUkNIOwotLSAKMi43LjQKCgoKCkFtYXpvbiBEZXZlbG9wbWVudCBDZW50ZXIgR2VybWFu eSBHbWJICktyYXVzZW5zdHIuIDM4CjEwMTE3IEJlcmxpbgpHZXNjaGFlZnRzZnVlaHJlcjogQ2hy aXN0aWFuIFNjaGxhZWdlciwgUmFsZiBIZXJicmljaApVc3QtSUQ6IERFIDI4OSAyMzcgODc5CkVp bmdldHJhZ2VuIGFtIEFtdHNnZXJpY2h0IENoYXJsb3R0ZW5idXJnIEhSQiAxNDkxNzMgQgoKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs