From: Juergen Gross Subject: [PATCH v6.1 3/9] xen/x86: support per-domain flag for xpti Date: Tue, 10 Apr 2018 14:33:57 +0200 Message-ID: <20180410123358.10596-1-jgross@suse.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 1f5sTU-0007HU-E9 for xen-devel@lists.xenproject.org; Tue, 10 Apr 2018 12:34:12 +0000 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 bi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggYjUyMWRiMjVh OC4uODg3ZDc1YTk4MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVu L2FyY2gveDg2L3NldHVwLmMKQEAgLTE2OSw5ICsxNjksNiBAQCBzdGF0aWMgaW50IF9faW5pdCBw YXJzZV9zbWFwX3BhcmFtKGNvbnN0IGNoYXIgKnMpCiB9CiBjdXN0b21fcGFyYW0oInNtYXAiLCBw YXJzZV9zbWFwX3BhcmFtKTsKIAotc3RhdGljIGludDhfdCBfX2luaXRkYXRhIG9wdF94cHRpID0g LTE7Ci1ib29sZWFuX3BhcmFtKCJ4cHRpIiwgb3B0X3hwdGkpOwotCiBib29sIF9fcmVhZF9tb3N0 bHkgYWNwaV9kaXNhYmxlZDsKIGJvb2wgX19pbml0ZGF0YSBhY3BpX2ZvcmNlOwogc3RhdGljIGNo YXIgX19pbml0ZGF0YSBhY3BpX3BhcmFtWzEwXSA9ICIiOwpAQCAtMTU0NiwyMiArMTU0Myw2IEBA IHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAK ICAgICBjcjRfcHYzMl9tYXNrID0gbW11X2NyNF9mZWF0dXJlcyAmIFhFTl9DUjRfUFYzMl9CSVRT OwogCi0gICAgaWYgKCBvcHRfeHB0aSA8IDAgKQotICAgIHsKLSAgICAgICAgdWludDY0X3QgY2Fw cyA9IDA7Ci0KLSAgICAgICAgaWYgKCBib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZF TkRPUl9BTUQgKQotICAgICAgICAgICAgY2FwcyA9IEFSQ0hfQ0FQQUJJTElUSUVTX1JEQ0xfTk87 Ci0gICAgICAgIGVsc2UgaWYgKCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQVJDSF9DQVBTKSAp Ci0gICAgICAgICAgICByZG1zcmwoTVNSX0FSQ0hfQ0FQQUJJTElUSUVTLCBjYXBzKTsKLQotICAg ICAgICBvcHRfeHB0aSA9ICEoY2FwcyAmIEFSQ0hfQ0FQQUJJTElUSUVTX1JEQ0xfTk8pOwotICAg IH0KLSAgICBpZiAoIG9wdF94cHRpICkKLSAgICAgICAgc2V0dXBfY2xlYXJfY3B1X2NhcChYODZf RkVBVFVSRV9OT19YUFRJKTsKLSAgICBlbHNlCi0gICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAo WDg2X0ZFQVRVUkVfTk9fWFBUSSk7Ci0KICAgICBpZiAoIGNwdV9oYXNfZnNnc2Jhc2UgKQogICAg ICAgICBzZXRfaW5fY3I0KFg4Nl9DUjRfRlNHU0JBU0UpOwogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvc21wYm9vdC5jIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwppbmRleCBlN2Y1NTA0ZWMz Li5iNGNmYjAxZmQ5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jCisrKyBiL3hl bi9hcmNoL3g4Ni9zbXBib290LmMKQEAgLTMyNSw3ICszMjUsNyBAQCB2b2lkIHN0YXJ0X3NlY29u ZGFyeSh2b2lkICp1bnVzZWQpCiAgICAgc3Bpbl9kZWJ1Z19kaXNhYmxlKCk7CiAKICAgICBnZXRf Y3B1X2luZm8oKS0+eGVuX2NyMyA9IDA7Ci0gICAgZ2V0X2NwdV9pbmZvKCktPnB2X2NyMyA9IHRo aXNfY3B1KHJvb3RfcGd0KSA/IF9fcGEodGhpc19jcHUocm9vdF9wZ3QpKSA6IDA7CisgICAgZ2V0 X2NwdV9pbmZvKCktPnB2X2NyMyA9IDA7CiAKICAgICBsb2FkX3N5c3RlbV90YWJsZXMoKTsKIApA QCAtMTA0NCw3ICsxMDQ0LDcgQEAgdm9pZCBfX2luaXQgc21wX3ByZXBhcmVfY3B1cyh1bnNpZ25l ZCBpbnQgbWF4X2NwdXMpCiAgICAgICAgIHBhbmljKCJFcnJvciAlZCBzZXR0aW5nIHVwIFBWIHJv b3QgcGFnZSB0YWJsZVxuIiwgcmMpOwogICAgIGlmICggcGVyX2NwdShyb290X3BndCwgMCkgKQog ICAgIHsKLSAgICAgICAgZ2V0X2NwdV9pbmZvKCktPnB2X2NyMyA9IF9fcGEocGVyX2NwdShyb290 X3BndCwgMCkpOworICAgICAgICBnZXRfY3B1X2luZm8oKS0+cHZfY3IzID0gMDsKIAogICAgICAg ICAvKgogICAgICAgICAgKiBBbGwgZW50cnkgcG9pbnRzIHdoaWNoIG1heSBuZWVkIHRvIHN3aXRj aCBwYWdlIHRhYmxlcyBoYXZlIHRvIHN0YXJ0CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc3Bl Y19jdHJsLmMgYi94ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMKaW5kZXggNWI1ZWM5MGZkOC4uMjMw MGU5ZWJhOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCisrKyBiL3hlbi9h cmNoL3g4Ni9zcGVjX2N0cmwuYwpAQCAtMTkzLDYgKzE5Myw3MCBAQCBzdGF0aWMgYm9vbCBfX2lu aXQgcmV0cG9saW5lX3NhZmUodm9pZCkKICAgICB9CiB9CiAKKyNkZWZpbmUgT1BUX1hQVElfREVG QVVMVCAgMHhmZgordWludDhfdCBfX3JlYWRfbW9zdGx5IG9wdF94cHRpID0gT1BUX1hQVElfREVG QVVMVDsKKworc3RhdGljIF9faW5pdCB2b2lkIHhwdGlfaW5pdF9kZWZhdWx0KGJvb2wgZm9yY2Up Cit7CisgICAgdWludDY0X3QgY2FwcyA9IDA7CisKKyAgICBpZiAoICFmb3JjZSAmJiAob3B0X3hw dGkgIT0gT1BUX1hQVElfREVGQVVMVCkgKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIGJv b3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCApCisgICAgICAgIGNhcHMg PSBBUkNIX0NBUEFCSUxJVElFU19SRENMX05POworICAgIGVsc2UgaWYgKCBib290X2NwdV9oYXMo WDg2X0ZFQVRVUkVfQVJDSF9DQVBTKSApCisgICAgICAgIHJkbXNybChNU1JfQVJDSF9DQVBBQklM SVRJRVMsIGNhcHMpOworCisgICAgaWYgKCBjYXBzICYgQVJDSF9DQVBBQklMSVRJRVNfUkRDTF9O TyApCisgICAgICAgIG9wdF94cHRpID0gMDsKKyAgICBlbHNlCisgICAgICAgIG9wdF94cHRpID0g T1BUX1hQVElfRE9NMCB8IE9QVF9YUFRJX0RPTVU7Cit9CisKK3N0YXRpYyBfX2luaXQgaW50IHBh cnNlX3hwdGkoY29uc3QgY2hhciAqcykKK3sKKyAgICBjb25zdCBjaGFyICpzczsKKyAgICBpbnQg dmFsLCByYyA9IDA7CisKKyAgICB4cHRpX2luaXRfZGVmYXVsdChmYWxzZSk7CisKKyAgICBkbyB7 CisgICAgICAgIHNzID0gc3RyY2hyKHMsICcsJyk7CisgICAgICAgIGlmICggIXNzICkKKyAgICAg ICAgICAgIHNzID0gc3RyY2hyKHMsICdcMCcpOworCisgICAgICAgIHN3aXRjaCAoIHBhcnNlX2Jv b2wocywgc3MpICkKKyAgICAgICAgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBvcHRf eHB0aSA9IDA7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDE6CisgICAgICAg ICAgICBvcHRfeHB0aSA9IE9QVF9YUFRJX0RPTTAgfCBPUFRfWFBUSV9ET01VOworICAgICAgICAg ICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmICggIXN0cmNtcChz LCAiZGVmYXVsdCIpICkKKyAgICAgICAgICAgICAgICB4cHRpX2luaXRfZGVmYXVsdCh0cnVlKTsK KyAgICAgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigiZG9tMCIsIHMsIHNz KSkgPj0gMCApCisgICAgICAgICAgICAgICAgb3B0X3hwdGkgPSAob3B0X3hwdGkgJiB+T1BUX1hQ VElfRE9NMCkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbCA/IE9QVF9YUFRJX0RP TTAgOiAwKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCAodmFsID0gcGFyc2VfYm9vbGVhbigiZG9t dSIsIHMsIHNzKSkgPj0gMCApCisgICAgICAgICAgICAgICAgb3B0X3hwdGkgPSAob3B0X3hwdGkg JiB+T1BUX1hQVElfRE9NVSkgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbCA/IE9Q VF9YUFRJX0RPTVUgOiAwKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYyA9 IC1FSU5WQUw7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHMgPSBz cyArIDE7CisgICAgfSB3aGlsZSAoICpzcyApOworCisgICAgcmV0dXJuIHJjOworfQorY3VzdG9t X3BhcmFtKCJ4cHRpIiwgcGFyc2VfeHB0aSk7CisKIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp b25fbWl0aWdhdGlvbnModm9pZCkKIHsKICAgICBlbnVtIGluZF90aHVuayB0aHVuayA9IFRIVU5L X0RFRkFVTFQ7CkBAIC0zMTAsNiArMzc0LDEyIEBAIHZvaWQgX19pbml0IGluaXRfc3BlY3VsYXRp b25fbWl0aWdhdGlvbnModm9pZCkKICAgICAvKiAoUmUpaW5pdCBCU1Agc3RhdGUgbm93IHRoYXQg ZGVmYXVsdF9idGlfaXN0X2luZm8gaGFzIGJlZW4gY2FsY3VsYXRlZC4gKi8KICAgICBpbml0X3No YWRvd19zcGVjX2N0cmxfc3RhdGUoKTsKIAorICAgIHhwdGlfaW5pdF9kZWZhdWx0KGZhbHNlKTsK KyAgICBpZiAoIG9wdF94cHRpID09IDAgKQorICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4 Nl9GRUFUVVJFX05PX1hQVEkpOworICAgIGVsc2UKKyAgICAgICAgc2V0dXBfY2xlYXJfY3B1X2Nh cChYODZfRkVBVFVSRV9OT19YUFRJKTsKKwogICAgIHByaW50X2RldGFpbHModGh1bmspOwogfQog CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJlbnQuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvY3VycmVudC5oCmluZGV4IGYyNDkxYjQ0MjMuLmIyNDc1NzgzZjggMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvY3VycmVudC5oCkBAIC00NCw3ICs0NCw4IEBAIHN0cnVjdCBjcHVfaW5mbyB7CiAgICAgLyoK ICAgICAgKiBPZiB0aGUgdHdvIGZvbGxvd2luZyBmaWVsZHMgdGhlIGxhdHRlciBpcyBiZWluZyBz ZXQgdG8gdGhlIENSMyB2YWx1ZQogICAgICAqIHRvIGJlIHVzZWQgb24gdGhlIGdpdmVuIHBDUFUg Zm9yIGxvYWRpbmcgd2hlbmV2ZXIgNjQtYml0IFBWIGd1ZXN0Ci0gICAgICogY29udGV4dCBpcyBi ZWluZyBlbnRlcmVkLiBUaGUgdmFsdWUgbmV2ZXIgY2hhbmdlcyBvbmNlIHNldC4KKyAgICAgKiBj b250ZXh0IGlzIGJlaW5nIGVudGVyZWQuIEEgdmFsdWUgb2YgemVybyBpbmRpY2F0ZXMgbm8gc2V0 dGluZyBvZiBDUjMKKyAgICAgKiBpcyB0byBiZSBwZXJmb3JtZWQuCiAgICAgICogVGhlIGZvcm1l ciBpcyB0aGUgdmFsdWUgdG8gcmVzdG9yZSB3aGVuIHJlLWVudGVyaW5nIFhlbiwgaWYgYW55LiBJ T1cKICAgICAgKiBpdHMgdmFsdWUgYmVpbmcgemVybyBtZWFucyB0aGVyZSdzIG5vdGhpbmcgdG8g cmVzdG9yZS4gSG93ZXZlciwgaXRzCiAgICAgICogdmFsdWUgY2FuIGFsc28gYmUgbmVnYXRpdmUs IGluZGljYXRpbmcgdG8gdGhlIGV4aXQtdG8tWGVuIGNvZGUgdGhhdApkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgK aW5kZXggYTEyYWU0N2YxYi4uZWQ0MTk5OTMxYSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCkBAIC0yNTMs NiArMjUzLDkgQEAgc3RydWN0IHB2X2RvbWFpbgogCiAgICAgYXRvbWljX3QgbnJfbDRfcGFnZXM7 CiAKKyAgICAvKiBYUFRJIGFjdGl2ZT8gKi8KKyAgICBib29sIHhwdGk7CisKICAgICAvKiBtYXBf ZG9tYWluX3BhZ2UoKSBtYXBwaW5nIGNhY2hlLiAqLwogICAgIHN0cnVjdCBtYXBjYWNoZV9kb21h aW4gbWFwY2FjaGU7CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJs LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNfY3RybC5oCmluZGV4IDVhYjRmZjNmNjguLmI0 ZmE0MzI2OWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsLmgKKysr IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmwuaApAQCAtMjksNiArMjksMTAgQEAgdm9p ZCBpbml0X3NwZWN1bGF0aW9uX21pdGlnYXRpb25zKHZvaWQpOwogZXh0ZXJuIGJvb2wgb3B0X2li cGI7CiBleHRlcm4gdWludDhfdCBkZWZhdWx0X2J0aV9pc3RfaW5mbzsKIAorZXh0ZXJuIHVpbnQ4 X3Qgb3B0X3hwdGk7CisjZGVmaW5lIE9QVF9YUFRJX0RPTTAgIDB4MDEKKyNkZWZpbmUgT1BUX1hQ VElfRE9NVSAgMHgwMgorCiBzdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9zaGFkb3dfc3BlY19jdHJs X3N0YXRlKHZvaWQpCiB7CiAgICAgc3RydWN0IGNwdV9pbmZvICppbmZvID0gZ2V0X2NwdV9pbmZv KCk7Ci0tIAoyLjEzLjYKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs