From mboxrd@z Thu Jan 1 00:00:00 1970 From: Norbert Manthey Subject: [PATCH SpectreV1+L1TF v7 1/9] xen/evtchn: block speculative out-of-bound accesses Date: Thu, 21 Feb 2019 09:16:35 +0100 Message-ID: <1550737003-25779-2-git-send-email-nmanthey@amazon.de> References: <1550737003-25779-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 1gwjYv-0000mA-Qf for xen-devel@lists.xenproject.org; Thu, 21 Feb 2019 08:18:33 +0000 In-Reply-To: <1550737003-25779-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 R3Vlc3RzIGNhbiBpc3N1ZSBldmVudCBjaGFubmVsIGludGVyYWN0aW9uIHdpdGggZ3Vlc3Qgc3Bl Y2lmaWVkIGRhdGEuClRvIGF2b2lkIHNwZWN1bGF0aXZlIG91dC1vZi1ib3VuZCBhY2Nlc3Nlcywg d2UgdXNlIHRoZSBub3NwZWMgbWFjcm9zLApvciB0aGUgZG9tYWluX3ZjcHUgZnVuY3Rpb24uIFdo ZXJlIGFwcHJvcHJpYXRlLCB3ZSB1c2UgdGhlIHZjcHVfaWQgb2YKdGhlIHNlbGVjZXRlZCB2Y3B1 IGluc3RlYWQgb2YgdGhlIHBhcmFtZXRlciB0aGF0IGNhbiBiZSBpbmZsdWVuY2VkIGJ5CnRoZSBn dWVzdCwgc28gdGhhdCBvbmx5IG9uZSBhY2Nlc3MgbmVlZHMgdG8gYmUgcHJvdGVjdGVkLgoKVGhp cyBpcyBwYXJ0IG9mIHRoZSBzcGVjdWxhdGl2ZSBoYXJkZW5pbmcgZWZmb3J0LgoKU2lnbmVkLW9m Zi1ieTogTm9yYmVydCBNYW50aGV5IDxubWFudGhleUBhbWF6b24uZGU+CgotLS0KTm90ZXM6CiAg djc6IG1lbnRpb24gc3BlY3VsYXRpdmUgaGFyZGVuaW5nIGluIGNvbW1pdCBtZXNzYWdlCiAgICAg IGV4cGxhaW4gcHJlZmVycmVkIHVzZSBvZiBpbnRlcm5hbCBkYXRhIGluIGNvbW1pdCBtZXNzYWdl CiAgICAgIGRyb3AgdXBkYXRlIGluIHNldF9nbG9iYWxfdmlycV9oYW5kbGVyCgogeGVuL2NvbW1v bi9ldmVudF9jaGFubmVsLmMgfCAyOSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogeGVu L2NvbW1vbi9ldmVudF9maWZvLmMgICAgfCAxMyArKysrKysrKysrLS0tCiB4ZW4vaW5jbHVkZS94 ZW4vZXZlbnQuaCAgICB8ICA1ICsrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMo KyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZXZlbnRfY2hhbm5l bC5jIGIveGVuL2NvbW1vbi9ldmVudF9jaGFubmVsLmMKLS0tIGEveGVuL2NvbW1vbi9ldmVudF9j aGFubmVsLmMKKysrIGIveGVuL2NvbW1vbi9ldmVudF9jaGFubmVsLmMKQEAgLTM2NSwxMSArMzY1 LDE2IEBAIGludCBldnRjaG5fYmluZF92aXJxKGV2dGNobl9iaW5kX3ZpcnFfdCAqYmluZCwgZXZ0 Y2huX3BvcnRfdCBwb3J0KQogICAgIGlmICggKHZpcnEgPCAwKSB8fCAodmlycSA+PSBBUlJBWV9T SVpFKHYtPnZpcnFfdG9fZXZ0Y2huKSkgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAorICAg LyoKKyAgICAqIE1ha2Ugc3VyZSB0aGUgZ3Vlc3QgY29udHJvbGxlZCB2YWx1ZSB2aXJxIGlzIGJv dW5kZWQgZXZlbiBkdXJpbmcKKyAgICAqIHNwZWN1bGF0aXZlIGV4ZWN1dGlvbi4KKyAgICAqLwor ICAgIHZpcnEgPSBhcnJheV9pbmRleF9ub3NwZWModmlycSwgQVJSQVlfU0laRSh2LT52aXJxX3Rv X2V2dGNobikpOworCiAgICAgaWYgKCB2aXJxX2lzX2dsb2JhbCh2aXJxKSAmJiAodmNwdSAhPSAw KSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgaWYgKCAodmNwdSA8IDApIHx8ICh2 Y3B1ID49IGQtPm1heF92Y3B1cykgfHwKLSAgICAgICAgICgodiA9IGQtPnZjcHVbdmNwdV0pID09 IE5VTEwpICkKKyAgICBpZiAoICh2ID0gZG9tYWluX3ZjcHUoZCwgdmNwdSkpID09IE5VTEwgKQog ICAgICAgICByZXR1cm4gLUVOT0VOVDsKIAogICAgIHNwaW5fbG9jaygmZC0+ZXZlbnRfbG9jayk7 CkBAIC00MTgsOCArNDIzLDcgQEAgc3RhdGljIGxvbmcgZXZ0Y2huX2JpbmRfaXBpKGV2dGNobl9i aW5kX2lwaV90ICpiaW5kKQogICAgIGludCAgICAgICAgICAgIHBvcnQsIHZjcHUgPSBiaW5kLT52 Y3B1OwogICAgIGxvbmcgICAgICAgICAgIHJjID0gMDsKIAotICAgIGlmICggKHZjcHUgPCAwKSB8 fCAodmNwdSA+PSBkLT5tYXhfdmNwdXMpIHx8Ci0gICAgICAgICAoZC0+dmNwdVt2Y3B1XSA9PSBO VUxMKSApCisgICAgaWYgKCBkb21haW5fdmNwdShkLCB2Y3B1KSA9PSBOVUxMICkKICAgICAgICAg cmV0dXJuIC1FTk9FTlQ7CiAKICAgICBzcGluX2xvY2soJmQtPmV2ZW50X2xvY2spOwpAQCAtODEz LDYgKzgxNyw3IEBAIGludCBzZXRfZ2xvYmFsX3ZpcnFfaGFuZGxlcihzdHJ1Y3QgZG9tYWluICpk LCB1aW50MzJfdCB2aXJxKQogCiAgICAgaWYgKHZpcnEgPj0gTlJfVklSUVMpCiAgICAgICAgIHJl dHVybiAtRUlOVkFMOworCiAgICAgaWYgKCF2aXJxX2lzX2dsb2JhbCh2aXJxKSkKICAgICAgICAg cmV0dXJuIC1FSU5WQUw7CiAKQEAgLTkzMCw4ICs5MzUsMTAgQEAgbG9uZyBldnRjaG5fYmluZF92 Y3B1KHVuc2lnbmVkIGludCBwb3J0LCB1bnNpZ25lZCBpbnQgdmNwdV9pZCkKICAgICBzdHJ1Y3Qg ZG9tYWluICpkID0gY3VycmVudC0+ZG9tYWluOwogICAgIHN0cnVjdCBldnRjaG4gKmNobjsKICAg ICBsb25nICAgICAgICAgICByYyA9IDA7CisgICAgc3RydWN0IHZjcHUgICAqdjsKIAotICAgIGlm ICggKHZjcHVfaWQgPj0gZC0+bWF4X3ZjcHVzKSB8fCAoZC0+dmNwdVt2Y3B1X2lkXSA9PSBOVUxM KSApCisgICAgLyogVXNlIHRoZSB2Y3B1IGluZm8gdG8gcHJldmVudCBzcGVjdWxhdGl2ZSBvdXQt b2YtYm91bmQgYWNjZXNzZXMgKi8KKyAgICBpZiAoICh2ID0gZG9tYWluX3ZjcHUoZCwgdmNwdV9p ZCkpID09IE5VTEwgKQogICAgICAgICByZXR1cm4gLUVOT0VOVDsKIAogICAgIHNwaW5fbG9jaygm ZC0+ZXZlbnRfbG9jayk7CkBAIC05NTUsMjIgKzk2MiwyMiBAQCBsb25nIGV2dGNobl9iaW5kX3Zj cHUodW5zaWduZWQgaW50IHBvcnQsIHVuc2lnbmVkIGludCB2Y3B1X2lkKQogICAgIHsKICAgICBj YXNlIEVDU19WSVJROgogICAgICAgICBpZiAoIHZpcnFfaXNfZ2xvYmFsKGNobi0+dS52aXJxKSAp Ci0gICAgICAgICAgICBjaG4tPm5vdGlmeV92Y3B1X2lkID0gdmNwdV9pZDsKKyAgICAgICAgICAg IGNobi0+bm90aWZ5X3ZjcHVfaWQgPSB2LT52Y3B1X2lkOwogICAgICAgICBlbHNlCiAgICAgICAg ICAgICByYyA9IC1FSU5WQUw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRUNTX1VOQk9VTkQ6 CiAgICAgY2FzZSBFQ1NfSU5URVJET01BSU46Ci0gICAgICAgIGNobi0+bm90aWZ5X3ZjcHVfaWQg PSB2Y3B1X2lkOworICAgICAgICBjaG4tPm5vdGlmeV92Y3B1X2lkID0gdi0+dmNwdV9pZDsKICAg ICAgICAgYnJlYWs7CiAgICAgY2FzZSBFQ1NfUElSUToKLSAgICAgICAgaWYgKCBjaG4tPm5vdGlm eV92Y3B1X2lkID09IHZjcHVfaWQgKQorICAgICAgICBpZiAoIGNobi0+bm90aWZ5X3ZjcHVfaWQg PT0gdi0+dmNwdV9pZCApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgdW5saW5rX3BpcnFf cG9ydChjaG4sIGQtPnZjcHVbY2huLT5ub3RpZnlfdmNwdV9pZF0pOwotICAgICAgICBjaG4tPm5v dGlmeV92Y3B1X2lkID0gdmNwdV9pZDsKKyAgICAgICAgY2huLT5ub3RpZnlfdmNwdV9pZCA9IHYt PnZjcHVfaWQ7CiAgICAgICAgIHBpcnFfc2V0X2FmZmluaXR5KGQsIGNobi0+dS5waXJxLmlycSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1bWFza19vZihkLT52Y3B1W3ZjcHVfaWRdLT5w cm9jZXNzb3IpKTsKLSAgICAgICAgbGlua19waXJxX3BvcnQocG9ydCwgY2huLCBkLT52Y3B1W3Zj cHVfaWRdKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1bWFza19vZih2LT5wcm9jZXNz b3IpKTsKKyAgICAgICAgbGlua19waXJxX3BvcnQocG9ydCwgY2huLCB2KTsKICAgICAgICAgYnJl YWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9ldmVudF9maWZvLmMgYi94ZW4vY29tbW9uL2V2ZW50X2ZpZm8uYwotLS0gYS94ZW4v Y29tbW9uL2V2ZW50X2ZpZm8uYworKysgYi94ZW4vY29tbW9uL2V2ZW50X2ZpZm8uYwpAQCAtMzMs NyArMzMsOCBAQCBzdGF0aWMgaW5saW5lIGV2ZW50X3dvcmRfdCAqZXZ0Y2huX2ZpZm9fd29yZF9m cm9tX3BvcnQoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKICAgICAgKi8KICAgICBzbXBfcm1iKCk7 CiAKLSAgICBwID0gcG9ydCAvIEVWVENITl9GSUZPX0VWRU5UX1dPUkRTX1BFUl9QQUdFOworICAg IHAgPSBhcnJheV9pbmRleF9ub3NwZWMocG9ydCAvIEVWVENITl9GSUZPX0VWRU5UX1dPUkRTX1BF Ul9QQUdFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+ZXZ0Y2huX2ZpZm8tPm51bV9l dnRjaG5zKTsKICAgICB3ID0gcG9ydCAlIEVWVENITl9GSUZPX0VWRU5UX1dPUkRTX1BFUl9QQUdF OwogCiAgICAgcmV0dXJuIGQtPmV2dGNobl9maWZvLT5ldmVudF9hcnJheVtwXSArIHc7CkBAIC01 MTYsMTQgKzUxNywyMCBAQCBpbnQgZXZ0Y2huX2ZpZm9faW5pdF9jb250cm9sKHN0cnVjdCBldnRj aG5faW5pdF9jb250cm9sICppbml0X2NvbnRyb2wpCiAgICAgZ2ZuICAgICA9IGluaXRfY29udHJv bC0+Y29udHJvbF9nZm47CiAgICAgb2Zmc2V0ICA9IGluaXRfY29udHJvbC0+b2Zmc2V0OwogCi0g ICAgaWYgKCB2Y3B1X2lkID49IGQtPm1heF92Y3B1cyB8fCAhZC0+dmNwdVt2Y3B1X2lkXSApCisg ICAgaWYgKCAodiA9IGRvbWFpbl92Y3B1KGQsIHZjcHVfaWQpKSA9PSBOVUxMICkKICAgICAgICAg cmV0dXJuIC1FTk9FTlQ7Ci0gICAgdiA9IGQtPnZjcHVbdmNwdV9pZF07CiAKICAgICAvKiBNdXN0 IG5vdCBjcm9zcyBwYWdlIGJvdW5kYXJ5LiAqLwogICAgIGlmICggb2Zmc2V0ID4gKFBBR0VfU0la RSAtIHNpemVvZihldnRjaG5fZmlmb19jb250cm9sX2Jsb2NrX3QpKSApCiAgICAgICAgIHJldHVy biAtRUlOVkFMOwogCisgICAgLyoKKyAgICAgKiBNYWtlIHN1cmUgdGhlIGd1ZXN0IGNvbnRyb2xs ZWQgdmFsdWUgb2Zmc2V0IGlzIGJvdW5kZWQgZXZlbiBkdXJpbmcKKyAgICAgKiBzcGVjdWxhdGl2 ZSBleGVjdXRpb24uCisgICAgICovCisgICAgb2Zmc2V0ID0gYXJyYXlfaW5kZXhfbm9zcGVjKG9m ZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBR0VfU0laRSAtIHNpemVvZihldnRj aG5fZmlmb19jb250cm9sX2Jsb2NrX3QpICsgMSk7CisKICAgICAvKiBNdXN0IGJlIDgtYnl0ZXMg YWxpZ25lZC4gKi8KICAgICBpZiAoIG9mZnNldCAmICg4IC0gMSkgKQogICAgICAgICByZXR1cm4g LUVJTlZBTDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9ldmVudC5oIGIveGVuL2luY2x1 ZGUveGVuL2V2ZW50LmgKLS0tIGEveGVuL2luY2x1ZGUveGVuL2V2ZW50LmgKKysrIGIveGVuL2lu Y2x1ZGUveGVuL2V2ZW50LmgKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDx4ZW4vc21wLmg+ CiAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KICNpbmNsdWRlIDx4ZW4vYml0b3BzLmg+CisjaW5j bHVkZSA8eGVuL25vc3BlYy5oPgogI2luY2x1ZGUgPGFzbS9ldmVudC5oPgogCiAvKgpAQCAtMTAz LDcgKzEwNCw3IEBAIHZvaWQgYXJjaF9ldnRjaG5faW5qZWN0KHN0cnVjdCB2Y3B1ICp2KTsKICAq IFRoZSBmaXJzdCBidWNrZXQgaXMgZGlyZWN0bHkgYWNjZXNzZWQgdmlhIGQtPmV2dGNobi4KICAq LwogI2RlZmluZSBncm91cF9mcm9tX3BvcnQoZCwgcCkgXAotICAgICgoZCktPmV2dGNobl9ncm91 cFsocCkgLyBFVlRDSE5TX1BFUl9HUk9VUF0pCisgICAgYXJyYXlfYWNjZXNzX25vc3BlYygoZCkt PmV2dGNobl9ncm91cCwgKHApIC8gRVZUQ0hOU19QRVJfR1JPVVApCiAjZGVmaW5lIGJ1Y2tldF9m cm9tX3BvcnQoZCwgcCkgXAogICAgICgoZ3JvdXBfZnJvbV9wb3J0KGQsIHApKVsoKHApICUgRVZU Q0hOU19QRVJfR1JPVVApIC8gRVZUQ0hOU19QRVJfQlVDS0VUXSkKIApAQCAtMTE3LDcgKzExOCw3 IEBAIHN0YXRpYyBpbmxpbmUgYm9vbF90IHBvcnRfaXNfdmFsaWQoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgaW50IHApCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBldnRjaG4gKmV2dGNobl9mcm9t X3BvcnQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHApCiB7CiAgICAgaWYgKCBwIDwg RVZUQ0hOU19QRVJfQlVDS0VUICkKLSAgICAgICAgcmV0dXJuICZkLT5ldnRjaG5bcF07CisgICAg ICAgIHJldHVybiAmZC0+ZXZ0Y2huW2FycmF5X2luZGV4X25vc3BlYyhwLCBFVlRDSE5TX1BFUl9C VUNLRVQpXTsKICAgICByZXR1cm4gYnVja2V0X2Zyb21fcG9ydChkLCBwKSArIChwICUgRVZUQ0hO U19QRVJfQlVDS0VUKTsKIH0KIAotLSAKMi43LjQKCgoKCkFtYXpvbiBEZXZlbG9wbWVudCBDZW50 ZXIgR2VybWFueSBHbWJICktyYXVzZW5zdHIuIDM4CjEwMTE3IEJlcmxpbgpHZXNjaGFlZnRzZnVl aHJlcjogQ2hyaXN0aWFuIFNjaGxhZWdlciwgUmFsZiBIZXJicmljaApVc3QtSUQ6IERFIDI4OSAy MzcgODc5CkVpbmdldHJhZ2VuIGFtIEFtdHNnZXJpY2h0IENoYXJsb3R0ZW5idXJnIEhSQiAxNDkx NzMgQgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs