From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v5 10/16] efi: create efi_enabled() Date: Sat, 20 Aug 2016 00:43:20 +0200 Message-ID: <1471646606-28519-11-git-send-email-daniel.kiper@oracle.com> References: <1471646606-28519-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1basXE-0002pC-JO for xen-devel@lists.xenproject.org; Fri, 19 Aug 2016 22:45:08 +0000 In-Reply-To: <1471646606-28519-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, 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+Ci0tLQp2NSAtIHN1Z2dl c3Rpb25zL2ZpeGVzOgogICAtIHNxdWFzaCB0aHJlZSBwYXRjaGVzIGludG8gb25lCiAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW50cm9kdWNlIGFsbCBmZWF0dXJlcyBhdCBv bmNlCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gZWZpX2VuYWJsZWQoKSBy ZXR1cm5zIGJvb2xfdAogICAgIGluc3RlYWQgb2YgdW5zaWduZWQgaW50CiAgICAgKHN1Z2dlc3Rl ZCBieSBKYW4gQmV1bGljaCksCiAgIC0gdXBkYXRlIGNvbW1pdCBtZXNzYWdlLgoKdjQgLSBzdWdn ZXN0aW9ucy9maXhlczoKICAgLSByZW5hbWUgRUZJX1BMQVRGT1JNIHRvIEVGSV9CT09UCiAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gbW92ZSBFRklfQk9PVCBkZWZpbml0aW9u IHRvIGVmaSBzdHJ1Y3QgZGVmaW5pdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIHJlbW92ZSB1bm5lZWRlZCBlZmkuZmxhZ3MgaW5pdGlhbGl6YXRpb24KICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSB1c2UgX19zZXRfYml0KCkgaW5zdGVhZCBvZiBz ZXRfYml0KCkgaWYgcG9zc2libGUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSBkbyBlZmlfZW5hYmxlZCgpIGNsZWFudXAKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCks CiAgIC0gaW1wcm92ZSBjb21taXQgbWVzc2FnZS4KCnYzIC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAg IC0gZGVmaW5lIGVmaSBzdHJ1Y3QgaW4geGVuL2FyY2gveDg2L2VmaS9zdHViLmMKICAgICBpbiBl YXJsaWVyIHBhdGNoCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92 ZSBjb21tZW50cwogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUg Y29tbWl0IG1lc3NhZ2UKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KLS0tCiB4ZW4v YXJjaC94ODYvZG1pX3NjYW4uYyAgICB8ICAgIDQgKystLQogeGVuL2FyY2gveDg2L2RvbWFpbl9w YWdlLmMgfCAgICAyICstCiB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYyAgICB8ICAgIDcgKysrKy0t LQogeGVuL2FyY2gveDg2L21wcGFyc2UuYyAgICAgfCAgICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9z ZXR1cC5jICAgICAgIHwgICAxNCArKysrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L3NodXRkb3du LmMgICAgfCAgICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni90aW1lLmMgICAgICAgIHwgICAgMiArLQog eGVuL2NvbW1vbi9lZmkvYm9vdC5jICAgICAgfCAgIDE3ICsrKysrKysrKysrKystLS0tCiB4ZW4v Y29tbW9uL2VmaS9ydW50aW1lLmMgICB8ICAgMTUgKysrKysrKysrLS0tLS0tCiB4ZW4vZHJpdmVy cy9hY3BpL29zbC5jICAgICB8ICAgIDIgKy0KIHhlbi9pbmNsdWRlL3hlbi9lZmkuaCAgICAgIHwg ICAgOSArKysrKysrLS0KIDExIGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyksIDMwIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kbWlfc2Nhbi5jIGIveGVuL2Fy Y2gveDg2L2RtaV9zY2FuLmMKaW5kZXggYjA0OWUzMS4uOGRjYjY0MCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2RtaV9zY2FuLmMKKysrIGIveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMKQEAgLTIz OCw3ICsyMzgsNyBAQCBjb25zdCBjaGFyICpfX2luaXQgZG1pX2dldF90YWJsZShwYWRkcl90ICpi YXNlLCB1MzIgKmxlbikKIHsKIAlzdGF0aWMgdW5zaWduZWQgaW50IF9faW5pdGRhdGEgaW5zdGFu Y2U7CiAKLQlpZiAoZWZpX2VuYWJsZWQpIHsKKwlpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpKSB7 CiAJCWlmIChlZmlfc21iaW9zM19zaXplICYmICEoaW5zdGFuY2UgJiAxKSkgewogCQkJKmJhc2Ug PSBlZmlfc21iaW9zM19hZGRyZXNzOwogCQkJKmxlbiA9IGVmaV9zbWJpb3MzX3NpemU7CkBAIC02 OTYsNyArNjk2LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGRtaV9kZWNvZGUoc3RydWN0IGRtaV9o ZWFkZXIgKmRtKQogCiB2b2lkIF9faW5pdCBkbWlfc2Nhbl9tYWNoaW5lKHZvaWQpCiB7Ci0JaWYg KCghZWZpX2VuYWJsZWQgPyBkbWlfaXRlcmF0ZShkbWlfZGVjb2RlKSA6CisJaWYgKCghZWZpX2Vu YWJsZWQoRUZJX0JPT1QpID8gZG1pX2l0ZXJhdGUoZG1pX2RlY29kZSkgOgogCSAgICAgICAgICAg ICAgICAgICAgZG1pX2VmaV9pdGVyYXRlKGRtaV9kZWNvZGUpKSA9PSAwKQogIAkJZG1pX2NoZWNr X3N5c3RlbShkbWlfYmxhY2tsaXN0KTsKIAllbHNlCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv ZG9tYWluX3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmluZGV4IGQ4NmY4ZmUu Ljc1NDFiOTEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCisrKyBiL3hl bi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCkBAIC0zNiw3ICszNiw3IEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IHZjcHUgKm1hcGNhY2hlX2N1cnJlbnRfdmNwdSh2b2lkKQogICAgICAqIGRvbWFpbidz IHBhZ2UgdGFibGVzIGJ1dCBjdXJyZW50IG1heSBwb2ludCBhdCBhbm90aGVyIGRvbWFpbidzIFZD UFUuCiAgICAgICogUmV0dXJuIE5VTEwgYXMgdGhvdWdoIGN1cnJlbnQgaXMgbm90IHByb3Blcmx5 IHNldCB1cCB5ZXQuCiAgICAgICovCi0gICAgaWYgKCBlZmlfZW5hYmxlZCAmJiBlZmlfcnNfdXNp bmdfcGd0YWJsZXMoKSApCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfUlMpICYmIGVmaV9yc191 c2luZ19wZ3RhYmxlcygpICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKgpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMgYi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwpp bmRleCAwN2MyYmQwLi5mMDg3MDIzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZWZpL3N0dWIu YworKysgYi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwpAQCAtNCw5ICs0LDEwIEBACiAjaW5jbHVk ZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAKLSNpZm5kZWYgZWZpX2VuYWJs ZWQKLWNvbnN0IGJvb2xfdCBlZmlfZW5hYmxlZCA9IDA7Ci0jZW5kaWYKK2Jvb2xfdCBlZmlfZW5h YmxlZChpbnQgZmVhdHVyZSkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKIHZvaWQgX19pbml0 IGVmaV9pbml0X21lbW9yeSh2b2lkKSB7IH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21w cGFyc2UuYyBiL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMKaW5kZXggZWY2NTU3Yy4uYzNkNWJkYyAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21wcGFyc2UuYworKysgYi94ZW4vYXJjaC94ODYvbXBw YXJzZS5jCkBAIC01NjQsNyArNTY0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIF9faW5pdCBjb25z dHJ1Y3RfZGVmYXVsdF9JU0FfbXB0YWJsZShpbnQgbXBjX2RlZmF1bHRfdHlwZSkKIAogc3RhdGlj IF9faW5pdCB2b2lkIGVmaV91bm1hcF9tcGYodm9pZCkKIHsKLQlpZiAoZWZpX2VuYWJsZWQpCisJ aWYgKGVmaV9lbmFibGVkKEVGSV9CT09UKSkKIAkJY2xlYXJfZml4bWFwKEZJWF9FRklfTVBGKTsK IH0KIApAQCAtNzIyLDcgKzcyMiw3IEBAIHZvaWQgX19pbml0IGZpbmRfc21wX2NvbmZpZyAodm9p ZCkKIHsKIAl1bnNpZ25lZCBpbnQgYWRkcmVzczsKIAotCWlmIChlZmlfZW5hYmxlZCkgeworCWlm IChlZmlfZW5hYmxlZChFRklfQk9PVCkpIHsKIAkJZWZpX2NoZWNrX2NvbmZpZygpOwogCQlyZXR1 cm47CiAJfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4vYXJjaC94ODYv c2V0dXAuYwppbmRleCA4YWU4OTdhLi4zNjBjYTU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv c2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtNDM5LDggKzQzOSw4IEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBwYXJzZV92aWRlb19pbmZvKHZvaWQpCiB7CiAgICAgc3RydWN0IGJv b3RfdmlkZW9faW5mbyAqYnZpID0gJmJvb3RzeW0oYm9vdF92aWRfaW5mbyk7CiAKLSAgICAvKiBU aGUgRUZJIGxvYWRlciBmaWxscyB2Z2FfY29uc29sZV9pbmZvIGRpcmVjdGx5LiAqLwotICAgIGlm ICggZWZpX2VuYWJsZWQgKQorICAgIC8qIHZnYV9jb25zb2xlX2luZm8gaXMgZmlsbGVkIGRpcmVj dGx5IG9uIEVGSSBwbGF0Zm9ybS4gKi8KKyAgICBpZiAoIGVmaV9lbmFibGVkKEVGSV9CT09UKSAp CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICggKGJ2aS0+b3JpZ192aWRlb19pc1ZHQSA9PSAx KSAmJiAoYnZpLT5vcmlnX3ZpZGVvX21vZGUgPT0gMykgKQpAQCAtNzI2LDcgKzcyNiw3IEBAIHZv aWQgX19pbml0IG5vcmV0dXJuIF9fc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAgICAg aWYgKCAhKG1iaS0+ZmxhZ3MgJiBNQklfTU9EVUxFUykgfHwgKG1iaS0+bW9kc19jb3VudCA9PSAw KSApCiAgICAgICAgIHBhbmljKCJkb20wIGtlcm5lbCBub3Qgc3BlY2lmaWVkLiBDaGVjayBib290 bG9hZGVyIGNvbmZpZ3VyYXRpb24uIik7CiAKLSAgICBpZiAoIGVmaV9lbmFibGVkICkKKyAgICBp ZiAoIGVmaV9lbmFibGVkKEVGSV9MT0FERVIpICkKICAgICB7CiAgICAgICAgIHNldF9wZHhfcmFu Z2UoeGVuX3BoeXNfc3RhcnQgPj4gUEFHRV9TSElGVCwKICAgICAgICAgICAgICAgICAgICAgICAo eGVuX3BoeXNfc3RhcnQgKyBCT09UU1RSQVBfTUFQX0JBU0UpID4+IFBBR0VfU0hJRlQpOwpAQCAt NzM5LDggKzczOSwxMCBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25l ZCBsb25nIG1iaV9wKQogICAgICAgICBsM19ib290bWFwW2wzX3RhYmxlX29mZnNldChCT09UU1RS QVBfTUFQX0JBU0UpXSA9CiAgICAgICAgICAgICBsM2VfZnJvbV9wYWRkcihfX3BhKGwyX2Jvb3Rt YXApLCBfX1BBR0VfSFlQRVJWSVNPUik7CiAKLSAgICAgICAgbWVtbWFwX3R5cGUgPSBsb2FkZXI7 CisgICAgICAgIG1lbW1hcF90eXBlID0gIkVGSSI7CiAgICAgfQorICAgIGVsc2UgaWYgKCBlZmlf ZW5hYmxlZChFRklfQk9PVCkgKQorICAgICAgICBtZW1tYXBfdHlwZSA9ICJFRkkiOwogICAgIGVs c2UgaWYgKCBlODIwX3Jhd19uciAhPSAwICkKICAgICB7CiAgICAgICAgIG1lbW1hcF90eXBlID0g Ilhlbi1lODIwIjsKQEAgLTgzNyw3ICs4MzksNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0 YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAqIHdlIGNhbiByZWxvY2F0ZSB0aGUg ZG9tMCBrZXJuZWwgYW5kIG90aGVyIG11bHRpYm9vdCBtb2R1bGVzLiBBbHNvLCBvbgogICAgICAq IHg4Ni82NCwgd2UgcmVsb2NhdGUgWGVuIHRvIGhpZ2hlciBtZW1vcnkuCiAgICAgICovCi0gICAg Zm9yICggaSA9IDA7ICFlZmlfZW5hYmxlZCAmJiBpIDwgbWJpLT5tb2RzX2NvdW50OyBpKysgKQor ICAgIGZvciAoIGkgPSAwOyAhZWZpX2VuYWJsZWQoRUZJX0xPQURFUikgJiYgaSA8IG1iaS0+bW9k c19jb3VudDsgaSsrICkKICAgICB7CiAgICAgICAgIGlmICggbW9kW2ldLm1vZF9zdGFydCAmIChQ QUdFX1NJWkUgLSAxKSApCiAgICAgICAgICAgICBwYW5pYygiQm9vdGxvYWRlciBkaWRuJ3QgaG9u b3IgbW9kdWxlIGFsaWdubWVudCByZXF1ZXN0LiIpOwpAQCAtMTA3OCw3ICsxMDgwLDcgQEAgdm9p ZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKIAogICAg IGlmICggIXhlbl9waHlzX3N0YXJ0ICkKICAgICAgICAgcGFuaWMoIk5vdCBlbm91Z2ggbWVtb3J5 IHRvIHJlbG9jYXRlIFhlbi4iKTsKLSAgICByZXNlcnZlX2U4MjBfcmFtKCZib290X2U4MjAsIGVm aV9lbmFibGVkID8gbWJpLT5tZW1fdXBwZXIgOiBfX3BhKCZfc3RhcnQpLAorICAgIHJlc2VydmVf ZTgyMF9yYW0oJmJvb3RfZTgyMCwgZWZpX2VuYWJsZWQoRUZJX0JPT1QpID8gbWJpLT5tZW1fdXBw ZXIgOiBfX3BhKCZfc3RhcnQpLAogICAgICAgICAgICAgICAgICAgICAgX19wYSgmX2VuZCkpOwog CiAgICAgLyogTGF0ZSBrZXhlYyByZXNlcnZhdGlvbiAoZHluYW1pYyBzdGFydCBhZGRyZXNzKS4g Ki8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zaHV0ZG93bi5jIGIveGVuL2FyY2gveDg2L3No dXRkb3duLmMKaW5kZXggOTcyZTIwYi4uYjQyOWZkMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3NodXRkb3duLmMKKysrIGIveGVuL2FyY2gveDg2L3NodXRkb3duLmMKQEAgLTgxLDcgKzgxLDcg QEAgc3RhdGljIHZvaWQgX19pbml0IHNldF9yZWJvb3RfdHlwZShjaGFyICpzdHIpCiAgICAgICAg IHN0cisrOwogICAgIH0KIAotICAgIGlmICggcmVib290X3R5cGUgPT0gQk9PVF9FRkkgJiYgIWVm aV9lbmFibGVkICkKKyAgICBpZiAoIHJlYm9vdF90eXBlID09IEJPT1RfRUZJICYmICFlZmlfZW5h YmxlZChFRklfUlMpICkKICAgICAgICAgcmVib290X3R5cGUgPSBCT09UX0lOVkFMSUQ7CiB9CiBj dXN0b21fcGFyYW0oInJlYm9vdCIsIHNldF9yZWJvb3RfdHlwZSk7CkBAIC0xMTksNyArMTE5LDcg QEAgdm9pZCBtYWNoaW5lX2hhbHQodm9pZCkKIHN0YXRpYyB2b2lkIGRlZmF1bHRfcmVib290X3R5 cGUodm9pZCkKIHsKICAgICBpZiAoIHJlYm9vdF90eXBlID09IEJPT1RfSU5WQUxJRCApCi0gICAg ICAgIHJlYm9vdF90eXBlID0gZWZpX2VuYWJsZWQgPyBCT09UX0VGSQorICAgICAgICByZWJvb3Rf dHlwZSA9IGVmaV9lbmFibGVkKEVGSV9SUykgPyBCT09UX0VGSQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogYWNwaV9kaXNhYmxlZCA/IEJPT1RfS0JECiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQk9PVF9BQ1BJOwogfQpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3RpbWUuYyBiL3hlbi9hcmNoL3g4Ni90aW1lLmMKaW5kZXgg YjMxNmYyMy4uMzRmODJjYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3RpbWUuYworKysgYi94 ZW4vYXJjaC94ODYvdGltZS5jCkBAIC03MjcsNyArNzI3LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxv bmcgZ2V0X2Ntb3NfdGltZSh2b2lkKQogICAgIHN0YXRpYyBib29sX3QgX19yZWFkX21vc3RseSBj bW9zX3J0Y19wcm9iZTsKICAgICBib29sZWFuX3BhcmFtKCJjbW9zLXJ0Yy1wcm9iZSIsIGNtb3Nf cnRjX3Byb2JlKTsKIAotICAgIGlmICggZWZpX2VuYWJsZWQgKQorICAgIGlmICggZWZpX2VuYWJs ZWQoRUZJX1JTKSApCiAgICAgewogICAgICAgICByZXMgPSBlZmlfZ2V0X3RpbWUoKTsKICAgICAg ICAgaWYgKCByZXMgKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jIGIveGVuL2Nv bW1vbi9lZmkvYm9vdC5jCmluZGV4IDEyNWM5Y2UuLmQ3YzQ4NGUgMTAwNjQ0Ci0tLSBhL3hlbi9j b21tb24vZWZpL2Jvb3QuYworKysgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKQEAgLTkzNCw2ICs5 MzQsMTMgQEAgZWZpX3N0YXJ0KEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFC TEUgKlN5c3RlbVRhYmxlKQogICAgIGNoYXIgKm9wdGlvbl9zdHI7CiAgICAgYm9vbF90IHVzZV9j ZmdfZmlsZTsKIAorICAgIF9fc2V0X2JpdChFRklfQk9PVCwgJmVmaV9mbGFncyk7CisgICAgX19z ZXRfYml0KEVGSV9MT0FERVIsICZlZmlfZmxhZ3MpOworCisjaWZuZGVmIENPTkZJR19BUk0gLyog RGlzYWJsZWQgdW50aWwgcnVudGltZSBzZXJ2aWNlcyBpbXBsZW1lbnRlZC4gKi8KKyAgICBfX3Nl dF9iaXQoRUZJX1JTLCAmZWZpX2ZsYWdzKTsKKyNlbmRpZgorCiAgICAgZWZpX2luaXQoSW1hZ2VI YW5kbGUsIFN5c3RlbVRhYmxlKTsKIAogICAgIHVzZV9jZmdfZmlsZSA9IGVmaV9hcmNoX3VzZV9j b25maWdfZmlsZShTeXN0ZW1UYWJsZSk7CkBAIC0xMTUzLDcgKzExNjAsNiBAQCBlZmlfc3RhcnQo RUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCiAK ICNpZm5kZWYgQ09ORklHX0FSTSAvKiBUT0RPIC0gcnVudGltZSBzZXJ2aWNlIHN1cHBvcnQgKi8K IAotc3RhdGljIGJvb2xfdCBfX2luaXRkYXRhIGVmaV9yc19lbmFibGUgPSAxOwogc3RhdGljIGJv b2xfdCBfX2luaXRkYXRhIGVmaV9tYXBfdWM7CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9l ZmlfcGFyYW0oY2hhciAqcykKQEAgLTExNzEsNyArMTE3NywxMCBAQCBzdGF0aWMgdm9pZCBfX2lu aXQgcGFyc2VfZWZpX3BhcmFtKGNoYXIgKnMpCiAgICAgICAgICAgICAqc3MgPSAnXDAnOwogCiAg ICAgICAgIGlmICggIXN0cmNtcChzLCAicnMiKSApCi0gICAgICAgICAgICBlZmlfcnNfZW5hYmxl ID0gdmFsOworICAgICAgICB7CisgICAgICAgICAgICBpZiAoICF2YWwgKQorICAgICAgICAgICAg ICAgIF9fY2xlYXJfYml0KEVGSV9SUywgJmVmaV9mbGFncyk7CisgICAgICAgIH0KICAgICAgICAg ZWxzZSBpZiAoICFzdHJjbXAocywgImF0dHI9dWMiKSApCiAgICAgICAgICAgICBlZmlfbWFwX3Vj ID0gdmFsOwogCkBAIC0xMjU0LDcgKzEyNjMsNyBAQCB2b2lkIF9faW5pdCBlZmlfaW5pdF9tZW1v cnkodm9pZCkKICAgICAgICAgICAgICAgIGRlc2MtPlBoeXNpY2FsU3RhcnQsIGRlc2MtPlBoeXNp Y2FsU3RhcnQgKyBsZW4gLSAxLAogICAgICAgICAgICAgICAgZGVzYy0+VHlwZSwgZGVzYy0+QXR0 cmlidXRlKTsKIAotICAgICAgICBpZiAoICFlZmlfcnNfZW5hYmxlIHx8CisgICAgICAgIGlmICgg IWVmaV9lbmFibGVkKEVGSV9SUykgfHwKICAgICAgICAgICAgICAoIShkZXNjLT5BdHRyaWJ1dGUg JiBFRklfTUVNT1JZX1JVTlRJTUUpICYmCiAgICAgICAgICAgICAgICghbWFwX2JzIHx8CiAgICAg ICAgICAgICAgICAoZGVzYy0+VHlwZSAhPSBFZmlCb290U2VydmljZXNDb2RlICYmCkBAIC0xMzI4 LDcgKzEzMzcsNyBAQCB2b2lkIF9faW5pdCBlZmlfaW5pdF9tZW1vcnkodm9pZCkKICAgICAgICAg fQogICAgIH0KIAotICAgIGlmICggIWVmaV9yc19lbmFibGUgKQorICAgIGlmICggIWVmaV9lbmFi bGVkKEVGSV9SUykgKQogICAgIHsKICAgICAgICAgZWZpX2Z3X3ZlbmRvciA9IE5VTEw7CiAgICAg ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZWZpL3J1bnRpbWUuYyBiL3hlbi9j b21tb24vZWZpL3J1bnRpbWUuYwppbmRleCBjMjU2ODE0Li42YmZmZGEwIDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMKKysrIGIveGVuL2NvbW1vbi9lZmkvcnVudGltZS5jCkBA IC0xMCwxMiArMTAsNiBAQCBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShDSEFSMTYpOwogCiAjaWZu ZGVmIENPTVBBVAogCi0vKgotICogQ3VycmVudGx5IHJ1bnRpbWUgc2VydmljZXMgYXJlIG5vdCBp bXBsZW1lbnRlZCBvbiBBUk0uIFRvIGJvb3QgWGVuIHdpdGggQUNQSSwKLSAqIHNldCBlZmlfZW5h YmxlZCB0byAxLCBzbyB0aGF0IFhlbiBjYW4gZ2V0IHRoZSBBQ1BJIHJvb3QgcG9pbnRlciBmcm9t IEVGSS4KLSAqLwotY29uc3QgYm9vbF90IGVmaV9lbmFibGVkID0gMTsKLQogI2lmbmRlZiBDT05G SUdfQVJNCiAjIGluY2x1ZGUgPGFzbS9pMzg3Lmg+CiAjIGluY2x1ZGUgPGFzbS94c3RhdGUuaD4K QEAgLTQzLDYgKzM3LDkgQEAgVUlOVDY0IF9fcmVhZF9tb3N0bHkgZWZpX2Jvb3RfbWF4X3Zhcl9z dG9yZV9zaXplOwogVUlOVDY0IF9fcmVhZF9tb3N0bHkgZWZpX2Jvb3RfcmVtYWluX3Zhcl9zdG9y ZV9zaXplOwogVUlOVDY0IF9fcmVhZF9tb3N0bHkgZWZpX2Jvb3RfbWF4X3Zhcl9zaXplOwogCisv KiBCaXQgZmllbGRzIHJlcHJlc2VudGluZyBhdmFpbGFibGUgRUZJIGZlYXR1cmVzL3Byb3BlcnRp ZXMuICovCit1bnNpZ25lZCBsb25nIGVmaV9mbGFnczsKKwogc3RydWN0IGVmaSBfX3JlYWRfbW9z dGx5IGVmaSA9IHsKIAkuYWNwaSAgID0gRUZJX0lOVkFMSURfVEFCTEVfQUREUiwKIAkuYWNwaTIw ID0gRUZJX0lOVkFMSURfVEFCTEVfQUREUiwKQEAgLTUzLDYgKzUwLDEyIEBAIHN0cnVjdCBlZmkg X19yZWFkX21vc3RseSBlZmkgPSB7CiAKIGNvbnN0IHN0cnVjdCBlZmlfcGNpX3JvbSAqX19yZWFk X21vc3RseSBlZmlfcGNpX3JvbXM7CiAKKy8qIFRlc3Qgd2hldGhlciBFRklfKiBiaXRzIGFyZSBl bmFibGVkLiAqLworYm9vbF90IGVmaV9lbmFibGVkKGludCBmZWF0dXJlKQoreworICAgIHJldHVy biB0ZXN0X2JpdChmZWF0dXJlLCAmZWZpX2ZsYWdzKTsKK30KKwogI2lmbmRlZiBDT05GSUdfQVJN IC8qIFRPRE8gLSBkaXNhYmxlZCB1bnRpbCBpbXBsZW1lbnRlZCBvbiBBUk0gKi8KIHVuc2lnbmVk IGxvbmcgZWZpX3JzX2VudGVyKHZvaWQpCiB7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9hY3Bp L29zbC5jIGIveGVuL2RyaXZlcnMvYWNwaS9vc2wuYwppbmRleCA5YTQ5MDI5Li4zNjE2ZGZkIDEw MDY0NAotLS0gYS94ZW4vZHJpdmVycy9hY3BpL29zbC5jCisrKyBiL3hlbi9kcml2ZXJzL2FjcGkv b3NsLmMKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBfX2luaXQgYWNwaV9vc192cHJpbnRmKGNvbnN0 IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdzKQogCiBhY3BpX3BoeXNpY2FsX2FkZHJlc3MgX19pbml0 IGFjcGlfb3NfZ2V0X3Jvb3RfcG9pbnRlcih2b2lkKQogewotCWlmIChlZmlfZW5hYmxlZCkgewor CWlmIChlZmlfZW5hYmxlZChFRklfQk9PVCkpIHsKIAkJaWYgKGVmaS5hY3BpMjAgIT0gRUZJX0lO VkFMSURfVEFCTEVfQUREUikKIAkJCXJldHVybiBlZmkuYWNwaTIwOwogCQllbHNlIGlmIChlZmku YWNwaSAhPSBFRklfSU5WQUxJRF9UQUJMRV9BRERSKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv eGVuL2VmaS5oIGIveGVuL2luY2x1ZGUveGVuL2VmaS5oCmluZGV4IGU3NGRhZDEuLjgzNzJhZTIg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4v ZWZpLmgKQEAgLTIsMTMgKzIsMTcgQEAKICNkZWZpbmUgX19YRU5fRUZJX0hfXwogCiAjaWZuZGVm IF9fQVNTRU1CTFlfXworI2luY2x1ZGUgPHhlbi9iaXRvcHMuaD4KICNpbmNsdWRlIDx4ZW4vdHlw ZXMuaD4KICNlbmRpZgogCi1leHRlcm4gY29uc3QgYm9vbF90IGVmaV9lbmFibGVkOwotCiAjZGVm aW5lIEVGSV9JTlZBTElEX1RBQkxFX0FERFIgKH4wVUwpCiAKK2V4dGVybiB1bnNpZ25lZCBsb25n IGVmaV9mbGFnczsKKyNkZWZpbmUgRUZJX0JPT1QJMAkvKiBXZXJlIHdlIGJvb3RlZCBmcm9tIEVG ST8gKi8KKyNkZWZpbmUgRUZJX0xPQURFUgkxCS8qIFdlcmUgd2UgYm9vdGVkIGRpcmVjdGx5IGZy b20gRUZJIGxvYWRlcj8gKi8KKyNkZWZpbmUgRUZJX1JTCQkyCS8qIENhbiB3ZSB1c2UgcnVudGlt ZSBzZXJ2aWNlcz8gKi8KKwogLyogQWRkIGZpZWxkcyBoZXJlIG9ubHkgaWYgdGhleSBuZWVkIHRv IGJlIHJlZmVyZW5jZWQgZnJvbSBub24tRUZJIGNvZGUuICovCiBzdHJ1Y3QgZWZpIHsKICAgICB1 bnNpZ25lZCBsb25nIG1wczsgICAgICAgICAgLyogTVBTIHRhYmxlICovCkBAIC0yOCw2ICszMiw3 IEBAIHVuaW9uIGNvbXBhdF9wZl9lZmlfaW5mbzsKIHN0cnVjdCB4ZW5wZl9lZmlfcnVudGltZV9j YWxsOwogc3RydWN0IGNvbXBhdF9wZl9lZmlfcnVudGltZV9jYWxsOwogCitib29sX3QgZWZpX2Vu YWJsZWQoaW50IGZlYXR1cmUpOwogdm9pZCBlZmlfaW5pdF9tZW1vcnkodm9pZCk7CiBib29sX3Qg ZWZpX3JzX3VzaW5nX3BndGFibGVzKHZvaWQpOwogdW5zaWduZWQgbG9uZyBlZmlfZ2V0X3RpbWUo dm9pZCk7Ci0tIAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=