From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v7 47/49] x86emul: support GFNI insns Date: Wed, 19 Dec 2018 08:07:29 -0700 Message-ID: <5C1A5EB10200007800207AA9@prv1-mh.provo.novell.com> References: <5B6BF83602000078001DC548@prv1-mh.provo.novell.com> <5C1A52ED0200007800207865@prv1-mh.provo.novell.com> 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 1gZdRe-000108-32 for xen-devel@lists.xenproject.org; Wed, 19 Dec 2018 15:07:34 +0000 In-Reply-To: <5C1A52ED0200007800207865@prv1-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org Tm90ZSB0aGF0IHRoZSBJU0EgZXh0ZW5zaW9ucyBkb2N1bWVudCByZXZpc2lvbiAwMzUgaXMgYW1i aWd1b3VzCnJlZ2FyZGluZyBmYXVsdCBzdXBwcmVzc2lvbiBmb3IgVkdGMlA4TVVMQjogVGV4dCBz YXlzIGl0J3Mgc3VwcG9ydGVkLAp3aGlsZSB0aGUgZXhjZXB0aW9uIHNwZWNpZmljYXRpb24gbGlz dGVkIGlzIEU0TkYuIEdpdmVuIHRoZSB3b3JkaW5nIGhlcmUKYW5kIGZvciB0aGUgb3RoZXIgdHdv IGluc25zIEknbSBpbmNsaW5lZCB0byB0cnVzdCB0aGUgdGV4dCBtb3JlIHRoYW4gdGhlCmV4Y2Vw dGlvbiByZWZlcmVuY2UsIHdoaWNoIHdhcyBhbHNvIGNvbmZpcm1lZCBpbmZvcm1hbGx5LgoKQXMg dG8gdGhlIGZlYXR1cmUgZGVwZW5kZW5jeSBhZGp1c3RtZW50LCB3aGlsZSBzdHJpY3RseSBzcGVh a2luZyBTU0UgaXMKYSBzdWZmaWNpZW50IHByZXJlcSAodG8gaGF2ZSBYTU0gcmVnaXN0ZXJzKSwg dmVjdG9ycyBvZiBieXRlcyBhbmQgcXdvcmRzCmhhdmUgZ290IGludHJvZHVjZWQgb25seSB3aXRo IFNTRTIuIGdjYywgZm9yIGV4YW1wbGUsIHVzZXMgYSBzaW1pbGFyCmNvbm5lY3Rpb24gaW4gaXRz IHJlc3BlY3RpdmUgaW50cmluc2ljcyBoZWFkZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGlj aCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NzogTmV3LgoKLS0tIGEvdG9vbHMvdGVzdHMveDg2 X2VtdWxhdG9yL01ha2VmaWxlCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmls ZQpAQCAtMjIsNyArMjIsOCBAQCBDRkxBR1MgKz0gJChDRkxBR1NfeGVuaW5jbHVkZSkKIFNJTUQg Oj0gM2Rub3cgc3NlIHNzZTIgc3NlNCBhdnggYXZ4MiB4b3AgYXZ4NTEyZiBhdng1MTJidyBhdng1 MTJkcSBhdng1MTJlciBhdng1MTJ2Ym1pCiBGTUEgOj0gZm1hNCBmbWEKIFNHIDo9IGF2eDItc2cg YXZ4NTEyZi1zZyBhdng1MTJ2bC1zZwotVEVTVENBU0VTIDo9IGJsb3dmaXNoICQoU0lNRCkgJChG TUEpICQoU0cpCitHRiA6PSBzc2UyLWdmIGF2eDItZ2YgYXZ4NTEyYnctZ2YKK1RFU1RDQVNFUyA6 PSBibG93ZmlzaCAkKFNJTUQpICQoRk1BKSAkKFNHKSAkKEdGKQogCiBPUE1BU0sgOj0gYXZ4NTEy ZiBhdng1MTJkcSBhdng1MTJidwogCkBAIC0xNDUsMTIgKzE0NiwxNyBAQCAkKDEpLWNmbGFncyA6 PSBcCiAJICAgJChmb3JlYWNoIGZsdCwkKCQoMSktZmx0cyksIFwKIAkgICAgICItRF8kKHZlYyl4 JChpZHgpZiQoZmx0KSAtbSQoMTotc2c9KSAkKGNhbGwgbm9uLXNzZSwkKDEpKSAtT3MgLURWRUNf TUFYPSQodmVjKSAtRElEWF9TSVpFPSQoaWR4KSAtREZMT0FUX1NJWkU9JChmbHQpIikpKQogZW5k ZWYKK2RlZmluZSBzaW1kLWdmLWRlZnMKKyQoMSktY2ZsYWdzIDo9ICQoZm9yZWFjaCB2ZWMsJCgk KDE6LWdmPSktdmVjcyksIFwKKwkgICAgICAgICAiLURfJCh2ZWMpIC1tZ2ZuaSAtbSQoMTotZ2Y9 KSAkKGNhbGwgbm9uLXNzZSwkKDEpKSAtT3MgLURWRUNfU0laRT0kKHZlYykiKQorZW5kZWYKIGRl ZmluZSBvcG1hc2stZGVmcwogJCgxKS1vcG1hc2stY2ZsYWdzIDo9ICQoZm9yZWFjaCB2ZWMsJCgk KDEpLW9wbWFzay12ZWNzKSwgIi1EXyQodmVjKSAtbSQoMSkgLU9zIC1EU0laRT0kKHZlYykiKQog ZW5kZWYKIAogJChmb3JlYWNoIGZsYXZvciwkKFNJTUQpICQoRk1BKSwkKGV2YWwgJChjYWxsIHNp bWQtZGVmcywkKGZsYXZvcikpKSkKICQoZm9yZWFjaCBmbGF2b3IsJChTRyksJChldmFsICQoY2Fs bCBzaW1kLXNnLWRlZnMsJChmbGF2b3IpKSkpCiskKGZvcmVhY2ggZmxhdm9yLCQoR0YpLCQoZXZh bCAkKGNhbGwgc2ltZC1nZi1kZWZzLCQoZmxhdm9yKSkpKQogJChmb3JlYWNoIGZsYXZvciwkKE9Q TUFTSyksJChldmFsICQoY2FsbCBvcG1hc2stZGVmcywkKGZsYXZvcikpKSkKIAogZmlyc3Qtc3Ry aW5nID0gJChzaGVsbCBmb3IgcyBpbiAkKDEpOyBkbyBlY2hvICIkJHMiOyBicmVhazsgZG9uZSkK QEAgLTIwMCw2ICsyMDYsOSBAQCAkKGFkZHN1ZmZpeCAuYywkKEZNQSkpOgogJChhZGRzdWZmaXgg LmMsJChTRykpOgogCWxuIC1zZiBzaW1kLXNnLmMgJEAKIAorJChhZGRzdWZmaXggLmMsJChHRikp OgorCWxuIC1zZiBzaW1kLWdmLmMgJEAKKwogJChhZGRzdWZmaXggLmgsJChTSU1EKSAkKEZNQSkg JChTRykpOiBzaW1kLmgKIAogeG9wLmggYXZ4NTEyZi5oOiBzaW1kLWZtYS5jCi0tLSBhL3Rvb2xz L3Rlc3RzL3g4Nl9lbXVsYXRvci9ldmV4LWRpc3A4LmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2Vt dWxhdG9yL2V2ZXgtZGlzcDguYwpAQCAtNTkxLDYgKzU5MSwxMiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHRlc3QgYXZ4NTEyX3Zwb3BjbnRkCiAgICAgSU5TTihwb3BjbnQsIDY2LCAwZjM4LCA1NSwg dmwsIGRxLCB2bCkKIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdGVzdCBnZm5pX2FsbFtdID0g eworICAgIElOU04oZ2YycDhhZmZpbmVpbnZxYiwgNjYsIDBmM2EsIGNmLCB2bCwgcSwgdmwpLAor ICAgIElOU04oZ2YycDhhZmZpbmVxYiwgICAgNjYsIDBmM2EsIGNlLCB2bCwgcSwgdmwpLAorICAg IElOU04oZ2YycDhtdWxiLCAgICAgICAgNjYsIDBmMzgsIGNmLCB2bCwgYiwgdmwpLAorfTsKKwog LyoKICAqIFRoZSB1c2VzIG9mIGIgaW4gdGhpcyB0YWJsZSBhcmUgc2ltcGx5IChvbmUgb2YpIHRo ZSBzaG9ydGVzdCBmb3JtKHMpIG9mCiAgKiBzYXlpbmcgIm5vIGJyb2FkY2FzdCIgd2l0aG91dCBp bnRyb2R1Y2luZyBhIDEyOC1iaXQgZ3JhbnVsYXJpdHkgZW51bWVyYXRvci4KQEAgLTk4Nyw2ICs5 OTMsNyBAQCB2b2lkIGV2ZXhfZGlzcDhfdGVzdCh2b2lkICppbnN0ciwgc3RydWN0CiAKICAgICBp ZiAoIGNwdV9oYXNfYXZ4NTEyZiApCiAgICAgeworICAgICAgICBSVU4oZ2ZuaSwgYWxsKTsKICAg ICAgICAgUlVOKHZhZXMsIGFsbCk7CiAgICAgICAgIFJVTih2cGNsbXVscWRxLCBhbGwpOwogICAg IH0KLS0tIC9kZXYvbnVsbAorKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0b3Ivc2ltZC1nZi5j CkBAIC0wLDAgKzEsODAgQEAKKyNkZWZpbmUgVUlOVF9TSVpFIDEKKworI2luY2x1ZGUgInNpbWQu aCIKK0VOVFJZKGdmX3Rlc3QpOworCisjaWYgVkVDX1NJWkUgPT0gMTYKKyMgZGVmaW5lIEdGKG9w LCBzLCBhLi4uKSBfX2J1aWx0aW5faWEzMl92Z2YycDggIyMgb3AgIyMgX3YxNnFpICMjIHMoYSkK KyNlbGlmIFZFQ19TSVpFID09IDMyCisjIGRlZmluZSBHRihvcCwgcywgYS4uLikgX19idWlsdGlu X2lhMzJfdmdmMnA4ICMjIG9wICMjIF92MzJxaSAjIyBzKGEpCisjZWxpZiBWRUNfU0laRSA9PSA2 NAorIyBkZWZpbmUgR0Yob3AsIHMsIGEuLi4pIF9fYnVpbHRpbl9pYTMyX3ZnZjJwOCAjIyBvcCAj IyBfdjY0cWkgIyMgcyhhKQorI2VuZGlmCisKKyNpZiBkZWZpbmVkKF9fQVZYNTEyRl9fKQorIyBk ZWZpbmUgQUxMX1RSVUUgKH4wVUxMID4+ICg2NCAtIEVMRU1fQ09VTlQpKQorIyBkZWZpbmUgZXEo eCwgeSkgKEIocGNtcGVxYiwgX21hc2ssICh2cWlfdCkoeCksICh2cWlfdCkoeSksIC0xKSA9PSBB TExfVFJVRSkKKyMgZGVmaW5lIG11bCh4LCB5KSBHRihtdWxiLCBfbWFzaywgKHZxaV90KSh4KSwg KHZxaV90KSh5KSwgKHZxaV90KXVuZGVmKCksIH4wKQorIyBkZWZpbmUgdHJhbnNmb3JtKG0sIGRp ciwgeCwgYykgKHsgXAorICAgIHZlY190IHRfOyBcCisgICAgYXNtICggInZnZjJwOGFmZmluZSIg I2RpciAicWIgJVtpbW1dLCAlW21hdHJpeF0lezF0byVjW25dJX0sICVbc3JjXSwgJVtkc3RdIiBc CisgICAgICAgICAgOiBbZHN0XSAiPXYiICh0XykgXAorICAgICAgICAgIDogW21hdHJpeF0gIm0i IChtKSwgW3NyY10gInYiICh4KSwgW2ltbV0gImkiIChjKSwgW25dICJpIiAoVkVDX1NJWkUgLyA4 KSApOyBcCisgICAgdF87IFwKK30pCisjZWxzZQorIyBpZiBkZWZpbmVkKF9fQVZYMl9fKQorIyAg ZGVmaW5lIGJjc3RxKHgpICh7IFwKKyAgICB2ZGlfdCB0XzsgXAorICAgIGFzbSAoICJ2cGJyb2Fk Y2FzdHEgJTEsICUwIiA6ICI9eCIgKHRfKSA6ICJtIiAoeCkgKTsgXAorICAgIHRfOyBcCit9KQor IyAgZGVmaW5lIHRvX2Jvb2woY21wKSBCKHB0ZXN0YywgLCBjbXAsICh2ZGlfdCl7fSA9PSAwKQor IyBlbHNlCisjICBkZWZpbmUgYmNzdHEoeCkgKCh2ZGlfdCl7eCwgeH0pCisjICBkZWZpbmUgdG9f Ym9vbChjbXApIChfX2J1aWx0aW5faWEzMl9wbW92bXNrYjEyOChjbXApID09IDB4ZmZmZikKKyMg ZW5kaWYKKyMgZGVmaW5lIGVxKHgsIHkpIHRvX2Jvb2woKHgpID09ICh5KSkKKyMgZGVmaW5lIG11 bCh4LCB5KSBHRihtdWxiLCAsICh2cWlfdCkoeCksICh2cWlfdCkoeSkpCisjIGRlZmluZSB0cmFu c2Zvcm0obSwgZGlyLCB4LCBjKSAoeyBcCisgICAgdmRpX3QgbV8gPSBiY3N0cShtKTsgXAorICAg IHRvdWNoKG1fKTsgXAorICAgICgodmVjX3QpR0YoYWZmaW5lICMjIGRpciAjIyBxYiwgLCAodnFp X3QpKHgpLCAodnFpX3QpbV8sIGMpKTsgXAorfSkKKyNlbmRpZgorCitjb25zdCB1bnNpZ25lZCBf X2F0dHJpYnV0ZV9fKChtb2RlKERJKSkpIGlkZW50ID0gMHgwMTAyMDQwODEwMjA0MDgwVUxMOwor CitpbnQgZ2ZfdGVzdCh2b2lkKQoreworICAgIHVuc2lnbmVkIGludCBpOworICAgIHZlY190IHNy Yywgb25lOworCisgICAgZm9yICggaSA9IDA7IGkgPCBFTEVNX0NPVU5UOyArK2kgKQorICAgIHsK KyAgICAgICAgc3JjW2ldID0gaTsKKyAgICAgICAgb25lW2ldID0gMTsKKyAgICB9CisKKyAgICAv KiBTcGVjaWFsIGNhc2UgZm9yIGZpcnN0IGl0ZXJhdGlvbi4gKi8KKyAgICBvbmVbMF0gPSAwOwor CisgICAgZG8geworICAgICAgICB2ZWNfdCBpbnYgPSB0cmFuc2Zvcm0oaWRlbnQsIGludiwgc3Jj LCAwKTsKKworICAgICAgICB0b3VjaChzcmMpOworICAgICAgICB0b3VjaChpbnYpOworICAgICAg ICBpZiAoICFlcShtdWwoc3JjLCBpbnYpLCBvbmUpICkgcmV0dXJuIF9fTElORV9fOworCisgICAg ICAgIHRvdWNoKHNyYyk7CisgICAgICAgIHRvdWNoKGludik7CisgICAgICAgIGlmICggIWVxKG11 bChpbnYsIHNyYyksIG9uZSkgKSByZXR1cm4gX19MSU5FX187CisKKyAgICAgICAgb25lWzBdID0g MTsKKworICAgICAgICBzcmMgKz0gRUxFTV9DT1VOVDsKKyAgICAgICAgaSArPSBFTEVNX0NPVU5U OworICAgIH0gd2hpbGUgKCBpIDwgMjU2ICk7CisKKyAgICByZXR1cm4gMDsKK30KLS0tIGEvdG9v bHMvdGVzdHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKKysrIGIvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKQEAgLTExLDEyICsxMSwxNCBAQCBh c20gKCAiLnB1c2hzZWN0aW9uIC50ZXN0LCBcImF4XCIsIEBwcm9nCiAjaW5jbHVkZSAiM2Rub3cu aCIKICNpbmNsdWRlICJzc2UuaCIKICNpbmNsdWRlICJzc2UyLmgiCisjaW5jbHVkZSAic3NlMi1n Zi5oIgogI2luY2x1ZGUgInNzZTQuaCIKICNpbmNsdWRlICJhdnguaCIKICNpbmNsdWRlICJmbWE0 LmgiCiAjaW5jbHVkZSAiZm1hLmgiCiAjaW5jbHVkZSAiYXZ4Mi5oIgogI2luY2x1ZGUgImF2eDIt c2cuaCIKKyNpbmNsdWRlICJhdngyLWdmLmgiCiAjaW5jbHVkZSAieG9wLmgiCiAjaW5jbHVkZSAi YXZ4NTEyZi1vcG1hc2suaCIKICNpbmNsdWRlICJhdng1MTJkcS1vcG1hc2suaCIKQEAgLTI1LDYg KzI3LDcgQEAgYXNtICggIi5wdXNoc2VjdGlvbiAudGVzdCwgXCJheFwiLCBAcHJvZwogI2luY2x1 ZGUgImF2eDUxMmYtc2cuaCIKICNpbmNsdWRlICJhdng1MTJ2bC1zZy5oIgogI2luY2x1ZGUgImF2 eDUxMmJ3LmgiCisjaW5jbHVkZSAiYXZ4NTEyYnctZ2YuaCIKICNpbmNsdWRlICJhdng1MTJkcS5o IgogI2luY2x1ZGUgImF2eDUxMmVyLmgiCiAjaW5jbHVkZSAiYXZ4NTEydmJtaS5oIgpAQCAtMTM4 LDYgKzE0MSwyNiBAQCBzdGF0aWMgYm9vbCBzaW1kX2NoZWNrX2F2eDUxMnZibWlfdmwodm9pCiAg ICAgcmV0dXJuIGNwdV9oYXNfYXZ4NTEyX3ZibWkgJiYgY3B1X2hhc19hdng1MTJ2bDsKIH0KIAor c3RhdGljIGJvb2wgc2ltZF9jaGVja19zc2UyX2dmKHZvaWQpCit7CisgICAgcmV0dXJuIGNwdV9o YXNfZ2ZuaSAmJiBjcHVfaGFzX3NzZTI7Cit9CisKK3N0YXRpYyBib29sIHNpbWRfY2hlY2tfYXZ4 Ml9nZih2b2lkKQoreworICAgIHJldHVybiBjcHVfaGFzX2dmbmkgJiYgY3B1X2hhc19hdngyOwor fQorCitzdGF0aWMgYm9vbCBzaW1kX2NoZWNrX2F2eDUxMmJ3X2dmKHZvaWQpCit7CisgICAgcmV0 dXJuIGNwdV9oYXNfZ2ZuaSAmJiBjcHVfaGFzX2F2eDUxMmJ3OworfQorCitzdGF0aWMgYm9vbCBz aW1kX2NoZWNrX2F2eDUxMmJ3X2dmX3ZsKHZvaWQpCit7CisgICAgcmV0dXJuIGNwdV9oYXNfZ2Zu aSAmJiBjcHVfaGFzX2F2eDUxMnZsOworfQorCiBzdGF0aWMgdm9pZCBzaW1kX3NldF9yZWdzKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewogICAgIGlmICggY3B1X2hhc19tbXggKQpAQCAt Mzk1LDYgKzQxOCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICBBVlg1MTJWTChfVkJN SStWTCB1MTZ4OCwgYXZ4NTEydmJtaSwgICAgMTZ1MiksCiAgICAgQVZYNTEyVkwoX1ZCTUkrVkwg czE2eDE2LCBhdng1MTJ2Ym1pLCAgIDMyaTIpLAogICAgIEFWWDUxMlZMKF9WQk1JK1ZMIHUxNngx NiwgYXZ4NTEydmJtaSwgICAzMnUyKSwKKyAgICBTSU1EKEdGTkkgKGxlZ2FjeSksICAgICAgc3Nl Ml9nZiwgICAgICAgICAxNiksCisgICAgU0lNRChHRk5JIChWRVgveDE2KSwgICAgIGF2eDJfZ2Ys ICAgICAgICAgMTYpLAorICAgIFNJTUQoR0ZOSSAoVkVYL3gzMiksICAgICBhdngyX2dmLCAgICAg ICAgIDMyKSwKKyAgICBTSU1EKEdGTkkgKEVWRVgveDY0KSwgICAgYXZ4NTEyYndfZ2YsICAgICA2 NCksCisgICAgQVZYNTEyVkwoVkwrR0ZOSSAoeDE2KSwgIGF2eDUxMmJ3X2dmLCAgICAgMTYpLAor ICAgIEFWWDUxMlZMKFZMK0dGTkkgKHgzMiksICBhdng1MTJid19nZiwgICAgIDMyKSwKICN1bmRl ZiBBVlg1MTJWTF8KICN1bmRlZiBBVlg1MTJWTAogI3VuZGVmIFNJTURfCi0tLSBhL3Rvb2xzL3Rl c3RzL3g4Nl9lbXVsYXRvci94ODYtZW11bGF0ZS5oCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVs YXRvci94ODYtZW11bGF0ZS5oCkBAIC0xNDQsNiArMTQ0LDcgQEAgc3RhdGljIGlubGluZSBib29s IHhjcjBfbWFzayh1aW50NjRfdCBtYQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMnZsICAoY3AuZmVh dC5hdng1MTJ2bCAmJiB4Y3IwX21hc2soMHhlNikpCiAjZGVmaW5lIGNwdV9oYXNfYXZ4NTEyX3Zi bWkgKGNwLmZlYXQuYXZ4NTEyX3ZibWkgJiYgeGNyMF9tYXNrKDB4ZTYpKQogI2RlZmluZSBjcHVf aGFzX2F2eDUxMl92Ym1pMiAoY3AuZmVhdC5hdng1MTJfdmJtaTIgJiYgeGNyMF9tYXNrKDB4ZTYp KQorI2RlZmluZSBjcHVfaGFzX2dmbmkgICAgICAgY3AuZmVhdC5nZm5pCiAjZGVmaW5lIGNwdV9o YXNfdmFlcyAgICAgIChjcC5mZWF0LnZhZXMgJiYgeGNyMF9tYXNrKDYpKQogI2RlZmluZSBjcHVf aGFzX3ZwY2xtdWxxZHEgKGNwLmZlYXQudnBjbG11bHFkcSAmJiB4Y3IwX21hc2soNikpCiAjZGVm aW5lIGNwdV9oYXNfYXZ4NTEyX3ZubmkgKGNwLmZlYXQuYXZ4NTEyX3ZubmkgJiYgeGNyMF9tYXNr KDB4ZTYpKQotLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYworKysg Yi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwpAQCAtNTQwLDYgKzU0MCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0MGYzOF90YWJsZSB7CiAgICAgWzB4Y2JdID0geyAu c2ltZF9zaXplID0gc2ltZF9zY2FsYXJfdmV4dywgLmQ4cyA9IGQ4c19kcSB9LAogICAgIFsweGNj XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAudHdvX29wID0gMSwgLmQ4cyA9IGQ4 c192bCB9LAogICAgIFsweGNkXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfc2NhbGFyX3ZleHcsIC5k OHMgPSBkOHNfZHEgfSwKKyAgICBbMHhjZl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9p bnQsIC5kOHMgPSBkOHNfdmwgfSwKICAgICBbMHhkYl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3Bh Y2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCiAgICAgWzB4ZGMgLi4uIDB4ZGZdID0geyAuc2ltZF9z aXplID0gc2ltZF9wYWNrZWRfaW50LCAuZDhzID0gZDhzX3ZsIH0sCiAgICAgWzB4ZjBdID0geyAu dHdvX29wID0gMSB9LApAQCAtNjE5LDYgKzYyMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXh0 MGYzYV90YWJsZSB7CiAgICAgWzB4N2MgLi4uIDB4N2RdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfZnAsIC5mb3VyX29wID0gMSB9LAogICAgIFsweDdlIC4uLiAweDdmXSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfc2NhbGFyX29wYywgLmZvdXJfb3AgPSAxIH0sCiAgICAgWzB4Y2NdID0geyAu c2ltZF9zaXplID0gc2ltZF9vdGhlciB9LAorICAgIFsweGNlIC4uLiAweGNmXSA9IHsgLnNpbWRf c2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmQ4cyA9IGQ4c192bCB9LAogICAgIFsweGRmXSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKICAgICBbMHhmMF0g PSB7fSwKIH07CkBAIC0xOTIyLDYgKzE5MjQsNyBAQCBzdGF0aWMgYm9vbCB2Y3B1X2hhcygKICNk ZWZpbmUgdmNwdV9oYXNfYXZ4NTEydmwoKSAgICB2Y3B1X2hhcyggICAgICAgICA3LCBFQlgsIDMx LCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFzX2F2eDUxMl92Ym1pKCkgdmNwdV9oYXMoICAg ICAgICAgNywgRUNYLCAgMSwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19hdng1MTJfdmJt aTIoKSB2Y3B1X2hhcyggICAgICAgIDcsIEVDWCwgIDYsIGN0eHQsIG9wcykKKyNkZWZpbmUgdmNw dV9oYXNfZ2ZuaSgpICAgICAgICB2Y3B1X2hhcyggICAgICAgICA3LCBFQ1gsICA4LCBjdHh0LCBv cHMpCiAjZGVmaW5lIHZjcHVfaGFzX3ZhZXMoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywg RUNYLCAgOSwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc192cGNsbXVscWRxKCkgIHZjcHVf aGFzKCAgICAgICAgIDcsIEVDWCwgMTAsIGN0eHQsIG9wcykKICNkZWZpbmUgdmNwdV9oYXNfYXZ4 NTEyX3ZubmkoKSB2Y3B1X2hhcyggICAgICAgICA3LCBFQ1gsIDExLCBjdHh0LCBvcHMpCkBAIC05 NjI3LDYgKzk2MzAsMjEgQEAgeDg2X2VtdWxhdGUoCiAgICAgICAgIGhvc3RfYW5kX3ZjcHVfbXVz dF9oYXZlKGF2eDUxMmVyKTsKICAgICAgICAgZ290byBzaW1kX3ptbV9zY2FsYXJfc2FlOwogCisg ICAgY2FzZSBYODZFTVVMX09QQ182NigweDBmMzgsIDB4Y2YpOiAgICAgIC8qIGdmMnA4bXVsYiB4 bW0vbTEyOCx4bW0gKi8KKyAgICAgICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoZ2ZuaSk7Cisg ICAgICAgIGdvdG8gc2ltZF8wZjM4X2NvbW1vbjsKKworICAgIGNhc2UgWDg2RU1VTF9PUENfVkVY XzY2KDB4MGYzOCwgMHhjZik6ICAvKiB2Z2YycDhtdWxiIHt4LHl9bW0vbWVtLHt4LHl9bW0se3gs eX1tbSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShnZm5pKTsKKyAgICAgICAg Z2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC53LCBFWENfVUQpOworICAgICAgICBnb3RvIHNpbWRf MGZfYXZ4OworCisgICAgY2FzZSBYODZFTVVMX09QQ19FVkVYXzY2KDB4MGYzOCwgMHhjZik6IC8q IHZnZjJwOG11bGIgW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgICAgIGhv c3RfYW5kX3ZjcHVfbXVzdF9oYXZlKGdmbmkpOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25f aWYoZXZleC53IHx8IGV2ZXguYnJzLCBFWENfVUQpOworICAgICAgICBlbGVtX2J5dGVzID0gMTsK KyAgICAgICAgZ290byBhdng1MTJmX25vX3NhZTsKKwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVY XzY2KDB4MGYzOCwgMHhkYyk6ICAvKiB2YWVzZW5jIHt4LHl9bW0vbWVtLHt4LHl9bW0se3gseX1t bSAqLwogICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzOCwgMHhkZCk6ICAvKiB2YWVz ZW5jbGFzdCB7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KICAgICBjYXNlIFg4NkVNVUxf T1BDX1ZFWF82NigweDBmMzgsIDB4ZGUpOiAgLyogdmFlc2RlYyB7eCx5fW1tL21lbSx7eCx5fW1t LHt4LHl9bW0gKi8KQEAgLTEwMzcyLDYgKzEwMzkwLDI0IEBAIHg4Nl9lbXVsYXRlKAogICAgICAg ICBvcF9ieXRlcyA9IDE2OwogICAgICAgICBnb3RvIHNpbWRfMGYzYV9jb21tb247CiAKKyAgICBj YXNlIFg4NkVNVUxfT1BDXzY2KDB4MGYzYSwgMHhjZSk6ICAgICAgLyogZ2YycDhhZmZpbmVxYiAk aW1tOCx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDXzY2KDB4MGYzYSwgMHhj Zik6ICAgICAgLyogZ2YycDhhZmZpbmVpbnZxYiAkaW1tOCx4bW0vbTEyOCx4bW0gKi8KKyAgICAg ICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoZ2ZuaSk7CisgICAgICAgIGdvdG8gc2ltZF8wZjNh X2NvbW1vbjsKKworICAgIGNhc2UgWDg2RU1VTF9PUENfVkVYXzY2KDB4MGYzYSwgMHhjZSk6ICAv KiB2Z2YycDhhZmZpbmVxYiAkaW1tOCx7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAg ICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4Y2YpOiAgLyogdmdmMnA4YWZmaW5l aW52cWIgJGltbTgse3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tICovCisgICAgICAgIGhvc3Rf YW5kX3ZjcHVfbXVzdF9oYXZlKGdmbmkpOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYo IXZleC53LCBFWENfVUQpOworICAgICAgICBnb3RvIHNpbWRfMGZfaW1tOF9hdng7CisKKyAgICBj YXNlIFg4NkVNVUxfT1BDX0VWRVhfNjYoMHgwZjNhLCAweGNlKTogLyogdmdmMnA4YWZmaW5lcWIg JGltbTgsW3h5el1tbS9tZW0sW3h5el1tbSxbeHl6XW1te2t9ICovCisgICAgY2FzZSBYODZFTVVM X09QQ19FVkVYXzY2KDB4MGYzYSwgMHhjZik6IC8qIHZnZjJwOGFmZmluZWludnFiICRpbW04LFt4 eXpdbW0vbWVtLFt4eXpdbW0sW3h5el1tbXtrfSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211 c3RfaGF2ZShnZm5pKTsKKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKCFldmV4LncsIEVY Q19VRCk7CisgICAgICAgIGZhdWx0X3N1cHByZXNzaW9uID0gZmFsc2U7CisgICAgICAgIGdvdG8g YXZ4NTEyZl9pbW04X25vX3NhZTsKKwogICAgIGNhc2UgWDg2RU1VTF9PUENfNjYoMHgwZjNhLCAw eGRmKTogICAgIC8qIGFlc2tleWdlbmFzc2lzdCAkaW1tOCx4bW0vbTEyOCx4bW0gKi8KICAgICBj YXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4ZGYpOiAvKiB2YWVza2V5Z2VuYXNzaXN0 ICRpbW04LHhtbS9tMTI4LHhtbSAqLwogICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZShh ZXNuaSk7Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCisrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvY3B1ZmVhdHVyZS5oCkBAIC0xMTMsNiArMTEzLDcgQEAKIC8qIENQVUlE IGxldmVsIDB4MDAwMDAwMDc6MC5lY3ggKi8KICNkZWZpbmUgY3B1X2hhc19hdng1MTJfdmJtaSAg ICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FWWDUxMl9WQk1JKQogI2RlZmluZSBjcHVfaGFz X2F2eDUxMl92Ym1pMiAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYNTEyX1ZCTUkyKQor I2RlZmluZSBjcHVfaGFzX2dmbmkgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf R0ZOSSkKICNkZWZpbmUgY3B1X2hhc192YWVzICAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9G RUFUVVJFX1ZBRVMpCiAjZGVmaW5lIGNwdV9oYXNfdnBjbG11bHFkcSAgICAgIGJvb3RfY3B1X2hh cyhYODZfRkVBVFVSRV9WUENMTVVMUURRKQogI2RlZmluZSBjcHVfaGFzX2F2eDUxMl92bm5pICAg ICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVZYNTEyX1ZOTkkpCi0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy9hcmNoLXg4Ni9jcHVmZWF0dXJlc2V0LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGlj L2FyY2gteDg2L2NwdWZlYXR1cmVzZXQuaApAQCAtMjI5LDYgKzIyOSw3IEBAIFhFTl9DUFVGRUFU VVJFKFVNSVAsICAgICAgICAgIDYqMzIrIDIpIC8KIFhFTl9DUFVGRUFUVVJFKFBLVSwgICAgICAg ICAgIDYqMzIrIDMpIC8qSCAgUHJvdGVjdGlvbiBLZXlzIGZvciBVc2Vyc3BhY2UgKi8KIFhFTl9D UFVGRUFUVVJFKE9TUEtFLCAgICAgICAgIDYqMzIrIDQpIC8qISAgT1MgUHJvdGVjdGlvbiBLZXlz IEVuYWJsZSAqLwogWEVOX0NQVUZFQVRVUkUoQVZYNTEyX1ZCTUkyLCAgNiozMisgNikgLypBICBB ZGRpdGlvbmFsIEFWWC01MTIgVmVjdG9yIEJ5dGUgTWFuaXB1bGF0aW9uIEluc3RycyAqLworWEVO X0NQVUZFQVRVUkUoR0ZOSSwgICAgICAgICAgNiozMisgOCkgLypBICBHYWxvaXMgRmllbGQgSW5z dHJzICovCiBYRU5fQ1BVRkVBVFVSRShWQUVTLCAgICAgICAgICA2KjMyKyA5KSAvKkEgIFZlY3Rv ciBBRVMgSW5zdHJzICovCiBYRU5fQ1BVRkVBVFVSRShWUENMTVVMUURRLCAgICA2KjMyKzEwKSAv KkEgIFZlY3RvciBDYXJyeS1sZXNzIE11bHRpcGxpY2F0aW9uIEluc3RycyAqLwogWEVOX0NQVUZF QVRVUkUoQVZYNTEyX1ZOTkksICAgNiozMisxMSkgLypBICBWZWN0b3IgTmV1cmFsIE5ldHdvcmsg SW5zdHJzICovCi0tLSBhL3hlbi90b29scy9nZW4tY3B1aWQucHkKKysrIGIveGVuL3Rvb2xzL2dl bi1jcHVpZC5weQpAQCAtMjAwLDcgKzIwMCw3IEBAIGRlZiBjcnVuY2hfbnVtYmVycyhzdGF0ZSk6 CiAgICAgICAgICAgICAgIEFFU05JLCBTSEFdLAogCiAgICAgICAgICMgU1NFMiB3YXMgcmUtc3Bl Y2lmaWVkIGFzIGNvcmUgaW5zdHJ1Y3Rpb25zIGZvciA2NGJpdC4KLSAgICAgICAgU1NFMjogW0xN XSwKKyAgICAgICAgU1NFMjogW0xNLCBHRk5JXSwKIAogICAgICAgICAjIFNTRTQuMSBleHBsaWNp dGx5IGRlcGVuZHMgb24gU1NFMyBhbmQgU1NTRTMKICAgICAgICAgU1NFMzogW1NTRTRfMV0sCgoK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xp c3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs