From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v7 3/9] xen/x86: support per-domain flag for xpti Date: Thu, 12 Apr 2018 20:09:38 +0200 Message-ID: <20180412180944.31735-4-jgross@suse.com> References: <20180412180944.31735-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 1f6ggb-0004Es-Hc for xen-devel@lists.xenproject.org; Thu, 12 Apr 2018 18:11:05 +0000 In-Reply-To: <20180412180944.31735-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, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBzd2l0Y2hpbmcgWFBUSSBnbG9iYWxseSBvbiBvciBvZmYgYWRkIGEgcGVyLWRv bWFpbiBmbGFnIGZvcgp0aGF0IHB1cnBvc2UuIFRoaXMgYWxsb3dzIHRvIG1vZGlmeSB0aGUgeHB0 aSBib290IHBhcmFtZXRlciB0byBzdXBwb3J0CnJ1bm5pbmcgZG9tMCB3aXRob3V0IE1lbHRkb3du IG1pdGlnYXRpb25zLiBVc2luZyAieHB0aT1ub2RvbTAiIGFzIGJvb3QKcGFyYW1ldGVyIHdpbGwg YWNoaWV2ZSB0aGF0LgoKTW92ZSB0aGUgeHB0aSBib290IHBhcmFtZXRlciBoYW5kbGluZyB0byB4 ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYXMKaXQgaXMgcHYtZG9tYWluIHNwZWNpZmljLgoKU2ln bmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KVjYuMToKLSBhZGRyZXNzIHNvbWUg bWlub3IgY29tbWVudHMgKEphbiBCZXVsaWNoKQoKVjY6Ci0gbW9kaWZ5IHhwdGkgYm9vdCBwYXJh bWV0ZXIgb3B0aW9ucyAoQW5kcmV3IENvb3BlcikKLSBtb3ZlIHhwdGlfaW5pdCgpIGNvZGUgdG8g c3BlY19jdHJsLmMgKEFuZHJldyBDb29wZXIpCi0gaXJld29yayBpbml0IG9mIHBlci1kb21haW4g eHB0aSBmbGFnIChBbmRyZXcgQ29vcGVyKQoKVjM6Ci0gbGF0Y2ggZ2V0X2NwdV9pbmZvKCkgcmV0 dXJuIHZhbHVlIGluIHZhcmlhYmxlIChKYW4gQmV1bGljaCkKLSBjYWxsIGFsd2F5cyB4cHRpX2Rv bWFpbl9pbml0KCkgZm9yIHB2IGRvbTAgKEphbiBCZXVsaWNoKQotIGFkZCBfX2luaXQgYW5ub3Rh dGlvbnMgKEphbiBCZXVsaWNoKQotIGRyb3AgcGVyIGRvbWFpbiBYUFRJIG1lc3NhZ2UgKEphbiBC ZXVsaWNoKQotIGRvY3VtZW50IHhwdGk9ZGVmYXVsdCBzdXBwb3J0IChKYW4gQmV1bGljaCkKLSBt b3ZlIGRvbWFpbiB4cHRpIGZsYWcgaW50byBhIHBhZGRpbmcgaG9sZSAoSmFuIEJldWxpY2gpCi0t LQogZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gfCAxNCArKysrKystLQogeGVu L2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgfCAxNyArKysrKysrLS0KIHhlbi9hcmNo L3g4Ni9wdi9kb20wX2J1aWxkLmMgICAgICAgIHwgIDEgKwogeGVuL2FyY2gveDg2L3B2L2RvbWFp bi5jICAgICAgICAgICAgfCAgNiArKysrCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAg ICAgICB8IDE5IC0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9zbXBib290LmMgICAgICAgICAgICAg IHwgIDQgKy0tCiB4ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMgICAgICAgICAgICB8IDcwICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvY3Vy cmVudC5oICAgICAgIHwgIDMgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggICAgICAg IHwgIDMgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsLmggICAgIHwgIDQgKysrCiAx MCBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2Mv eGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgppbmRleCBiMzUzMzUyYWRmLi5kNGY3NTg0ODdhIDEw MDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2Nz L21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgpAQCAtMTk1NSwxNCArMTk1NSwyNCBAQCBj bHVzdGVyZWQgbW9kZS4gIFRoZSBkZWZhdWx0LCBnaXZlbiBubyBoaW50IGZyb20gdGhlICoqRkFE VCoqLCBpcyBjbHVzdGVyCiBtb2RlLgogCiAjIyMgeHB0aQotPiBgPSA8Ym9vbGVhbj5gCis+IGA9 IExpc3Qgb2YgWyBkZWZhdWx0IHwgPGJvb2xlYW4+IHwgZG9tMD08Ym9vbD4gfCBkb211PTxib29s PiBdYAogCi0+IERlZmF1bHQ6IGBmYWxzZWAgb24gQU1EIGhhcmR3YXJlCis+IERlZmF1bHQ6IGBm YWxzZWAgb24gaGFyZHdhcmUgbm90IHZ1bG5lcmFibGUgdG8gTWVsdGRvd24gKGUuZy4gQU1EKQog PiBEZWZhdWx0OiBgdHJ1ZWAgZXZlcnl3aGVyZSBlbHNlCiAKIE92ZXJyaWRlIGRlZmF1bHQgc2Vs ZWN0aW9uIG9mIHdoZXRoZXIgdG8gaXNvbGF0ZSA2NC1iaXQgUFYgZ3Vlc3QgcGFnZQogdGFibGVz LgogCitgdHJ1ZWAgYWN0aXZhdGVzIHBhZ2UgdGFibGUgaXNvbGF0aW9uIGV2ZW4gb24gaGFyZHdh cmUgbm90IHZ1bG5lcmFibGUgYnkKK01lbHRkb3duIGZvciBhbGwgZG9tYWlucy4KKworYGZhbHNl YCBkZWFjdGl2YXRlcyBwYWdlIHRhYmxlIGlzb2xhdGlvbiBvbiBhbGwgc3lzdGVtcyBmb3IgYWxs IGRvbWFpbnMuCisKK2BkZWZhdWx0YCBzZXRzIHRoZSBkZWZhdWx0IGJlaGF2aW91ci4KKworV2l0 aCBgZG9tMGAgYW5kIGBkb211YCBpdCBpcyBwb3NzaWJsZSB0byBjb250cm9sIHBhZ2UgdGFibGUg aXNvbGF0aW9uCitmb3IgZG9tMCBvciBndWVzdCBkb21haW5zIG9ubHkuCisKICMjIyB4c2F2ZQog PiBgPSA8Ym9vbGVhbj5gCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2Fy Y2gveDg2L21tLmMKaW5kZXggZTI0NWQ5NmE5Ny4uOWMzNjYxNDA5OSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTUwMiw4ICs1MDIsMjEg QEAgdm9pZCBtYWtlX2NyMyhzdHJ1Y3QgdmNwdSAqdiwgbWZuX3QgbWZuKQogCiB2b2lkIHdyaXRl X3B0YmFzZShzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBnZXRfY3B1X2luZm8oKS0+cm9vdF9wZ3Rf Y2hhbmdlZCA9IHRydWU7Ci0gICAgc3dpdGNoX2NyMyh2LT5hcmNoLmNyMyk7CisgICAgc3RydWN0 IGNwdV9pbmZvICpjcHVfaW5mbyA9IGdldF9jcHVfaW5mbygpOworCisgICAgaWYgKCBpc19wdl92 Y3B1KHYpICYmIHYtPmRvbWFpbi0+YXJjaC5wdl9kb21haW4ueHB0aSApCisgICAgeworICAgICAg ICBjcHVfaW5mby0+cm9vdF9wZ3RfY2hhbmdlZCA9IHRydWU7CisgICAgICAgIGNwdV9pbmZvLT5w dl9jcjMgPSBfX3BhKHRoaXNfY3B1KHJvb3RfcGd0KSk7CisgICAgICAgIHN3aXRjaF9jcjModi0+ YXJjaC5jcjMpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKiBNYWtlIHN1cmUg dG8gY2xlYXIgeGVuX2NyMyBiZWZvcmUgcHZfY3IzOyBzd2l0Y2hfY3IzKCkgc2VyaWFsaXplcy4g Ki8KKyAgICAgICAgY3B1X2luZm8tPnhlbl9jcjMgPSAwOworICAgICAgICBzd2l0Y2hfY3IzKHYt PmFyY2guY3IzKTsKKyAgICAgICAgY3B1X2luZm8tPnB2X2NyMyA9IDA7CisgICAgfQogfQogCiAv KgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNoL3g4 Ni9wdi9kb20wX2J1aWxkLmMKaW5kZXggNWI0MzI1Yjg3Zi4uZDE0ODM5NTkxOSAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9t MF9idWlsZC5jCkBAIC0zODcsNiArMzg3LDcgQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9w dihzdHJ1Y3QgZG9tYWluICpkLAogICAgIGlmICggY29tcGF0MzIgKQogICAgIHsKICAgICAgICAg ZC0+YXJjaC5pc18zMmJpdF9wdiA9IGQtPmFyY2guaGFzXzMyYml0X3NoaW5mbyA9IDE7CisgICAg ICAgIGQtPmFyY2gucHZfZG9tYWluLnhwdGkgPSBmYWxzZTsKICAgICAgICAgdi0+dmNwdV9pbmZv ID0gKHZvaWQgKikmZC0+c2hhcmVkX2luZm8tPmNvbXBhdC52Y3B1X2luZm9bMF07CiAgICAgICAg IGlmICggc2V0dXBfY29tcGF0X2FyZ194bGF0KHYpICE9IDAgKQogICAgICAgICAgICAgQlVHKCk7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvcHYv ZG9tYWluLmMKaW5kZXggYmU0MDg0M2IwNS4uY2UxYTFhOWQzNSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3B2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwpAQCAtOSw2 ICs5LDcgQEAKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAK KyNpbmNsdWRlIDxhc20vc3BlY19jdHJsLmg+CiAjaW5jbHVkZSA8YXNtL3B2L2RvbWFpbi5oPgog CiBzdGF0aWMgdm9pZCBub3JldHVybiBjb250aW51ZV9ub25pZGxlX2RvbWFpbihzdHJ1Y3QgdmNw dSAqdikKQEAgLTc1LDYgKzc2LDggQEAgaW50IHN3aXRjaF9jb21wYXQoc3RydWN0IGRvbWFpbiAq ZCkKIAogICAgIGQtPmFyY2gueDg3X2ZpcF93aWR0aCA9IDQ7CiAKKyAgICBkLT5hcmNoLnB2X2Rv bWFpbi54cHRpID0gZmFsc2U7CisKICAgICByZXR1cm4gMDsKIAogIHVuZG9fYW5kX2ZhaWw6CkBA IC0yMDUsNiArMjA4LDkgQEAgaW50IHB2X2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4g KmQpCiAgICAgLyogNjQtYml0IFBWIGd1ZXN0IGJ5IGRlZmF1bHQuICovCiAgICAgZC0+YXJjaC5p c18zMmJpdF9wdiA9IGQtPmFyY2guaGFzXzMyYml0X3NoaW5mbyA9IDA7CiAKKyAgICBkLT5hcmNo LnB2X2RvbWFpbi54cHRpID0gb3B0X3hwdGkgJiAoaXNfaGFyZHdhcmVfZG9tYWluKGQpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gT1BUX1hQVElfRE9NMCA6IE9Q VF9YUFRJX0RPTVUpOworCiAgICAgcmV0dXJuIDA7CiAKICAgZmFpbDoKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggYjJiYWVlM2Qy Yy4uZjgwMzk4MGI5NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVu L2FyY2gveDg2L3NldHVwLmMKQEAgLTE2OSw5ICsxNjksNiBAQCBzdGF0aWMgaW50IF9faW5pdCBw YXJzZV9zbWFwX3BhcmFtKGNvbnN0IGNoYXIgKnMpCiB9CiBjdXN0b21fcGFyYW0oInNtYXAiLCBw YXJzZV9zbWFwX3BhcmFtKTsKIAotc3RhdGljIGludDhfdCBfX2luaXRkYXRhIG9wdF94cHRpID0g LTE7Ci1ib29sZWFuX3BhcmFtKCJ4cHRpIiwgb3B0X3hwdGkpOwotCiBib29sIF9fcmVhZF9tb3N0 bHkgYWNwaV9kaXNhYmxlZDsKIGJvb2wgX19pbml0ZGF0YSBhY3BpX2ZvcmNlOwogc3RhdGljIGNo YXIgX19pbml0ZGF0YSBhY3BpX3BhcmFtWzEwXSA9ICIiOwpAQCAtMTU0NiwyMiArMTU0Myw2IEBA IHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAK ICAgICBjcjRfcHYzMl9tYXNrID0gbW11X2NyNF9mZWF0dXJlcyAmIFhFTl9DUjRfUFYzMl9CSVRT OwogCi0gICAgaWYgKCBvcHRfeHB0aSA8IDAgKQotICAgIHsKLSAgICAgICAgdWludDY0X3QgY2Fw cyA9IDA7Ci0KLSAgICAgICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZF TkRPUl9BTUQgKQotICAgICAgICAgICAgY2FwcyA9IEFSQ0hfQ0FQQUJJTElUSUVTX1JEQ0xfTk87 Ci0gICAgICAgIGVsc2UgaWYgKCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVJDSF9DQVBTKSAp Ci0gICAgICAgICAgICByZG1zcmwoTVNSX0FSQ0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKLQotICAg ICAgICBvcHRfeHB0aSA9ICEoY2FwcyAmIEFSQ0hfQ0FQQUJJTElUSUVTX1JEQ0xfTk8pOwotICAg IH0KLSAgICBpZiAoIG9wdF94cHRpICkKLSAgICAgICAgc2V0dXBfY2xlYXJfY3B1X2NhcChYODZf RkVBVFVSRV9OT19YUFRJKTsKLSAgICBlbHNlCi0gICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAo WDg2X0ZFQVRVUkVfTk9fWFBUSSk7Ci0KICAgICBpZiAoIGNwdV9oYXNfZnNnc2Jhc2UgKQogICAg ICAgICBzZXRfaW5fY3I0KFg4Nl9DUjRfRlNHU0JBU0UpOwogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwppbmRleCAxMDNkOGY3MTQy Li45ODAxOTJlNzFmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9zbXBib290LmMKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIHN0YXJ0X3NlY29u ZGFyeSh2b2lkICp1bnVzZWQpCiAgICAgc3Bpbl9kZWJ1Z19kaXNhYmxlKCk7CiAKICAgICBnZXRf Y3B1X2luZm8oKS0+eGVuX2NyMyA9IDA7Ci0gICAgZ2V0X2NwdV9pbmZvKCktPnB2X2NyMyA9IHRo aXNfY3B1KHJvb3RfcGd0KSA/IF9fcGEodGhpc19jcHUocm9vdF9wZ3QpKSA6IDA7CisgICAgZ2V0 X2NwdV9pbmZvKCktPnB2X2NyMyA9IDA7CiAKICAgICBsb2FkX3N5c3RlbV90YWJsZXMoKTsKIApA QCAtMTA0NCw3ICsxMDQ0LDcgQEAgdm9pZCBfX2luaXQgc21wX3ByZXBhcmVfY3B1cyh2b2lkKQog ICAgICAgICBwYW5pYygiRXJyb3IgJWQgc2V0dGluZyB1cCBQViByb290IHBhZ2UgdGFibGVcbiIs IHJjKTsKICAgICBpZiAoIHBlcl9jcHUocm9vdF9wZ3QsIDApICkKICAgICB7Ci0gICAgICAgIGdl dF9jcHVfaW5mbygpLT5wdl9jcjMgPSBfX3BhKHBlcl9jcHUocm9vdF9wZ3QsIDApKTsKKyAgICAg ICAgZ2V0X2NwdV9pbmZvKCktPnB2X2NyMyA9IDA7CiAKICAgICAgICAgLyoKICAgICAgICAgICog QWxsIGVudHJ5IHBvaW50cyB3aGljaCBtYXkgbmVlZCB0byBzd2l0Y2ggcGFnZSB0YWJsZXMgaGF2 ZSB0byBzdGFydApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jIGIveGVuL2Fy Y2gveDg2L3NwZWNfY3RybC5jCmluZGV4IDViNWVjOTBmZDguLjIzMDBlOWViYTkgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYworKysgYi94ZW4vYXJjaC94ODYvc3BlY19jdHJs LmMKQEAgLTE5Myw2ICsxOTMsNzAgQEAgc3RhdGljIGJvb2wgX19pbml0IHJldHBvbGluZV9zYWZl KHZvaWQpCiAgICAgfQogfQogCisjZGVmaW5lIE9QVF9YUFRJX0RFRkFVTFQgIDB4ZmYKK3VpbnQ4 X3QgX19yZWFkX21vc3RseSBvcHRfeHB0aSA9IE9QVF9YUFRJX0RFRkFVTFQ7CisKK3N0YXRpYyBf X2luaXQgdm9pZCB4cHRpX2luaXRfZGVmYXVsdChib29sIGZvcmNlKQoreworICAgIHVpbnQ2NF90 IGNhcHMgPSAwOworCisgICAgaWYgKCAhZm9yY2UgJiYgKG9wdF94cHRpICE9IE9QVF9YUFRJX0RF RkFVTFQpICkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92 ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQgKQorICAgICAgICBjYXBzID0gQVJDSF9DQVBBQklMSVRJ RVNfUkRDTF9OTzsKKyAgICBlbHNlIGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FSQ0hf Q0FQUykgKQorICAgICAgICByZG1zcmwoTVNSX0FSQ0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKKwor ICAgIGlmICggY2FwcyAmIEFSQ0hfQ0FQQUJJTElUSUVTX1JEQ0xfTk8gKQorICAgICAgICBvcHRf eHB0aSA9IDA7CisgICAgZWxzZQorICAgICAgICBvcHRfeHB0aSA9IE9QVF9YUFRJX0RPTTAgfCBP UFRfWFBUSV9ET01VOworfQorCitzdGF0aWMgX19pbml0IGludCBwYXJzZV94cHRpKGNvbnN0IGNo YXIgKnMpCit7CisgICAgY29uc3QgY2hhciAqc3M7CisgICAgaW50IHZhbCwgcmMgPSAwOworCisg ICAgeHB0aV9pbml0X2RlZmF1bHQoZmFsc2UpOworCisgICAgZG8geworICAgICAgICBzcyA9IHN0 cmNocihzLCAnLCcpOworICAgICAgICBpZiAoICFzcyApCisgICAgICAgICAgICBzcyA9IHN0cmNo cihzLCAnXDAnKTsKKworICAgICAgICBzd2l0Y2ggKCBwYXJzZV9ib29sKHMsIHNzKSApCisgICAg ICAgIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgb3B0X3hwdGkgPSAwOworICAgICAg ICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgb3B0X3hwdGkgPSBP UFRfWFBUSV9ET00wIHwgT1BUX1hQVElfRE9NVTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoICFzdHJjbXAocywgImRlZmF1bHQiKSApCisg ICAgICAgICAgICAgICAgeHB0aV9pbml0X2RlZmF1bHQodHJ1ZSk7CisgICAgICAgICAgICBlbHNl IGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oImRvbTAiLCBzLCBzcykpID49IDAgKQorICAgICAg ICAgICAgICAgIG9wdF94cHRpID0gKG9wdF94cHRpICYgfk9QVF9YUFRJX0RPTTApIHwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICh2YWwgPyBPUFRfWFBUSV9ET00wIDogMCk7CisgICAgICAg ICAgICBlbHNlIGlmICggKHZhbCA9IHBhcnNlX2Jvb2xlYW4oImRvbXUiLCBzLCBzcykpID49IDAg KQorICAgICAgICAgICAgICAgIG9wdF94cHRpID0gKG9wdF94cHRpICYgfk9QVF9YUFRJX0RPTVUp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWwgPyBPUFRfWFBUSV9ET01VIDogMCk7 CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBzID0gc3MgKyAxOworICAgIH0gd2hp bGUgKCAqc3MgKTsKKworICAgIHJldHVybiByYzsKK30KK2N1c3RvbV9wYXJhbSgieHB0aSIsIHBh cnNlX3hwdGkpOworCiB2b2lkIF9faW5pdCBpbml0X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZv aWQpCiB7CiAgICAgZW51bSBpbmRfdGh1bmsgdGh1bmsgPSBUSFVOS19ERUZBVUxUOwpAQCAtMzEw LDYgKzM3NCwxMiBAQCB2b2lkIF9faW5pdCBpbml0X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZv aWQpCiAgICAgLyogKFJlKWluaXQgQlNQIHN0YXRlIG5vdyB0aGF0IGRlZmF1bHRfYnRpX2lzdF9p bmZvIGhhcyBiZWVuIGNhbGN1bGF0ZWQuICovCiAgICAgaW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0 YXRlKCk7CiAKKyAgICB4cHRpX2luaXRfZGVmYXVsdChmYWxzZSk7CisgICAgaWYgKCBvcHRfeHB0 aSA9PSAwICkKKyAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9OT19YUFRJ KTsKKyAgICBlbHNlCisgICAgICAgIHNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfTk9f WFBUSSk7CisKICAgICBwcmludF9kZXRhaWxzKHRodW5rKTsKIH0KIApkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQu aAppbmRleCBmMjQ5MWI0NDIzLi5iMjQ3NTc4M2Y4IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2N1cnJlbnQuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaApAQCAt NDQsNyArNDQsOCBAQCBzdHJ1Y3QgY3B1X2luZm8gewogICAgIC8qCiAgICAgICogT2YgdGhlIHR3 byBmb2xsb3dpbmcgZmllbGRzIHRoZSBsYXR0ZXIgaXMgYmVpbmcgc2V0IHRvIHRoZSBDUjMgdmFs dWUKICAgICAgKiB0byBiZSB1c2VkIG9uIHRoZSBnaXZlbiBwQ1BVIGZvciBsb2FkaW5nIHdoZW5l dmVyIDY0LWJpdCBQViBndWVzdAotICAgICAqIGNvbnRleHQgaXMgYmVpbmcgZW50ZXJlZC4gVGhl IHZhbHVlIG5ldmVyIGNoYW5nZXMgb25jZSBzZXQuCisgICAgICogY29udGV4dCBpcyBiZWluZyBl bnRlcmVkLiBBIHZhbHVlIG9mIHplcm8gaW5kaWNhdGVzIG5vIHNldHRpbmcgb2YgQ1IzCisgICAg ICogaXMgdG8gYmUgcGVyZm9ybWVkLgogICAgICAqIFRoZSBmb3JtZXIgaXMgdGhlIHZhbHVlIHRv IHJlc3RvcmUgd2hlbiByZS1lbnRlcmluZyBYZW4sIGlmIGFueS4gSU9XCiAgICAgICogaXRzIHZh bHVlIGJlaW5nIHplcm8gbWVhbnMgdGhlcmUncyBub3RoaW5nIHRvIHJlc3RvcmUuIEhvd2V2ZXIs IGl0cwogICAgICAqIHZhbHVlIGNhbiBhbHNvIGJlIG5lZ2F0aXZlLCBpbmRpY2F0aW5nIHRvIHRo ZSBleGl0LXRvLVhlbiBjb2RlIHRoYXQKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv ZG9tYWluLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCmluZGV4IGExMmFlNDdmMWIu LmVkNDE5OTkzMWEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKKysr IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaApAQCAtMjUzLDYgKzI1Myw5IEBAIHN0cnVj dCBwdl9kb21haW4KIAogICAgIGF0b21pY190IG5yX2w0X3BhZ2VzOwogCisgICAgLyogWFBUSSBh Y3RpdmU/ICovCisgICAgYm9vbCB4cHRpOworCiAgICAgLyogbWFwX2RvbWFpbl9wYWdlKCkgbWFw cGluZyBjYWNoZS4gKi8KICAgICBzdHJ1Y3QgbWFwY2FjaGVfZG9tYWluIG1hcGNhY2hlOwogCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNfY3RybC5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9zcGVjX2N0cmwuaAppbmRleCA1YWI0ZmYzZjY4Li5iNGZhNDMyNjllIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNfY3RybC5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvc3BlY19jdHJsLmgKQEAgLTI5LDYgKzI5LDEwIEBAIHZvaWQgaW5pdF9zcGVjdWxhdGlv bl9taXRpZ2F0aW9ucyh2b2lkKTsKIGV4dGVybiBib29sIG9wdF9pYnBiOwogZXh0ZXJuIHVpbnQ4 X3QgZGVmYXVsdF9idGlfaXN0X2luZm87CiAKK2V4dGVybiB1aW50OF90IG9wdF94cHRpOworI2Rl ZmluZSBPUFRfWFBUSV9ET00wICAweDAxCisjZGVmaW5lIE9QVF9YUFRJX0RPTVUgIDB4MDIKKwog c3RhdGljIGlubGluZSB2b2lkIGluaXRfc2hhZG93X3NwZWNfY3RybF9zdGF0ZSh2b2lkKQogewog ICAgIHN0cnVjdCBjcHVfaW5mbyAqaW5mbyA9IGdldF9jcHVfaW5mbygpOwotLSAKMi4xMy42CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==