From mboxrd@z Thu Jan 1 00:00:00 1970 From: Norbert Manthey Subject: [PATCH SpectreV1+L1TF v4 08/11] xen/evtchn: block speculative out-of-bound accesses Date: Wed, 23 Jan 2019 12:57:32 +0100 Message-ID: <1548244655-32180-8-git-send-email-nmanthey@amazon.de> References: <1548244285-30813-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 1gmHAS-0002tq-Ah for xen-devel@lists.xenproject.org; Wed, 23 Jan 2019 11:58:04 +0000 In-Reply-To: <1548244285-30813-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: 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 R3Vlc3RzIGNhbiBpc3N1ZSBldmVudCBjaGFubmVsIGludGVyYWN0aW9uIHdpdGggZ3Vlc3Qgc3Bl Y2lmaWVkIGRhdGEuClRvIGF2b2lkIHNwZWN1bGF0aXZlIG91dC1vZi1ib3VuZCBhY2Nlc3Nlcywg d2UgdXNlIHRoZSBub3NwZWMgbWFjcm9zLgoKVGhpcyBjb21taXQgaXMgcGFydCBvZiB0aGUgU3Bl Y3RyZVYxK0wxVEYgbWl0aWdhdGlvbiBwYXRjaCBzZXJpZXMuCgpTaWduZWQtb2ZmLWJ5OiBOb3Ji ZXJ0IE1hbnRoZXkgPG5tYW50aGV5QGFtYXpvbi5kZT4KCi0tLQogeGVuL2NvbW1vbi9ldmVudF9j aGFubmVsLmMgfCAyNSArKysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vY29tbW9uL2V2ZW50 X2ZpZm8uYyAgICB8IDE2ICsrKysrKysrKysrKystLS0KIHhlbi9pbmNsdWRlL3hlbi9ldmVudC5o ICAgIHwgIDUgKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ldmVudF9jaGFubmVsLmMgYi94ZW4v Y29tbW9uL2V2ZW50X2NoYW5uZWwuYwotLS0gYS94ZW4vY29tbW9uL2V2ZW50X2NoYW5uZWwuYwor KysgYi94ZW4vY29tbW9uL2V2ZW50X2NoYW5uZWwuYwpAQCAtMzY4LDggKzM2OCwxNCBAQCBpbnQg ZXZ0Y2huX2JpbmRfdmlycShldnRjaG5fYmluZF92aXJxX3QgKmJpbmQsIGV2dGNobl9wb3J0X3Qg cG9ydCkKICAgICBpZiAoIHZpcnFfaXNfZ2xvYmFsKHZpcnEpICYmICh2Y3B1ICE9IDApICkKICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKKyAgIC8qCisgICAgKiBNYWtlIHN1cmUgdGhlIGd1ZXN0 IGNvbnRyb2xsZWQgdmFsdWUgdmlycSBpcyBib3VuZGVkIGV2ZW4gZHVyaW5nCisgICAgKiBzcGVj dWxhdGl2ZSBleGVjdXRpb24uCisgICAgKi8KKyAgICB2aXJxID0gYXJyYXlfaW5kZXhfbm9zcGVj KHZpcnEsIEFSUkFZX1NJWkUodi0+dmlycV90b19ldnRjaG4pKTsKKwogICAgIGlmICggKHZjcHUg PCAwKSB8fCAodmNwdSA+PSBkLT5tYXhfdmNwdXMpIHx8Ci0gICAgICAgICAoKHYgPSBkLT52Y3B1 W3ZjcHVdKSA9PSBOVUxMKSApCisgICAgICAgICAoKHYgPSBkLT52Y3B1W2FycmF5X2luZGV4X25v c3BlYyh2Y3B1LCBkLT5tYXhfdmNwdXMpXSkgPT0gTlVMTCkgKQogICAgICAgICByZXR1cm4gLUVO T0VOVDsKIAogICAgIHNwaW5fbG9jaygmZC0+ZXZlbnRfbG9jayk7CkBAIC00MTksNyArNDI1LDcg QEAgc3RhdGljIGxvbmcgZXZ0Y2huX2JpbmRfaXBpKGV2dGNobl9iaW5kX2lwaV90ICpiaW5kKQog ICAgIGxvbmcgICAgICAgICAgIHJjID0gMDsKIAogICAgIGlmICggKHZjcHUgPCAwKSB8fCAodmNw dSA+PSBkLT5tYXhfdmNwdXMpIHx8Ci0gICAgICAgICAoZC0+dmNwdVt2Y3B1XSA9PSBOVUxMKSAp CisgICAgICAgICAoZC0+dmNwdVthcnJheV9pbmRleF9ub3NwZWModmNwdSwgZC0+bWF4X3ZjcHVz KV0gPT0gTlVMTCkgKQogICAgICAgICByZXR1cm4gLUVOT0VOVDsKIAogICAgIHNwaW5fbG9jaygm ZC0+ZXZlbnRfbG9jayk7CkBAIC04MTYsNiArODIyLDEyIEBAIGludCBzZXRfZ2xvYmFsX3ZpcnFf aGFuZGxlcihzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCB2aXJxKQogICAgIGlmICghdmlycV9p c19nbG9iYWwodmlycSkpCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAvKgorICAgICog TWFrZSBzdXJlIHRoZSBndWVzdCBjb250cm9sbGVkIHZhbHVlIHZpcnEgaXMgYm91bmRlZCBldmVu IGR1cmluZworICAgICogc3BlY3VsYXRpdmUgZXhlY3V0aW9uLgorICAgICovCisgICAgdmlycSA9 IGFycmF5X2luZGV4X25vc3BlYyh2aXJxLCBBUlJBWV9TSVpFKGdsb2JhbF92aXJxX2hhbmRsZXJz KSk7CisKICAgICBpZiAoZ2xvYmFsX3ZpcnFfaGFuZGxlcnNbdmlycV0gPT0gZCkKICAgICAgICAg cmV0dXJuIDA7CiAKQEAgLTkzMSw3ICs5NDMsOCBAQCBsb25nIGV2dGNobl9iaW5kX3ZjcHUodW5z aWduZWQgaW50IHBvcnQsIHVuc2lnbmVkIGludCB2Y3B1X2lkKQogICAgIHN0cnVjdCBldnRjaG4g KmNobjsKICAgICBsb25nICAgICAgICAgICByYyA9IDA7CiAKLSAgICBpZiAoICh2Y3B1X2lkID49 IGQtPm1heF92Y3B1cykgfHwgKGQtPnZjcHVbdmNwdV9pZF0gPT0gTlVMTCkgKQorICAgIGlmICgg KHZjcHVfaWQgPj0gZC0+bWF4X3ZjcHVzKSB8fAorICAgICAgICAgKGQtPnZjcHVbYXJyYXlfaW5k ZXhfbm9zcGVjKHZjcHVfaWQsIGQtPm1heF92Y3B1cyldID09IE5VTEwpICkKICAgICAgICAgcmV0 dXJuIC1FTk9FTlQ7CiAKICAgICBzcGluX2xvY2soJmQtPmV2ZW50X2xvY2spOwpAQCAtOTY5LDgg Kzk4MiwxMCBAQCBsb25nIGV2dGNobl9iaW5kX3ZjcHUodW5zaWduZWQgaW50IHBvcnQsIHVuc2ln bmVkIGludCB2Y3B1X2lkKQogICAgICAgICB1bmxpbmtfcGlycV9wb3J0KGNobiwgZC0+dmNwdVtj aG4tPm5vdGlmeV92Y3B1X2lkXSk7CiAgICAgICAgIGNobi0+bm90aWZ5X3ZjcHVfaWQgPSB2Y3B1 X2lkOwogICAgICAgICBwaXJxX3NldF9hZmZpbml0eShkLCBjaG4tPnUucGlycS5pcnEsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfb2YoZC0+dmNwdVt2Y3B1X2lkXS0+cHJvY2Vz c29yKSk7Ci0gICAgICAgIGxpbmtfcGlycV9wb3J0KHBvcnQsIGNobiwgZC0+dmNwdVt2Y3B1X2lk XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfb2YoZC0+dmNwdVthcnJheV9p bmRleF9ub3NwZWModmNwdV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5tYXhfdmNwdXMpXS0+cHJvY2Vzc29yKSk7 CisgICAgICAgIGxpbmtfcGlycV9wb3J0KHBvcnQsIGNobiwgZC0+dmNwdVthcnJheV9pbmRleF9u b3NwZWModmNwdV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkLT5tYXhfdmNwdXMpXSk7CiAgICAgICAgIGJyZWFrOwogICAg IGRlZmF1bHQ6CiAgICAgICAgIHJjID0gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v ZXZlbnRfZmlmby5jIGIveGVuL2NvbW1vbi9ldmVudF9maWZvLmMKLS0tIGEveGVuL2NvbW1vbi9l dmVudF9maWZvLmMKKysrIGIveGVuL2NvbW1vbi9ldmVudF9maWZvLmMKQEAgLTMzLDcgKzMzLDgg QEAgc3RhdGljIGlubGluZSBldmVudF93b3JkX3QgKmV2dGNobl9maWZvX3dvcmRfZnJvbV9wb3J0 KGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCiAgICAgICovCiAgICAgc21wX3JtYigpOwogCi0gICAg cCA9IHBvcnQgLyBFVlRDSE5fRklGT19FVkVOVF9XT1JEU19QRVJfUEFHRTsKKyAgICBwID0gYXJy YXlfaW5kZXhfbm9zcGVjKHBvcnQgLyBFVlRDSE5fRklGT19FVkVOVF9XT1JEU19QRVJfUEFHRSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmV2dGNobl9maWZvLT5udW1fZXZ0Y2hucyk7 CiAgICAgdyA9IHBvcnQgJSBFVlRDSE5fRklGT19FVkVOVF9XT1JEU19QRVJfUEFHRTsKIAogICAg IHJldHVybiBkLT5ldnRjaG5fZmlmby0+ZXZlbnRfYXJyYXlbcF0gKyB3OwpAQCAtNTE2LDE0ICs1 MTcsMjMgQEAgaW50IGV2dGNobl9maWZvX2luaXRfY29udHJvbChzdHJ1Y3QgZXZ0Y2huX2luaXRf Y29udHJvbCAqaW5pdF9jb250cm9sKQogICAgIGdmbiAgICAgPSBpbml0X2NvbnRyb2wtPmNvbnRy b2xfZ2ZuOwogICAgIG9mZnNldCAgPSBpbml0X2NvbnRyb2wtPm9mZnNldDsKIAotICAgIGlmICgg dmNwdV9pZCA+PSBkLT5tYXhfdmNwdXMgfHwgIWQtPnZjcHVbdmNwdV9pZF0gKQorICAgIGlmICgg dmNwdV9pZCA+PSBkLT5tYXhfdmNwdXMgfHwKKyAgICAgICAgICFkLT52Y3B1W2FycmF5X2luZGV4 X25vc3BlYyh2Y3B1X2lkLCBkLT5tYXhfdmNwdXMpXSApCiAgICAgICAgIHJldHVybiAtRU5PRU5U OwotICAgIHYgPSBkLT52Y3B1W3ZjcHVfaWRdOworCisgICAgdiA9IGQtPnZjcHVbYXJyYXlfaW5k ZXhfbm9zcGVjKHZjcHVfaWQsIGQtPm1heF92Y3B1cyldOwogCiAgICAgLyogTXVzdCBub3QgY3Jv c3MgcGFnZSBib3VuZGFyeS4gKi8KICAgICBpZiAoIG9mZnNldCA+IChQQUdFX1NJWkUgLSBzaXpl b2YoZXZ0Y2huX2ZpZm9fY29udHJvbF9ibG9ja190KSkgKQogICAgICAgICByZXR1cm4gLUVJTlZB TDsKIAorICAgIC8qCisgICAgICogTWFrZSBzdXJlIHRoZSBndWVzdCBjb250cm9sbGVkIHZhbHVl IG9mZnNldCBpcyBib3VuZGVkIGV2ZW4gZHVyaW5nCisgICAgICogc3BlY3VsYXRpdmUgZXhlY3V0 aW9uLgorICAgICAqLworICAgIG9mZnNldCA9IGFycmF5X2luZGV4X25vc3BlYyhvZmZzZXQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX1NJWkUgLSBzaXplb2YoZXZ0Y2huX2Zp Zm9fY29udHJvbF9ibG9ja190KSk7CisKICAgICAvKiBNdXN0IGJlIDgtYnl0ZXMgYWxpZ25lZC4g Ki8KICAgICBpZiAoIG9mZnNldCAmICg4IC0gMSkgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9ldmVudC5oIGIveGVuL2luY2x1ZGUveGVuL2V2 ZW50LmgKLS0tIGEveGVuL2luY2x1ZGUveGVuL2V2ZW50LmgKKysrIGIveGVuL2luY2x1ZGUveGVu L2V2ZW50LmgKQEAgLTEzLDYgKzEzLDcgQEAKICNpbmNsdWRlIDx4ZW4vc21wLmg+CiAjaW5jbHVk ZSA8eGVuL3NvZnRpcnEuaD4KICNpbmNsdWRlIDx4ZW4vYml0b3BzLmg+CisjaW5jbHVkZSA8eGVu L25vc3BlYy5oPgogI2luY2x1ZGUgPGFzbS9ldmVudC5oPgogCiAvKgpAQCAtOTYsNyArOTcsNyBA QCB2b2lkIGFyY2hfZXZ0Y2huX2luamVjdChzdHJ1Y3QgdmNwdSAqdik7CiAgKiBUaGUgZmlyc3Qg YnVja2V0IGlzIGRpcmVjdGx5IGFjY2Vzc2VkIHZpYSBkLT5ldnRjaG4uCiAgKi8KICNkZWZpbmUg Z3JvdXBfZnJvbV9wb3J0KGQsIHApIFwKLSAgICAoKGQpLT5ldnRjaG5fZ3JvdXBbKHApIC8gRVZU Q0hOU19QRVJfR1JPVVBdKQorICAgIGFycmF5X2FjY2Vzc19ub3NwZWMoKGQpLT5ldnRjaG5fZ3Jv dXAsIChwKSAvIEVWVENITlNfUEVSX0dST1VQKQogI2RlZmluZSBidWNrZXRfZnJvbV9wb3J0KGQs IHApIFwKICAgICAoKGdyb3VwX2Zyb21fcG9ydChkLCBwKSlbKChwKSAlIEVWVENITlNfUEVSX0dS T1VQKSAvIEVWVENITlNfUEVSX0JVQ0tFVF0pCiAKQEAgLTExMCw3ICsxMTEsNyBAQCBzdGF0aWMg aW5saW5lIGJvb2xfdCBwb3J0X2lzX3ZhbGlkKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGlu dCBwKQogc3RhdGljIGlubGluZSBzdHJ1Y3QgZXZ0Y2huICpldnRjaG5fZnJvbV9wb3J0KHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBwKQogewogICAgIGlmICggcCA8IEVWVENITlNfUEVS X0JVQ0tFVCApCi0gICAgICAgIHJldHVybiAmZC0+ZXZ0Y2huW3BdOworICAgICAgICByZXR1cm4g JmQtPmV2dGNoblthcnJheV9pbmRleF9ub3NwZWMocCwgRVZUQ0hOU19QRVJfQlVDS0VUKV07CiAg ICAgcmV0dXJuIGJ1Y2tldF9mcm9tX3BvcnQoZCwgcCkgKyAocCAlIEVWVENITlNfUEVSX0JVQ0tF VCk7CiB9CiAKLS0gCjIuNy40CgoKCgpBbWF6b24gRGV2ZWxvcG1lbnQgQ2VudGVyIEdlcm1hbnkg R21iSApLcmF1c2Vuc3RyLiAzOAoxMDExNyBCZXJsaW4KR2VzY2hhZWZ0c2Z1ZWhyZXI6IENocmlz dGlhbiBTY2hsYWVnZXIsIFJhbGYgSGVyYnJpY2gKVXN0LUlEOiBERSAyODkgMjM3IDg3OQpFaW5n ZXRyYWdlbiBhbSBBbXRzZ2VyaWNodCBDaGFybG90dGVuYnVyZyBIUkIgMTQ5MTczIEIKCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==