From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v7 04/14] efi: create efi_enabled() Date: Fri, 23 Sep 2016 23:47:29 +0200 Message-ID: <1474667259-27290-5-git-send-email-daniel.kiper@oracle.com> References: <1474667259-27290-1-git-send-email-daniel.kiper@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bnYKg-0003o1-1O for xen-devel@lists.xenproject.org; Fri, 23 Sep 2016 21:48:34 +0000 In-Reply-To: <1474667259-27290-1-git-send-email-daniel.kiper@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: jgross@suse.com, sstabellini@kernel.org, andrew.cooper3@citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, ning.sun@intel.com, julien.grall@arm.com, david.vrabel@citrix.com, jbeulich@suse.com, qiaowei.ren@intel.com, gang.wei@intel.com, fu.wei@linaro.org List-Id: xen-devel@lists.xenproject.org Rmlyc3Qgb2YgYWxsIHdlIG5lZWQgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGxlZ2FjeSBCSU9T CmFuZCBFRkkgcGxhdGZvcm1zIGR1cmluZyBydW50aW1lLCBub3QgZHVyaW5nIGJ1aWxkLCBiZWNh dXNlCm9uZSBpbWFnZSB3aWxsIGhhdmUgbGVnYWN5IGFuZCBFRkkgY29kZSBhbmQgY2FuIGJlIGV4 ZWN1dGVkCm9uIGJvdGggcGxhdGZvcm1zLiBBZGRpdGlvbmFsbHksIHdlIG5lZWQgbW9yZSBmaW5l IGdyYWluZWQKa25vd2xlZGdlIGFib3V0IEVGSSBlbnZpcm9ubWVudCBhbmQgY2hlY2sgZm9yIEVG SSBwbGF0Zm9ybQphbmQgRUZJIGxvYWRlciBzZXBhcmF0ZWx5IHRvIHByb3Blcmx5IHN1cHBvcnQg bXVsdGlib290Mgpwcm90b2NvbC4gSW4gZ2VuZXJhbCBYZW4gbG9hZGVkIGJ5IHRoaXMgcHJvdG9j b2wgdXNlcyBtZW1vcnkKbWFwcGluZ3MgYW5kIGxvYWRlZCBtb2R1bGVzIGluIHNpbWlsYXIgd2F5 IHRvIFhlbiBsb2FkZWQgYnkKbXVsdGlib290ICh2MSkgcHJvdG9jb2wuIEhlbmNlLCBjcmVhdGUg ZWZpX2VuYWJsZWQoKSB3aGljaApjaGVja3MgYXZhaWxhYmxlIGZlYXR1cmVzIGluIGVmaV9mbGFn cy4gVGhpcyBwYXRjaCBkZWZpbmVzCkVGSV9CT09ULCBFRklfTE9BREVSIGFuZCBFRklfUlMgZmVh dHVyZXMuIEVGSV9CT09UIGlzIGVxdWFsCnRvIG9sZCBlZmlfZW5hYmxlZCA9PSAxLiBFRklfUlMg ZWFzZSBjb250cm9sIG9uIHJ1bnRpbWUKc2VydmljZXMgdXNhZ2UuIEVGSV9MT0FERVIgdGVsbHMg dGhhdCBYZW4gd2FzIGxvYWRlZApkaXJlY3RseSBmcm9tIEVGSSBhcyBQRSBleGVjdXRhYmxlLgoK U3VnZ2VzdGVkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClNpZ25lZC1vZmYt Ynk6IERhbmllbCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2NyAtIHN1Z2dlc3Rpb25zL2ZpeGVz OgogICAtIHJlbW92ZSBlZmlfZW5hYmxlZChFRklfUlMpIGNoZWNrIGZyb20gbWFwY2FjaGVfY3Vy cmVudF92Y3B1KCkKICAgICAoc3VnZ2VzdGVkIGJ5IERhbmllbCBLaXBlciBhbmQgSmFuIEJldWxp Y2gpLAogICAtIHJlbW92ZSBCVUcoKSBmcm9tIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jOmVmaV9y c191c2luZ19wZ3RhYmxlcygpCiAgICAgKHN1Z2dlc3RlZCBieSBEYW5pZWwgS2lwZXIgYW5kIEph biBCZXVsaWNoKS4KCnY2IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gZGVmaW5lIGVmaV9lbmFi bGVkKCkgYXMgImJvb2wgZWZpX2VuYWJsZWQodW5zaWduZWQgaW50IGZlYXR1cmUpIgogICAgIGlu c3RlYWQgb2YgImJvb2xfdCBlZmlfZW5hYmxlZChpbnQgZmVhdHVyZSkiCiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gZGVmaW5lIGVmaV9mbGFncyBhcyB1bnNpZ25lZCBpbnQK ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB2YXJpb3VzIG1pbm9yIGNsZWFu dXBzIGFuZCBmaXhlcwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgoKdjUgLSBzdWdn ZXN0aW9ucy9maXhlczoKICAgLSBzcXVhc2ggdGhyZWUgcGF0Y2hlcyBpbnRvIG9uZQogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGludHJvZHVjZSBhbGwgZmVhdHVyZXMgYXQg b25jZQogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGVmaV9lbmFibGVkKCkg cmV0dXJucyBib29sX3QKICAgICBpbnN0ZWFkIG9mIHVuc2lnbmVkIGludAogICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIHVwZGF0ZSBjb21taXQgbWVzc2FnZS4KCnY0IC0gc3Vn Z2VzdGlvbnMvZml4ZXM6CiAgIC0gcmVuYW1lIEVGSV9QTEFURk9STSB0byBFRklfQk9PVAogICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIG1vdmUgRUZJX0JPT1QgZGVmaW5pdGlv biB0byBlZmkgc3RydWN0IGRlZmluaXRpb24KICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSByZW1vdmUgdW5uZWVkZWQgZWZpLmZsYWdzIGluaXRpYWxpemF0aW9uCiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXNlIF9fc2V0X2JpdCgpIGluc3RlYWQgb2Yg c2V0X2JpdCgpIGlmIHBvc3NpYmxlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAg IC0gZG8gZWZpX2VuYWJsZWQoKSBjbGVhbnVwCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGlj aCksCiAgIC0gaW1wcm92ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UuCgp2MyAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgog ICAtIGRlZmluZSBlZmkgc3RydWN0IGluIHhlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jCiAgICAgaW4g ZWFybGllciBwYXRjaAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJv dmUgY29tbWVudHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3Zl IGNvbW1pdCBtZXNzYWdlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkuCi0tLQogeGVu L2FyY2gveDg2L2RtaV9zY2FuLmMgICAgfCAgICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9kb21haW5f cGFnZS5jIHwgICAgMiArLQogeGVuL2FyY2gveDg2L2VmaS9zdHViLmMgICAgfCAgICA4ICsrKyst LS0tCiB4ZW4vYXJjaC94ODYvbXBwYXJzZS5jICAgICB8ICAgIDQgKystLQogeGVuL2FyY2gveDg2 L3NldHVwLmMgICAgICAgfCAgIDEyICsrKysrKystLS0tLQogeGVuL2FyY2gveDg2L3NodXRkb3du LmMgICAgfCAgICAyICstCiB4ZW4vYXJjaC94ODYvdGltZS5jICAgICAgICB8ICAgIDIgKy0KIHhl bi9jb21tb24vZWZpL2Jvb3QuYyAgICAgIHwgICAxOSArKysrKysrKysrKysrKystLS0tCiB4ZW4v Y29tbW9uL2VmaS9ydW50aW1lLmMgICB8ICAgMTQgKysrKysrKystLS0tLS0KIHhlbi9jb21tb24v dmVyc2lvbi5jICAgICAgIHwgICAgMiArLQogeGVuL2RyaXZlcnMvYWNwaS9vc2wuYyAgICAgfCAg ICAyICstCiB4ZW4vaW5jbHVkZS94ZW4vZWZpLmggICAgICB8ICAgIDggKysrKysrLS0KIDEyIGZp bGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9kbWlfc2Nhbi5jIGIveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMKaW5k ZXggYjA0OWUzMS4uOGRjYjY0MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMK KysrIGIveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMKQEAgLTIzOCw3ICsyMzgsNyBAQCBjb25zdCBj aGFyICpfX2luaXQgZG1pX2dldF90YWJsZShwYWRkcl90ICpiYXNlLCB1MzIgKmxlbikKIHsKIAlz dGF0aWMgdW5zaWduZWQgaW50IF9faW5pdGRhdGEgaW5zdGFuY2U7CiAKLQlpZiAoZWZpX2VuYWJs ZWQpIHsKKwlpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpKSB7CiAJCWlmIChlZmlfc21iaW9zM19z aXplICYmICEoaW5zdGFuY2UgJiAxKSkgewogCQkJKmJhc2UgPSBlZmlfc21iaW9zM19hZGRyZXNz OwogCQkJKmxlbiA9IGVmaV9zbWJpb3MzX3NpemU7CkBAIC02OTYsNyArNjk2LDcgQEAgc3RhdGlj IHZvaWQgX19pbml0IGRtaV9kZWNvZGUoc3RydWN0IGRtaV9oZWFkZXIgKmRtKQogCiB2b2lkIF9f aW5pdCBkbWlfc2Nhbl9tYWNoaW5lKHZvaWQpCiB7Ci0JaWYgKCghZWZpX2VuYWJsZWQgPyBkbWlf aXRlcmF0ZShkbWlfZGVjb2RlKSA6CisJaWYgKCghZWZpX2VuYWJsZWQoRUZJX0JPT1QpID8gZG1p X2l0ZXJhdGUoZG1pX2RlY29kZSkgOgogCSAgICAgICAgICAgICAgICAgICAgZG1pX2VmaV9pdGVy YXRlKGRtaV9kZWNvZGUpKSA9PSAwKQogIAkJZG1pX2NoZWNrX3N5c3RlbShkbWlfYmxhY2tsaXN0 KTsKIAllbHNlCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9h cmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4IGQ4NmY4ZmUuLmE1OGVmOGUgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFn ZS5jCkBAIC0zNiw3ICszNiw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKm1hcGNhY2hl X2N1cnJlbnRfdmNwdSh2b2lkKQogICAgICAqIGRvbWFpbidzIHBhZ2UgdGFibGVzIGJ1dCBjdXJy ZW50IG1heSBwb2ludCBhdCBhbm90aGVyIGRvbWFpbidzIFZDUFUuCiAgICAgICogUmV0dXJuIE5V TEwgYXMgdGhvdWdoIGN1cnJlbnQgaXMgbm90IHByb3Blcmx5IHNldCB1cCB5ZXQuCiAgICAgICov Ci0gICAgaWYgKCBlZmlfZW5hYmxlZCAmJiBlZmlfcnNfdXNpbmdfcGd0YWJsZXMoKSApCisgICAg aWYgKCBlZmlfcnNfdXNpbmdfcGd0YWJsZXMoKSApCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAg ICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9lZmkvc3R1Yi5jIGIveGVuL2FyY2gveDg2 L2VmaS9zdHViLmMKaW5kZXggMDdjMmJkMC4uNDE1ODEyNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2VmaS9zdHViLmMKKysrIGIveGVuL2FyY2gveDg2L2VmaS9zdHViLmMKQEAgLTQsOSArNCwx MCBAQAogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDxhc20vcGFnZS5oPgogCi0jaWZu ZGVmIGVmaV9lbmFibGVkCi1jb25zdCBib29sX3QgZWZpX2VuYWJsZWQgPSAwOwotI2VuZGlmCiti b29sIGVmaV9lbmFibGVkKHVuc2lnbmVkIGludCBmZWF0dXJlKQoreworICAgIHJldHVybiBmYWxz ZTsKK30KIAogdm9pZCBfX2luaXQgZWZpX2luaXRfbWVtb3J5KHZvaWQpIHsgfQogCkBAIC0xNCw3 ICsxNSw2IEBAIHZvaWQgZWZpX3VwZGF0ZV9sNF9wZ3RhYmxlKHVuc2lnbmVkIGludCBsNGlkeCwg bDRfcGdlbnRyeV90IGw0ZSkgeyB9CiAKIGJvb2xfdCBlZmlfcnNfdXNpbmdfcGd0YWJsZXModm9p ZCkKIHsKLSAgICBCVUcoKTsKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21wcGFyc2UuYyBiL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMKaW5kZXggZWY2NTU3Yy4u YzNkNWJkYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21wcGFyc2UuYworKysgYi94ZW4vYXJj aC94ODYvbXBwYXJzZS5jCkBAIC01NjQsNyArNTY0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9f aW5pdCBjb25zdHJ1Y3RfZGVmYXVsdF9JU0FfbXB0YWJsZShpbnQgbXBjX2RlZmF1bHRfdHlwZSkK IAogc3RhdGljIF9faW5pdCB2b2lkIGVmaV91bm1hcF9tcGYodm9pZCkKIHsKLQlpZiAoZWZpX2Vu YWJsZWQpCisJaWYgKGVmaV9lbmFibGVkKEVGSV9CT09UKSkKIAkJY2xlYXJfZml4bWFwKEZJWF9F RklfTVBGKTsKIH0KIApAQCAtNzIyLDcgKzcyMiw3IEBAIHZvaWQgX19pbml0IGZpbmRfc21wX2Nv bmZpZyAodm9pZCkKIHsKIAl1bnNpZ25lZCBpbnQgYWRkcmVzczsKIAotCWlmIChlZmlfZW5hYmxl ZCkgeworCWlmIChlZmlfZW5hYmxlZChFRklfQk9PVCkpIHsKIAkJZWZpX2NoZWNrX2NvbmZpZygp OwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4v YXJjaC94ODYvc2V0dXAuYwppbmRleCA4YWU4OTdhLi4wNmYzOTcwIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtNDM5LDggKzQz OSw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV92aWRlb19pbmZvKHZvaWQpCiB7CiAgICAg c3RydWN0IGJvb3RfdmlkZW9faW5mbyAqYnZpID0gJmJvb3RzeW0oYm9vdF92aWRfaW5mbyk7CiAK LSAgICAvKiBUaGUgRUZJIGxvYWRlciBmaWxscyB2Z2FfY29uc29sZV9pbmZvIGRpcmVjdGx5LiAq LwotICAgIGlmICggZWZpX2VuYWJsZWQgKQorICAgIC8qIHZnYV9jb25zb2xlX2luZm8gaXMgZmls bGVkIGRpcmVjdGx5IG9uIEVGSSBwbGF0Zm9ybS4gKi8KKyAgICBpZiAoIGVmaV9lbmFibGVkKEVG SV9CT09UKSApCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICggKGJ2aS0+b3JpZ192aWRlb19p c1ZHQSA9PSAxKSAmJiAoYnZpLT5vcmlnX3ZpZGVvX21vZGUgPT0gMykgKQpAQCAtNzI2LDcgKzcy Niw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJp X3ApCiAgICAgaWYgKCAhKG1iaS0+ZmxhZ3MgJiBNQklfTU9EVUxFUykgfHwgKG1iaS0+bW9kc19j b3VudCA9PSAwKSApCiAgICAgICAgIHBhbmljKCJkb20wIGtlcm5lbCBub3Qgc3BlY2lmaWVkLiBD aGVjayBib290bG9hZGVyIGNvbmZpZ3VyYXRpb24uIik7CiAKLSAgICBpZiAoIGVmaV9lbmFibGVk ICkKKyAgICBpZiAoIGVmaV9lbmFibGVkKEVGSV9MT0FERVIpICkKICAgICB7CiAgICAgICAgIHNl dF9wZHhfcmFuZ2UoeGVuX3BoeXNfc3RhcnQgPj4gUEFHRV9TSElGVCwKICAgICAgICAgICAgICAg ICAgICAgICAoeGVuX3BoeXNfc3RhcnQgKyBCT09UU1RSQVBfTUFQX0JBU0UpID4+IFBBR0VfU0hJ RlQpOwpAQCAtNzQxLDYgKzc0MSw4IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVu KHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICAgICAgbWVtbWFwX3R5cGUgPSBsb2FkZXI7CiAg ICAgfQorICAgIGVsc2UgaWYgKCBlZmlfZW5hYmxlZChFRklfQk9PVCkgKQorICAgICAgICBtZW1t YXBfdHlwZSA9ICJFRkkiOwogICAgIGVsc2UgaWYgKCBlODIwX3Jhd19uciAhPSAwICkKICAgICB7 CiAgICAgICAgIG1lbW1hcF90eXBlID0gIlhlbi1lODIwIjsKQEAgLTgzNyw3ICs4MzksNyBAQCB2 b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAg ICAqIHdlIGNhbiByZWxvY2F0ZSB0aGUgZG9tMCBrZXJuZWwgYW5kIG90aGVyIG11bHRpYm9vdCBt b2R1bGVzLiBBbHNvLCBvbgogICAgICAqIHg4Ni82NCwgd2UgcmVsb2NhdGUgWGVuIHRvIGhpZ2hl ciBtZW1vcnkuCiAgICAgICovCi0gICAgZm9yICggaSA9IDA7ICFlZmlfZW5hYmxlZCAmJiBpIDwg bWJpLT5tb2RzX2NvdW50OyBpKysgKQorICAgIGZvciAoIGkgPSAwOyAhZWZpX2VuYWJsZWQoRUZJ X0xPQURFUikgJiYgaSA8IG1iaS0+bW9kc19jb3VudDsgaSsrICkKICAgICB7CiAgICAgICAgIGlm ICggbW9kW2ldLm1vZF9zdGFydCAmIChQQUdFX1NJWkUgLSAxKSApCiAgICAgICAgICAgICBwYW5p YygiQm9vdGxvYWRlciBkaWRuJ3QgaG9ub3IgbW9kdWxlIGFsaWdubWVudCByZXF1ZXN0LiIpOwpA QCAtMTA3OCw3ICsxMDgwLDcgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5z aWduZWQgbG9uZyBtYmlfcCkKIAogICAgIGlmICggIXhlbl9waHlzX3N0YXJ0ICkKICAgICAgICAg cGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlbG9jYXRlIFhlbi4iKTsKLSAgICByZXNlcnZl X2U4MjBfcmFtKCZib290X2U4MjAsIGVmaV9lbmFibGVkID8gbWJpLT5tZW1fdXBwZXIgOiBfX3Bh KCZfc3RhcnQpLAorICAgIHJlc2VydmVfZTgyMF9yYW0oJmJvb3RfZTgyMCwgZWZpX2VuYWJsZWQo RUZJX0xPQURFUikgPyBtYmktPm1lbV91cHBlciA6IF9fcGEoJl9zdGFydCksCiAgICAgICAgICAg ICAgICAgICAgICBfX3BhKCZfZW5kKSk7CiAKICAgICAvKiBMYXRlIGtleGVjIHJlc2VydmF0aW9u IChkeW5hbWljIHN0YXJ0IGFkZHJlc3MpLiAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3No dXRkb3duLmMgYi94ZW4vYXJjaC94ODYvc2h1dGRvd24uYwppbmRleCAwZTE0OTlkLi41NGMyYzc5 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc2h1dGRvd24uYworKysgYi94ZW4vYXJjaC94ODYv c2h1dGRvd24uYwpAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgbWFjaGluZV9oYWx0KHZvaWQpCiBz dGF0aWMgdm9pZCBkZWZhdWx0X3JlYm9vdF90eXBlKHZvaWQpCiB7CiAgICAgaWYgKCByZWJvb3Rf dHlwZSA9PSBCT09UX0lOVkFMSUQgKQotICAgICAgICByZWJvb3RfdHlwZSA9IGVmaV9lbmFibGVk ID8gQk9PVF9FRkkKKyAgICAgICAgcmVib290X3R5cGUgPSBlZmlfZW5hYmxlZChFRklfUlMpID8g Qk9PVF9FRkkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFjcGlfZGlzYWJs ZWQgPyBCT09UX0tCRAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IEJPT1RfQUNQSTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90aW1lLmMg Yi94ZW4vYXJjaC94ODYvdGltZS5jCmluZGV4IDczZTBmOTguLmYwNDM5OTggMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni90aW1lLmMKKysrIGIveGVuL2FyY2gveDg2L3RpbWUuYwpAQCAtNzI3LDcg KzcyNyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdldF9jbW9zX3RpbWUodm9pZCkKICAgICBz dGF0aWMgYm9vbF90IF9fcmVhZF9tb3N0bHkgY21vc19ydGNfcHJvYmU7CiAgICAgYm9vbGVhbl9w YXJhbSgiY21vcy1ydGMtcHJvYmUiLCBjbW9zX3J0Y19wcm9iZSk7CiAKLSAgICBpZiAoIGVmaV9l bmFibGVkICkKKyAgICBpZiAoIGVmaV9lbmFibGVkKEVGSV9SUykgKQogICAgIHsKICAgICAgICAg cmVzID0gZWZpX2dldF90aW1lKCk7CiAgICAgICAgIGlmICggcmVzICkKZGlmZiAtLWdpdCBhL3hl bi9jb21tb24vZWZpL2Jvb3QuYyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYwppbmRleCAxMjVjOWNl Li41NjU0NGRjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2VmaS9ib290LmMKKysrIGIveGVuL2Nv bW1vbi9lZmkvYm9vdC5jCkBAIC05MzQsNiArOTM0LDEzIEBAIGVmaV9zdGFydChFRklfSEFORExF IEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKICAgICBjaGFyICpv cHRpb25fc3RyOwogICAgIGJvb2xfdCB1c2VfY2ZnX2ZpbGU7CiAKKyAgICBfX3NldF9iaXQoRUZJ X0JPT1QsICZlZmlfZmxhZ3MpOworICAgIF9fc2V0X2JpdChFRklfTE9BREVSLCAmZWZpX2ZsYWdz KTsKKworI2lmbmRlZiBDT05GSUdfQVJNIC8qIERpc2FibGVkIHVudGlsIHJ1bnRpbWUgc2Vydmlj ZXMgaW1wbGVtZW50ZWQuICovCisgICAgX19zZXRfYml0KEVGSV9SUywgJmVmaV9mbGFncyk7Cisj ZW5kaWYKKwogICAgIGVmaV9pbml0KEltYWdlSGFuZGxlLCBTeXN0ZW1UYWJsZSk7CiAKICAgICB1 c2VfY2ZnX2ZpbGUgPSBlZmlfYXJjaF91c2VfY29uZmlnX2ZpbGUoU3lzdGVtVGFibGUpOwpAQCAt MTE1Myw3ICsxMTYwLDYgQEAgZWZpX3N0YXJ0KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9T WVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQogCiAjaWZuZGVmIENPTkZJR19BUk0gLyogVE9ETyAt IHJ1bnRpbWUgc2VydmljZSBzdXBwb3J0ICovCiAKLXN0YXRpYyBib29sX3QgX19pbml0ZGF0YSBl ZmlfcnNfZW5hYmxlID0gMTsKIHN0YXRpYyBib29sX3QgX19pbml0ZGF0YSBlZmlfbWFwX3VjOwog CiBzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfZWZpX3BhcmFtKGNoYXIgKnMpCkBAIC0xMTcxLDcg KzExNzcsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX2VmaV9wYXJhbShjaGFyICpzKQog ICAgICAgICAgICAgKnNzID0gJ1wwJzsKIAogICAgICAgICBpZiAoICFzdHJjbXAocywgInJzIikg KQotICAgICAgICAgICAgZWZpX3JzX2VuYWJsZSA9IHZhbDsKKyAgICAgICAgeworICAgICAgICAg ICAgaWYgKCB2YWwgKQorICAgICAgICAgICAgICAgIF9fc2V0X2JpdChFRklfUlMsICZlZmlfZmxh Z3MpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIF9fY2xlYXJfYml0KEVGSV9S UywgJmVmaV9mbGFncyk7CisgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoICFzdHJjbXAocywg ImF0dHI9dWMiKSApCiAgICAgICAgICAgICBlZmlfbWFwX3VjID0gdmFsOwogCkBAIC0xMjU0LDcg KzEyNjUsNyBAQCB2b2lkIF9faW5pdCBlZmlfaW5pdF9tZW1vcnkodm9pZCkKICAgICAgICAgICAg ICAgIGRlc2MtPlBoeXNpY2FsU3RhcnQsIGRlc2MtPlBoeXNpY2FsU3RhcnQgKyBsZW4gLSAxLAog ICAgICAgICAgICAgICAgZGVzYy0+VHlwZSwgZGVzYy0+QXR0cmlidXRlKTsKIAotICAgICAgICBp ZiAoICFlZmlfcnNfZW5hYmxlIHx8CisgICAgICAgIGlmICggIWVmaV9lbmFibGVkKEVGSV9SUykg fHwKICAgICAgICAgICAgICAoIShkZXNjLT5BdHRyaWJ1dGUgJiBFRklfTUVNT1JZX1JVTlRJTUUp ICYmCiAgICAgICAgICAgICAgICghbWFwX2JzIHx8CiAgICAgICAgICAgICAgICAoZGVzYy0+VHlw ZSAhPSBFZmlCb290U2VydmljZXNDb2RlICYmCkBAIC0xMzI4LDcgKzEzMzksNyBAQCB2b2lkIF9f aW5pdCBlZmlfaW5pdF9tZW1vcnkodm9pZCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgg IWVmaV9yc19lbmFibGUgKQorICAgIGlmICggIWVmaV9lbmFibGVkKEVGSV9SUykgKQogICAgIHsK ICAgICAgICAgZWZpX2Z3X3ZlbmRvciA9IE5VTEw7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vZWZpL3J1bnRpbWUuYyBiL3hlbi9jb21tb24vZWZpL3J1bnRpbWUuYwpp bmRleCBjMjU2ODE0Li41ZjJkZTgwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2VmaS9ydW50aW1l LmMKKysrIGIveGVuL2NvbW1vbi9lZmkvcnVudGltZS5jCkBAIC0xMCwxMiArMTAsNiBAQCBERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRShDSEFSMTYpOwogCiAjaWZuZGVmIENPTVBBVAogCi0vKgotICog Q3VycmVudGx5IHJ1bnRpbWUgc2VydmljZXMgYXJlIG5vdCBpbXBsZW1lbnRlZCBvbiBBUk0uIFRv IGJvb3QgWGVuIHdpdGggQUNQSSwKLSAqIHNldCBlZmlfZW5hYmxlZCB0byAxLCBzbyB0aGF0IFhl biBjYW4gZ2V0IHRoZSBBQ1BJIHJvb3QgcG9pbnRlciBmcm9tIEVGSS4KLSAqLwotY29uc3QgYm9v bF90IGVmaV9lbmFibGVkID0gMTsKLQogI2lmbmRlZiBDT05GSUdfQVJNCiAjIGluY2x1ZGUgPGFz bS9pMzg3Lmg+CiAjIGluY2x1ZGUgPGFzbS94c3RhdGUuaD4KQEAgLTQzLDYgKzM3LDkgQEAgVUlO VDY0IF9fcmVhZF9tb3N0bHkgZWZpX2Jvb3RfbWF4X3Zhcl9zdG9yZV9zaXplOwogVUlOVDY0IF9f cmVhZF9tb3N0bHkgZWZpX2Jvb3RfcmVtYWluX3Zhcl9zdG9yZV9zaXplOwogVUlOVDY0IF9fcmVh ZF9tb3N0bHkgZWZpX2Jvb3RfbWF4X3Zhcl9zaXplOwogCisvKiBCaXQgZmllbGQgcmVwcmVzZW50 aW5nIGF2YWlsYWJsZSBFRkkgZmVhdHVyZXMvcHJvcGVydGllcy4gKi8KK3Vuc2lnbmVkIGludCBl ZmlfZmxhZ3M7CisKIHN0cnVjdCBlZmkgX19yZWFkX21vc3RseSBlZmkgPSB7CiAJLmFjcGkgICA9 IEVGSV9JTlZBTElEX1RBQkxFX0FERFIsCiAJLmFjcGkyMCA9IEVGSV9JTlZBTElEX1RBQkxFX0FE RFIsCkBAIC01Myw2ICs1MCwxMSBAQCBzdHJ1Y3QgZWZpIF9fcmVhZF9tb3N0bHkgZWZpID0gewog CiBjb25zdCBzdHJ1Y3QgZWZpX3BjaV9yb20gKl9fcmVhZF9tb3N0bHkgZWZpX3BjaV9yb21zOwog Citib29sIGVmaV9lbmFibGVkKHVuc2lnbmVkIGludCBmZWF0dXJlKQoreworICAgIHJldHVybiB0 ZXN0X2JpdChmZWF0dXJlLCAmZWZpX2ZsYWdzKTsKK30KKwogI2lmbmRlZiBDT05GSUdfQVJNIC8q IFRPRE8gLSBkaXNhYmxlZCB1bnRpbCBpbXBsZW1lbnRlZCBvbiBBUk0gKi8KIHVuc2lnbmVkIGxv bmcgZWZpX3JzX2VudGVyKHZvaWQpCiB7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3ZlcnNpb24u YyBiL3hlbi9jb21tb24vdmVyc2lvbi5jCmluZGV4IDBkMzFlMzguLjIyM2NiNTIgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vdmVyc2lvbi5jCisrKyBiL3hlbi9jb21tb24vdmVyc2lvbi5jCkBAIC0x NjAsNyArMTYwLDcgQEAgc3RhdGljIGludCBfX2luaXQgeGVuX2J1aWxkX2luaXQodm9pZCkKIAog I2lmZGVmIENPTkZJR19YODYKICAgICAvKiBBbHRlcm5hdGl2ZWx5IHdlIG1heSBoYXZlIGEgQ29k ZVZpZXcgcmVjb3JkIGZyb20gYW4gRUZJIGJ1aWxkLiAqLwotICAgIGlmICggcmMgJiYgZWZpX2Vu YWJsZWQgKQorICAgIGlmICggcmMgJiYgZWZpX2VuYWJsZWQoRUZJX0xPQURFUikgKQogICAgIHsK ICAgICAgICAgY29uc3Qgc3RydWN0IHBlX2V4dGVybmFsX2RlYnVnX2RpcmVjdG9yeSAqZGlyID0g KGNvbnN0IHZvaWQgKiluOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9hY3BpL29zbC5jIGIv eGVuL2RyaXZlcnMvYWNwaS9vc2wuYwppbmRleCA5YTQ5MDI5Li4zNjE2ZGZkIDEwMDY0NAotLS0g YS94ZW4vZHJpdmVycy9hY3BpL29zbC5jCisrKyBiL3hlbi9kcml2ZXJzL2FjcGkvb3NsLmMKQEAg LTY2LDcgKzY2LDcgQEAgdm9pZCBfX2luaXQgYWNwaV9vc192cHJpbnRmKGNvbnN0IGNoYXIgKmZt dCwgdmFfbGlzdCBhcmdzKQogCiBhY3BpX3BoeXNpY2FsX2FkZHJlc3MgX19pbml0IGFjcGlfb3Nf Z2V0X3Jvb3RfcG9pbnRlcih2b2lkKQogewotCWlmIChlZmlfZW5hYmxlZCkgeworCWlmIChlZmlf ZW5hYmxlZChFRklfQk9PVCkpIHsKIAkJaWYgKGVmaS5hY3BpMjAgIT0gRUZJX0lOVkFMSURfVEFC TEVfQUREUikKIAkJCXJldHVybiBlZmkuYWNwaTIwOwogCQllbHNlIGlmIChlZmkuYWNwaSAhPSBF RklfSU5WQUxJRF9UQUJMRV9BRERSKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2VmaS5o IGIveGVuL2luY2x1ZGUveGVuL2VmaS5oCmluZGV4IGU3NGRhZDEuLjY4YzY4YTggMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vZWZpLmgKQEAg LTUsMTAgKzUsMTMgQEAKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KICNlbmRpZgogCi1leHRlcm4g Y29uc3QgYm9vbF90IGVmaV9lbmFibGVkOwotCiAjZGVmaW5lIEVGSV9JTlZBTElEX1RBQkxFX0FE RFIgKH4wVUwpCiAKK2V4dGVybiB1bnNpZ25lZCBpbnQgZWZpX2ZsYWdzOworI2RlZmluZSBFRklf Qk9PVAkwCS8qIFdlcmUgd2UgYm9vdGVkIGZyb20gRUZJPyAqLworI2RlZmluZSBFRklfTE9BREVS CTEJLyogV2VyZSB3ZSBib290ZWQgZGlyZWN0bHkgZnJvbSBFRkkgbG9hZGVyPyAqLworI2RlZmlu ZSBFRklfUlMJCTIJLyogQ2FuIHdlIHVzZSBydW50aW1lIHNlcnZpY2VzPyAqLworCiAvKiBBZGQg ZmllbGRzIGhlcmUgb25seSBpZiB0aGV5IG5lZWQgdG8gYmUgcmVmZXJlbmNlZCBmcm9tIG5vbi1F RkkgY29kZS4gKi8KIHN0cnVjdCBlZmkgewogICAgIHVuc2lnbmVkIGxvbmcgbXBzOyAgICAgICAg ICAvKiBNUFMgdGFibGUgKi8KQEAgLTI4LDYgKzMxLDcgQEAgdW5pb24gY29tcGF0X3BmX2VmaV9p bmZvOwogc3RydWN0IHhlbnBmX2VmaV9ydW50aW1lX2NhbGw7CiBzdHJ1Y3QgY29tcGF0X3BmX2Vm aV9ydW50aW1lX2NhbGw7CiAKK2Jvb2wgZWZpX2VuYWJsZWQodW5zaWduZWQgaW50IGZlYXR1cmUp Owogdm9pZCBlZmlfaW5pdF9tZW1vcnkodm9pZCk7CiBib29sX3QgZWZpX3JzX3VzaW5nX3BndGFi bGVzKHZvaWQpOwogdW5zaWduZWQgbG9uZyBlZmlfZ2V0X3RpbWUodm9pZCk7Ci0tIAoxLjcuMTAu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=