From mboxrd@z Thu Jan 1 00:00:00 1970 From: Norbert Manthey Subject: [PATCH SpectreV1+L1TF v6 1/9] xen/evtchn: block speculative out-of-bound accesses Date: Fri, 8 Feb 2019 14:44:41 +0100 Message-ID: <1549633489-12724-2-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 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 1gs6UU-0006Fa-Rg for xen-devel@lists.xenproject.org; Fri, 08 Feb 2019 13:46:50 +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 R3Vlc3RzIGNhbiBpc3N1ZSBldmVudCBjaGFubmVsIGludGVyYWN0aW9uIHdpdGggZ3Vlc3Qgc3Bl Y2lmaWVkIGRhdGEuClRvIGF2b2lkIHNwZWN1bGF0aXZlIG91dC1vZi1ib3VuZCBhY2Nlc3Nlcywg d2UgdXNlIHRoZSBub3NwZWMgbWFjcm9zLApvciB0aGUgZG9tYWluX3ZjcHUgZnVuY3Rpb24uCgpU aGlzIGNvbW1pdCBpcyBwYXJ0IG9mIHRoZSBTcGVjdHJlVjErTDFURiBtaXRpZ2F0aW9uIHBhdGNo IHNlcmllcy4KClNpZ25lZC1vZmYtYnk6IE5vcmJlcnQgTWFudGhleSA8bm1hbnRoZXlAYW1hem9u LmRlPgoKLS0tCgpOb3RlczoKICB2NjogZHJvcCB2Y3B1IDwgMCBjaGVjawogICAgICB1c2Ugc3Ry dWN0IHZwY3UgaW4gZXZ0Y2huX2JpbmRfdmNwdQogICAgICBkbyBub3QgY2FsbCBkb21haW5fdmNw dSB0d2ljZSBpbiBldnRjaG5fZmlmb193b3JkX2Zyb21fcG9ydAoKIHhlbi9jb21tb24vZXZlbnRf Y2hhbm5lbC5jIHwgMzQgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogeGVuL2Nv bW1vbi9ldmVudF9maWZvLmMgICAgfCAxMyArKysrKysrKysrLS0tCiB4ZW4vaW5jbHVkZS94ZW4v ZXZlbnQuaCAgICB8ICA1ICsrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyks IDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZXZlbnRfY2hhbm5lbC5j IGIveGVuL2NvbW1vbi9ldmVudF9jaGFubmVsLmMKLS0tIGEveGVuL2NvbW1vbi9ldmVudF9jaGFu bmVsLmMKKysrIGIveGVuL2NvbW1vbi9ldmVudF9jaGFubmVsLmMKQEAgLTM2NSwxMSArMzY1LDE2 IEBAIGludCBldnRjaG5fYmluZF92aXJxKGV2dGNobl9iaW5kX3ZpcnFfdCAqYmluZCwgZXZ0Y2hu X3BvcnRfdCBwb3J0KQogICAgIGlmICggKHZpcnEgPCAwKSB8fCAodmlycSA+PSBBUlJBWV9TSVpF KHYtPnZpcnFfdG9fZXZ0Y2huKSkgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAorICAgLyoK KyAgICAqIE1ha2Ugc3VyZSB0aGUgZ3Vlc3QgY29udHJvbGxlZCB2YWx1ZSB2aXJxIGlzIGJvdW5k ZWQgZXZlbiBkdXJpbmcKKyAgICAqIHNwZWN1bGF0aXZlIGV4ZWN1dGlvbi4KKyAgICAqLworICAg IHZpcnEgPSBhcnJheV9pbmRleF9ub3NwZWModmlycSwgQVJSQVlfU0laRSh2LT52aXJxX3RvX2V2 dGNobikpOworCiAgICAgaWYgKCB2aXJxX2lzX2dsb2JhbCh2aXJxKSAmJiAodmNwdSAhPSAwKSAp CiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0gICAgaWYgKCAodmNwdSA8IDApIHx8ICh2Y3B1 ID49IGQtPm1heF92Y3B1cykgfHwKLSAgICAgICAgICgodiA9IGQtPnZjcHVbdmNwdV0pID09IE5V TEwpICkKKyAgICBpZiAoICh2ID0gZG9tYWluX3ZjcHUoZCwgdmNwdSkpID09IE5VTEwgKQogICAg ICAgICByZXR1cm4gLUVOT0VOVDsKIAogICAgIHNwaW5fbG9jaygmZC0+ZXZlbnRfbG9jayk7CkBA IC00MTgsOCArNDIzLDcgQEAgc3RhdGljIGxvbmcgZXZ0Y2huX2JpbmRfaXBpKGV2dGNobl9iaW5k X2lwaV90ICpiaW5kKQogICAgIGludCAgICAgICAgICAgIHBvcnQsIHZjcHUgPSBiaW5kLT52Y3B1 OwogICAgIGxvbmcgICAgICAgICAgIHJjID0gMDsKIAotICAgIGlmICggKHZjcHUgPCAwKSB8fCAo dmNwdSA+PSBkLT5tYXhfdmNwdXMpIHx8Ci0gICAgICAgICAoZC0+dmNwdVt2Y3B1XSA9PSBOVUxM KSApCisgICAgaWYgKCBkb21haW5fdmNwdShkLCB2Y3B1KSA9PSBOVUxMICkKICAgICAgICAgcmV0 dXJuIC1FTk9FTlQ7CiAKICAgICBzcGluX2xvY2soJmQtPmV2ZW50X2xvY2spOwpAQCAtODEzLDYg KzgxNywxMyBAQCBpbnQgc2V0X2dsb2JhbF92aXJxX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwg dWludDMyX3QgdmlycSkKIAogICAgIGlmICh2aXJxID49IE5SX1ZJUlFTKQogICAgICAgICByZXR1 cm4gLUVJTlZBTDsKKworICAgLyoKKyAgICAqIE1ha2Ugc3VyZSB0aGUgZ3Vlc3QgY29udHJvbGxl ZCB2YWx1ZSB2aXJxIGlzIGJvdW5kZWQgZXZlbiBkdXJpbmcKKyAgICAqIHNwZWN1bGF0aXZlIGV4 ZWN1dGlvbi4KKyAgICAqLworICAgIHZpcnEgPSBhcnJheV9pbmRleF9ub3NwZWModmlycSwgQVJS QVlfU0laRShnbG9iYWxfdmlycV9oYW5kbGVycykpOworCiAgICAgaWYgKCF2aXJxX2lzX2dsb2Jh bCh2aXJxKSkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKQEAgLTkzMCw4ICs5NDEsOSBAQCBs b25nIGV2dGNobl9iaW5kX3ZjcHUodW5zaWduZWQgaW50IHBvcnQsIHVuc2lnbmVkIGludCB2Y3B1 X2lkKQogICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47CiAgICAgc3RydWN0 IGV2dGNobiAqY2huOwogICAgIGxvbmcgICAgICAgICAgIHJjID0gMDsKKyAgICBzdHJ1Y3QgdmNw dSAgICp2OwogCi0gICAgaWYgKCAodmNwdV9pZCA+PSBkLT5tYXhfdmNwdXMpIHx8IChkLT52Y3B1 W3ZjcHVfaWRdID09IE5VTEwpICkKKyAgICBpZiAoICh2ID0gZG9tYWluX3ZjcHUoZCwgdmNwdV9p ZCkpID09IE5VTEwgKQogICAgICAgICByZXR1cm4gLUVOT0VOVDsKIAogICAgIHNwaW5fbG9jaygm ZC0+ZXZlbnRfbG9jayk7CkBAIC05NTUsMjIgKzk2NywyMiBAQCBsb25nIGV2dGNobl9iaW5kX3Zj 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