From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v8 5/9] xen/x86: disable global pages for domains with XPTI active Date: Wed, 18 Apr 2018 10:30:47 +0200 Message-ID: <20180418083051.8334-6-jgross@suse.com> References: <20180418083051.8334-1-jgross@suse.com> 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]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1f8iUX-0003NI-A9 for xen-devel@lists.xenproject.org; Wed, 18 Apr 2018 08:31:01 +0000 In-Reply-To: <20180418083051.8334-1-jgross@suse.com> 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 , andrew.cooper3@citrix.com, tim@xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBmbHVzaGluZyB0aGUgVExCIGZyb20gZ2xvYmFsIHBhZ2VzIHdoZW4gc3dpdGNo aW5nIGFkZHJlc3MKc3BhY2VzIHdpdGggWFBUSSBiZWluZyBhY3RpdmUganVzdCBkaXNhYmxlIGds b2JhbCBwYWdlcyB2aWEgJWNyNApjb21wbGV0ZWx5IHdoZW4gYSBkb21haW4gc3ViamVjdCB0byBY UFRJIGlzIGFjdGl2ZS4gVGhpcyBhdm9pZHMgdGhlCm5lZWQgZm9yIGV4dHJhIFRMQiBmbHVzaGVz IGFzIGxvYWRpbmcgJWNyMyB3aWxsIHJlbW92ZSBhbGwgVExCCmVudHJpZXMuCgpJbiBvcmRlciB0 byBhdm9pZCBzdGF0ZXMgd2l0aCBjcjMvY3I0IGhhdmluZyBpbmNvbnNpc3RlbnQgdmFsdWVzCihl LmcuIGdsb2JhbCBwYWdlcyBiZWluZyBhY3RpdmF0ZWQgd2hpbGUgY3IzIGFscmVhZHkgc3BlY2lm aWVzIGEgWFBUSQphZGRyZXNzIHNwYWNlKSBtb3ZlIGxvYWRpbmcgb2YgdGhlIG5ldyBjcjQgdmFs dWUgdG8gd3JpdGVfcHRiYXNlKCkKKGFjdHVhbGx5IHRvIHN3aXRjaF9jcjNfY3I0KCkgY2FsbGVk IGJ5IHdyaXRlX3B0YmFzZSgpKS4KClRoaXMgcmVxdWlyZXMgdG8gdXNlIHN3aXRjaF9jcjNfY3I0 KCkgaW5zdGVhZCBvZiB3cml0ZV9wdGJhc2UoKSB3aGVuCmJ1aWxkaW5nIGRvbTAgaW4gb3JkZXIg dG8gYXZvaWQgc2V0dGluZyBjcjQgd2l0aCBjcjQuc21hcCBzZXQuCgpTaWduZWQtb2ZmLWJ5OiBK dWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+Ci0tLQpWNzoKLSB1c2Ugc3dpdGNoX2NyM19jcjQoKSBpbiBkb20w X2J1aWxkLmMKClY2OgotIGRvbid0IGNhbGwgcmVhZF9jcjQoKSBtdWx0aXBsZSB0aW1lcyBpbiBz d2l0Y2hfY3IzX2NyNCgpCiAgKEFuZHJldyBDb29wZXIpCgpWNDoKLSBkb24ndCB1c2UgbW11X2Ny NF9mZWF0dXJlcyBmb3Igc2V0dGluZyBuZXcgY3I0IHZhbHVlIChKYW4gQmV1bGljaCkKLSB1c2Ug c2ltcGxlciBzY2hlbWUgZm9yIHNldHRpbmcgWDg2X0NSNF9QR0UgaW4KICBwdl9ndWVzdF9jcjRf dG9fcmVhbF9jcjQoKSAoSmFuIEJldWxpY2gpCgpWMzoKLSBtb3ZlIGNyNCBsb2FkaW5nIGZvciBh bGwgZG9tYWlucyBmcm9tICpfY3R4dF9zd2l0Y2hfdG8oKSB0bwogIHdyaXRlX2NyM19jcjQoKSBj YWxsZWQgYnkgd3JpdGVfcHRiYXNlKCkgKEphbiBCZXVsaWNoKQotIHJlYmFzZQotLS0KIHhlbi9h cmNoL3g4Ni9kb21haW4uYyAgICAgICAgICB8ICA1IC0tLS0tCiB4ZW4vYXJjaC94ODYvZmx1c2h0 bGIuYyAgICAgICAgfCAxNyArKysrKysrKysrKystLS0tLQogeGVuL2FyY2gveDg2L21tLmMgICAg ICAgICAgICAgIHwgMTQgKysrKysrKysrKystLS0KIHhlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxk LmMgICB8ICA2ICsrKy0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TICAgIHwgMTAgLS0t LS0tLS0tLQogeGVuL2NvbW1vbi9lZmkvcnVudGltZS5jICAgICAgIHwgIDQgKystLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9kb21haW4uaCAgIHwgIDMgKystCiB4ZW4vaW5jbHVkZS9hc20teDg2L2Zs dXNodGxiLmggfCAgMiArLQogOCBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAzMCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJj aC94ODYvZG9tYWluLmMKaW5kZXggM2Q5YzE5ZDA1NS4uOWIwMDFhMDNlYyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMTUy MywxNyArMTUyMywxMiBAQCB2b2lkIHBhcmF2aXJ0X2N0eHRfc3dpdGNoX2Zyb20oc3RydWN0IHZj cHUgKnYpCiB2b2lkIHBhcmF2aXJ0X2N0eHRfc3dpdGNoX3RvKHN0cnVjdCB2Y3B1ICp2KQogewog ICAgIHJvb3RfcGdlbnRyeV90ICpyb290X3BndCA9IHRoaXNfY3B1KHJvb3RfcGd0KTsKLSAgICB1 bnNpZ25lZCBsb25nIGNyNDsKIAogICAgIGlmICggcm9vdF9wZ3QgKQogICAgICAgICByb290X3Bn dFtyb290X3RhYmxlX29mZnNldChQRVJET01BSU5fVklSVF9TVEFSVCldID0KICAgICAgICAgICAg IGw0ZV9mcm9tX3BhZ2Uodi0+ZG9tYWluLT5hcmNoLnBlcmRvbWFpbl9sM19wZywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgX19QQUdFX0hZUEVSVklTT1JfUlcpOwogCi0gICAgY3I0ID0gcHZf Z3Vlc3RfY3I0X3RvX3JlYWxfY3I0KHYpOwotICAgIGlmICggdW5saWtlbHkoY3I0ICE9IHJlYWRf Y3I0KCkpICkKLSAgICAgICAgd3JpdGVfY3I0KGNyNCk7Ci0KICAgICBpZiAoIHVubGlrZWx5KHYt PmFyY2guZGVidWdyZWdbN10gJiBEUjdfQUNUSVZFX01BU0spICkKICAgICAgICAgYWN0aXZhdGVf ZGVidWdyZWdzKHYpOwogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZmx1c2h0bGIuYyBiL3hl bi9hcmNoL3g4Ni9mbHVzaHRsYi5jCmluZGV4IDcxN2YzYmQxOWIuLmQ0OGI5MDAxMDAgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9mbHVzaHRsYi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9mbHVzaHRs Yi5jCkBAIC05MCwyMCArOTAsMjcgQEAgc3RhdGljIHZvaWQgZG9fdGxiX2ZsdXNoKHZvaWQpCiAg ICAgcG9zdF9mbHVzaCh0KTsKIH0KIAotdm9pZCBzd2l0Y2hfY3IzKHVuc2lnbmVkIGxvbmcgY3Iz KQordm9pZCBzd2l0Y2hfY3IzX2NyNCh1bnNpZ25lZCBsb25nIGNyMywgdW5zaWduZWQgbG9uZyBj cjQpCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBmbGFncywgY3I0OworICAgIHVuc2lnbmVkIGxvbmcg ZmxhZ3MsIG9sZF9jcjQ7CiAgICAgdTMyIHQ7CiAKICAgICAvKiBUaGlzIG5vbi1yZWVudHJhbnQg ZnVuY3Rpb24gaXMgc29tZXRpbWVzIGNhbGxlZCBpbiBpbnRlcnJ1cHQgY29udGV4dC4gKi8KICAg ICBsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKICAgICB0ID0gcHJlX2ZsdXNoKCk7Ci0gICAgY3I0 ID0gcmVhZF9jcjQoKTsKIAotICAgIHdyaXRlX2NyNChjcjQgJiB+WDg2X0NSNF9QR0UpOworICAg IG9sZF9jcjQgPSByZWFkX2NyNCgpOworICAgIGlmICggb2xkX2NyNCAmIFg4Nl9DUjRfUEdFICkK KyAgICB7CisgICAgICAgIG9sZF9jcjQgPSBjcjQgJiB+WDg2X0NSNF9QR0U7CisgICAgICAgIHdy aXRlX2NyNChvbGRfY3I0KTsKKyAgICB9CisKICAgICB3cml0ZV9jcjMoY3IzKTsKLSAgICB3cml0 ZV9jcjQoY3I0KTsKKworICAgIGlmICggb2xkX2NyNCAhPSBjcjQgKQorICAgICAgICB3cml0ZV9j cjQoY3I0KTsKIAogICAgIHBvc3RfZmx1c2godCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXggOWMzNjYxNDA5OS4uNzNhMzhlODcxNSAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAg LTUwMywyMCArNTAzLDI4IEBAIHZvaWQgbWFrZV9jcjMoc3RydWN0IHZjcHUgKnYsIG1mbl90IG1m bikKIHZvaWQgd3JpdGVfcHRiYXNlKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHN0cnVjdCBjcHVf aW5mbyAqY3B1X2luZm8gPSBnZXRfY3B1X2luZm8oKTsKKyAgICB1bnNpZ25lZCBsb25nIG5ld19j cjQ7CisKKyAgICBuZXdfY3I0ID0gKGlzX3B2X3ZjcHUodikgJiYgIWlzX2lkbGVfdmNwdSh2KSkK KyAgICAgICAgICAgICAgPyBwdl9ndWVzdF9jcjRfdG9fcmVhbF9jcjQodikKKyAgICAgICAgICAg ICAgOiAoKHJlYWRfY3I0KCkgJiB+WDg2X0NSNF9UU0QpIHwgWDg2X0NSNF9QR0UpOwogCiAgICAg aWYgKCBpc19wdl92Y3B1KHYpICYmIHYtPmRvbWFpbi0+YXJjaC5wdl9kb21haW4ueHB0aSApCiAg ICAgewogICAgICAgICBjcHVfaW5mby0+cm9vdF9wZ3RfY2hhbmdlZCA9IHRydWU7CiAgICAgICAg IGNwdV9pbmZvLT5wdl9jcjMgPSBfX3BhKHRoaXNfY3B1KHJvb3RfcGd0KSk7Ci0gICAgICAgIHN3 aXRjaF9jcjModi0+YXJjaC5jcjMpOworICAgICAgICBzd2l0Y2hfY3IzX2NyNCh2LT5hcmNoLmNy MywgbmV3X2NyNCk7CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIC8qIE1ha2Ugc3Vy ZSB0byBjbGVhciB4ZW5fY3IzIGJlZm9yZSBwdl9jcjM7IHN3aXRjaF9jcjMoKSBzZXJpYWxpemVz LiAqLworICAgICAgICAvKiBNYWtlIHN1cmUgdG8gY2xlYXIgeGVuX2NyMyBiZWZvcmUgcHZfY3Iz LiAqLwogICAgICAgICBjcHVfaW5mby0+eGVuX2NyMyA9IDA7Ci0gICAgICAgIHN3aXRjaF9jcjMo di0+YXJjaC5jcjMpOworICAgICAgICAvKiBzd2l0Y2hfY3IzX2NyNCgpIHNlcmlhbGl6ZXMuICov CisgICAgICAgIHN3aXRjaF9jcjNfY3I0KHYtPmFyY2guY3IzLCBuZXdfY3I0KTsKICAgICAgICAg Y3B1X2luZm8tPnB2X2NyMyA9IDA7CiAgICAgfQorCisgICAgQVNTRVJUKGlzX3B2X3ZjcHUodikg fHwgcmVhZF9jcjQoKSA9PSBtbXVfY3I0X2ZlYXR1cmVzKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWls ZC5jCmluZGV4IGQxNDgzOTU5MTkuLjQ0NjVhMDU5YTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9wdi9kb20wX2J1aWxkLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYwpAQCAt NzE3LDcgKzcxNyw3IEBAIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFp biAqZCwKICAgICAgICAgdXBkYXRlX2NyMyh2KTsKIAogICAgIC8qIFdlIHJ1biBvbiBkb20wJ3Mg cGFnZSB0YWJsZXMgZm9yIHRoZSBmaW5hbCBwYXJ0IG9mIHRoZSBidWlsZCBwcm9jZXNzLiAqLwot ICAgIHdyaXRlX3B0YmFzZSh2KTsKKyAgICBzd2l0Y2hfY3IzX2NyNCh2LT5hcmNoLmNyMywgcmVh ZF9jcjQoKSk7CiAgICAgbWFwY2FjaGVfb3ZlcnJpZGVfY3VycmVudCh2KTsKIAogICAgIC8qIENv cHkgdGhlIE9TIGltYWdlIGFuZCBmcmVlIHRlbXBvcmFyeSBidWZmZXIuICovCkBAIC03MzgsNyAr NzM4LDcgQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihzdHJ1Y3QgZG9tYWluICpkLAog ICAgICAgICAgICAgIChwYXJtcy52aXJ0X2h5cGVyY2FsbCA+PSB2X2VuZCkgKQogICAgICAgICB7 CiAgICAgICAgICAgICBtYXBjYWNoZV9vdmVycmlkZV9jdXJyZW50KE5VTEwpOwotICAgICAgICAg ICAgd3JpdGVfcHRiYXNlKGN1cnJlbnQpOworICAgICAgICAgICAgc3dpdGNoX2NyM19jcjQoY3Vy cmVudC0+YXJjaC5jcjMsIHJlYWRfY3I0KCkpOwogICAgICAgICAgICAgcHJpbnRrKCJJbnZhbGlk IEhZUEVSQ0FMTF9QQUdFIGZpZWxkIGluIEVMRiBub3Rlcy5cbiIpOwogICAgICAgICAgICAgcmMg PSAtMTsKICAgICAgICAgICAgIGdvdG8gb3V0OwpAQCAtODcxLDcgKzg3MSw3IEBAIGludCBfX2lu aXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAqZCwKIAogICAgIC8qIFJldHVybiB0 byBpZGxlIGRvbWFpbidzIHBhZ2UgdGFibGVzLiAqLwogICAgIG1hcGNhY2hlX292ZXJyaWRlX2N1 cnJlbnQoTlVMTCk7Ci0gICAgd3JpdGVfcHRiYXNlKGN1cnJlbnQpOworICAgIHN3aXRjaF9jcjNf Y3I0KGN1cnJlbnQtPmFyY2guY3IzLCByZWFkX2NyNCgpKTsKIAogICAgIHVwZGF0ZV9kb21haW5f d2FsbGNsb2NrX3RpbWUoZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50 cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUwppbmRleCBkZDQyMjIzYjIwLi41ZjA3 NThkNjRmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKKysrIGIveGVu L2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCkBAIC0xNTMsMTMgKzE1Myw4IEBAIHJlc3RvcmVfYWxs X2d1ZXN0OgogICAgICAgICAgICAgICAgIFJPT1RfUEFHRVRBQkxFX0xBU1RfWEVOX1NMT1QgLSAx KSAqIDgsICVyZGkKICAgICAgICAgcmVwIG1vdnNxCiAuTHJhZ19jb3B5X2RvbmU6Ci0gICAgICAg IG1vdiAgIFNUQUNLX0NQVUlORk9fRklFTEQoY3I0KSglcmR4KSwgJXJkaQogICAgICAgICBtb3Yg ICAlcjksIFNUQUNLX0NQVUlORk9fRklFTEQoeGVuX2NyMykoJXJkeCkKLSAgICAgICAgbW92ICAg JXJkaSwgJXJzaQotICAgICAgICBhbmQgICAkflg4Nl9DUjRfUEdFLCAlcmRpCi0gICAgICAgIG1v diAgICVyZGksICVjcjQKICAgICAgICAgbW92ICAgJXJheCwgJWNyMwotICAgICAgICBtb3YgICAl cnNpLCAlY3I0CiAuTHJhZ19rZWVwX2NyMzoKIAogICAgICAgICAvKiBSZXN0b3JlIHN0YXNoZWQg U1BFQ19DVFJMIHZhbHVlLiAqLwpAQCAtMjE1LDEyICsyMTAsNyBAQCByZXN0b3JlX2FsbF94ZW46 CiAgICAgICAgICAqIHNvICJnIiB3aWxsIGhhdmUgdG8gZG8uCiAgICAgICAgICAqLwogVU5MSUtF TFlfU1RBUlQoZywgZXhpdF9jcjMpCi0gICAgICAgIG1vdiAgICVjcjQsICVyZGkKLSAgICAgICAg bW92ICAgJXJkaSwgJXJzaQotICAgICAgICBhbmQgICAkflg4Nl9DUjRfUEdFLCAlcmRpCi0gICAg ICAgIG1vdiAgICVyZGksICVjcjQKICAgICAgICAgbW92ICAgJXJheCwgJWNyMwotICAgICAgICBt b3YgICAlcnNpLCAlY3I0CiBVTkxJS0VMWV9FTkQoZXhpdF9jcjMpCiAKICAgICAgICAgLyogV0FS TklORyEgYHJldGAsIGBjYWxsICpgLCBgam1wICpgIG5vdCBzYWZlIGJleW9uZCB0aGlzIHBvaW50 LiAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9lZmkvcnVudGltZS5jIGIveGVuL2NvbW1vbi9l ZmkvcnVudGltZS5jCmluZGV4IDRlNWRkZmVmNGYuLjA3MGE3MGQ3ODQgMTAwNjQ0Ci0tLSBhL3hl bi9jb21tb24vZWZpL3J1bnRpbWUuYworKysgYi94ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMKQEAg LTExMSw3ICsxMTEsNyBAQCBzdHJ1Y3QgZWZpX3JzX3N0YXRlIGVmaV9yc19lbnRlcih2b2lkKQog ICAgICAgICBsZ2R0KCZnZHRfZGVzYyk7CiAgICAgfQogCi0gICAgc3dpdGNoX2NyMyh2aXJ0X3Rv X21hZGRyKGVmaV9sNF9wZ3RhYmxlKSk7CisgICAgc3dpdGNoX2NyM19jcjQodmlydF90b19tYWRk cihlZmlfbDRfcGd0YWJsZSksIHJlYWRfY3I0KCkpOwogCiAgICAgcmV0dXJuIHN0YXRlOwogfQpA QCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgZWZpX3JzX2xlYXZlKHN0cnVjdCBlZmlfcnNfc3RhdGUg KnN0YXRlKQogewogICAgIGlmICggIXN0YXRlLT5jcjMgKQogICAgICAgICByZXR1cm47Ci0gICAg c3dpdGNoX2NyMyhzdGF0ZS0+Y3IzKTsKKyAgICBzd2l0Y2hfY3IzX2NyNChzdGF0ZS0+Y3IzLCBy ZWFkX2NyNCgpKTsKICAgICBpZiAoIGlzX3B2X3ZjcHUoY3VycmVudCkgJiYgIWlzX2lkbGVfdmNw dShjdXJyZW50KSApCiAgICAgewogICAgICAgICBzdHJ1Y3QgZGVzY19wdHIgZ2R0X2Rlc2MgPSB7 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9kb21haW4uaAppbmRleCBlZDQxOTk5MzFhLi5iNzg5NGRjOGM4IDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYv ZG9tYWluLmgKQEAgLTYxOCw5ICs2MTgsMTAgQEAgdW5zaWduZWQgbG9uZyBwdl9ndWVzdF9jcjRf Zml4dXAoY29uc3Qgc3RydWN0IHZjcHUgKiwgdW5zaWduZWQgbG9uZyBndWVzdF9jcjQpOwogI2Rl ZmluZSBwdl9ndWVzdF9jcjRfdG9fcmVhbF9jcjQodikgICAgICAgICAgICAgICAgICAgICAgICAg XAogICAgICgoKHYpLT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1s0XSAgICAgICAgICAgICAgICAgICAg ICAgICAgXAogICAgICAgfCAobW11X2NyNF9mZWF0dXJlcyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotICAgICAgICAgJiAoWDg2X0NSNF9QR0UgfCBYODZfQ1I0X1BTRSB8IFg4 Nl9DUjRfU01FUCB8ICAgICAgXAorICAgICAgICAgJiAoWDg2X0NSNF9QU0UgfCBYODZfQ1I0X1NN RVAgfCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgWDg2X0NSNF9TTUFQIHwgWDg2 X0NSNF9PU1hTQVZFIHwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgWDg2X0NSNF9GU0dT QkFTRSkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgfCAoKHYpLT5kb21h aW4tPmFyY2gucHZfZG9tYWluLnhwdGkgPyAwIDogWDg2X0NSNF9QR0UpIFwKICAgICAgIHwgKCh2 KS0+ZG9tYWluLT5hcmNoLnZ0c2MgPyBYODZfQ1I0X1RTRCA6IDApKSAgICAgICAgIFwKICAgICAg JiB+WDg2X0NSNF9ERSkKICNkZWZpbmUgcmVhbF9jcjRfdG9fcHZfZ3Vlc3RfY3I0KGMpICAgICAg ICAgICAgICAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZmx1 c2h0bGIuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZmx1c2h0bGIuaAppbmRleCBjMTUwZjgyY2Ey Li42MzU2ZTg1MTAxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2ZsdXNodGxiLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9mbHVzaHRsYi5oCkBAIC04NCw3ICs4NCw3IEBAIHN0 YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyByZWFkX2NyMyh2b2lkKQogfQogCiAvKiBXcml0ZSBw YWdldGFibGUgYmFzZSBhbmQgaW1wbGljaXRseSB0aWNrIHRoZSB0bGJmbHVzaCBjbG9jay4gKi8K LXZvaWQgc3dpdGNoX2NyMyh1bnNpZ25lZCBsb25nIGNyMyk7Cit2b2lkIHN3aXRjaF9jcjNfY3I0 KHVuc2lnbmVkIGxvbmcgY3IzLCB1bnNpZ25lZCBsb25nIGNyNCk7CiAKIC8qIGZsdXNoXyogZmxh ZyBmaWVsZHM6ICovCiAgLyoKLS0gCjIuMTMuNgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby94ZW4tZGV2ZWw=