From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [PATCH v6 05/15] efi: create efi_enabled() Date: Mon, 12 Sep 2016 22:18:20 +0200 Message-ID: <1473711511-11931-6-git-send-email-daniel.kiper@oracle.com> References: <1473711511-11931-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 1bjXjL-00064k-Q2 for xen-devel@lists.xenproject.org; Mon, 12 Sep 2016 20:21:27 +0000 In-Reply-To: <1473711511-11931-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+Ci0tLQp2NiAtIHN1Z2dl c3Rpb25zL2ZpeGVzOgogICAtIGRlZmluZSBlZmlfZW5hYmxlZCgpIGFzICJib29sIGVmaV9lbmFi bGVkKHVuc2lnbmVkIGludCBmZWF0dXJlKSIKICAgICBpbnN0ZWFkIG9mICJib29sX3QgZWZpX2Vu YWJsZWQoaW50IGZlYXR1cmUpIgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAt IGRlZmluZSBlZmlfZmxhZ3MgYXMgdW5zaWduZWQgaW50CiAgICAgKHN1Z2dlc3RlZCBieSBKYW4g QmV1bGljaCksCiAgIC0gdmFyaW91cyBtaW5vciBjbGVhbnVwcyBhbmQgZml4ZXMKICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKS4KCnY1IC0gc3VnZ2VzdGlvbnMvZml4ZXM6CiAgIC0gc3F1 YXNoIHRocmVlIHBhdGNoZXMgaW50byBvbmUKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KSwKICAgLSBpbnRyb2R1Y2UgYWxsIGZlYXR1cmVzIGF0IG9uY2UKICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKSwKICAgLSBlZmlfZW5hYmxlZCgpIHJldHVybnMgYm9vbF90CiAgICAgaW5z dGVhZCBvZiB1bnNpZ25lZCBpbnQKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAg LSB1cGRhdGUgY29tbWl0IG1lc3NhZ2UuCgp2NCAtIHN1Z2dlc3Rpb25zL2ZpeGVzOgogICAtIHJl bmFtZSBFRklfUExBVEZPUk0gdG8gRUZJX0JPT1QKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKSwKICAgLSBtb3ZlIEVGSV9CT09UIGRlZmluaXRpb24gdG8gZWZpIHN0cnVjdCBkZWZpbml0 aW9uCiAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gcmVtb3ZlIHVubmVlZGVk IGVmaS5mbGFncyBpbml0aWFsaXphdGlvbgogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp LAogICAtIHVzZSBfX3NldF9iaXQoKSBpbnN0ZWFkIG9mIHNldF9iaXQoKSBpZiBwb3NzaWJsZQog ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGRvIGVmaV9lbmFibGVkKCkgY2xl YW51cAogICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLAogICAtIGltcHJvdmUgY29tbWVu dHMKICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1pdCBt ZXNzYWdlLgoKdjMgLSBzdWdnZXN0aW9ucy9maXhlczoKICAgLSBkZWZpbmUgZWZpIHN0cnVjdCBp biB4ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwogICAgIGluIGVhcmxpZXIgcGF0Y2gKICAgICAoc3Vn Z2VzdGVkIGJ5IEphbiBCZXVsaWNoKSwKICAgLSBpbXByb3ZlIGNvbW1lbnRzCiAgICAgKHN1Z2dl c3RlZCBieSBKYW4gQmV1bGljaCksCiAgIC0gaW1wcm92ZSBjb21taXQgbWVzc2FnZQogICAgIChz dWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpLgotLS0KIHhlbi9hcmNoL3g4Ni9kbWlfc2Nhbi5jICAg IHwgICAgNCArKy0tCiB4ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyB8ICAgIDIgKy0KIHhlbi9h cmNoL3g4Ni9lZmkvc3R1Yi5jICAgIHwgICAgNyArKysrLS0tCiB4ZW4vYXJjaC94ODYvbXBwYXJz ZS5jICAgICB8ICAgIDQgKystLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgfCAgIDEyICsr KysrKystLS0tLQogeGVuL2FyY2gveDg2L3NodXRkb3duLmMgICAgfCAgICAyICstCiB4ZW4vYXJj aC94ODYvdGltZS5jICAgICAgICB8ICAgIDIgKy0KIHhlbi9jb21tb24vZWZpL2Jvb3QuYyAgICAg IHwgICAxOSArKysrKysrKysrKysrKystLS0tCiB4ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMgICB8 ICAgMTQgKysrKysrKystLS0tLS0KIHhlbi9jb21tb24vdmVyc2lvbi5jICAgICAgIHwgICAgMiAr LQogeGVuL2RyaXZlcnMvYWNwaS9vc2wuYyAgICAgfCAgICAyICstCiB4ZW4vaW5jbHVkZS94ZW4v ZWZpLmggICAgICB8ICAgIDggKysrKysrLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlv bnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kbWlfc2Nh bi5jIGIveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMKaW5kZXggYjA0OWUzMS4uOGRjYjY0MCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2RtaV9zY2FuLmMKKysrIGIveGVuL2FyY2gveDg2L2RtaV9z Y2FuLmMKQEAgLTIzOCw3ICsyMzgsNyBAQCBjb25zdCBjaGFyICpfX2luaXQgZG1pX2dldF90YWJs ZShwYWRkcl90ICpiYXNlLCB1MzIgKmxlbikKIHsKIAlzdGF0aWMgdW5zaWduZWQgaW50IF9faW5p dGRhdGEgaW5zdGFuY2U7CiAKLQlpZiAoZWZpX2VuYWJsZWQpIHsKKwlpZiAoZWZpX2VuYWJsZWQo RUZJX0JPT1QpKSB7CiAJCWlmIChlZmlfc21iaW9zM19zaXplICYmICEoaW5zdGFuY2UgJiAxKSkg ewogCQkJKmJhc2UgPSBlZmlfc21iaW9zM19hZGRyZXNzOwogCQkJKmxlbiA9IGVmaV9zbWJpb3Mz X3NpemU7CkBAIC02OTYsNyArNjk2LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGRtaV9kZWNvZGUo c3RydWN0IGRtaV9oZWFkZXIgKmRtKQogCiB2b2lkIF9faW5pdCBkbWlfc2Nhbl9tYWNoaW5lKHZv aWQpCiB7Ci0JaWYgKCghZWZpX2VuYWJsZWQgPyBkbWlfaXRlcmF0ZShkbWlfZGVjb2RlKSA6CisJ aWYgKCghZWZpX2VuYWJsZWQoRUZJX0JPT1QpID8gZG1pX2l0ZXJhdGUoZG1pX2RlY29kZSkgOgog CSAgICAgICAgICAgICAgICAgICAgZG1pX2VmaV9pdGVyYXRlKGRtaV9kZWNvZGUpKSA9PSAwKQog IAkJZG1pX2NoZWNrX3N5c3RlbShkbWlfYmxhY2tsaXN0KTsKIAllbHNlCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmlu ZGV4IGQ4NmY4ZmUuLjc1NDFiOTEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFn ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCkBAIC0zNiw3ICszNiw3IEBAIHN0 YXRpYyBpbmxpbmUgc3RydWN0IHZjcHUgKm1hcGNhY2hlX2N1cnJlbnRfdmNwdSh2b2lkKQogICAg ICAqIGRvbWFpbidzIHBhZ2UgdGFibGVzIGJ1dCBjdXJyZW50IG1heSBwb2ludCBhdCBhbm90aGVy IGRvbWFpbidzIFZDUFUuCiAgICAgICogUmV0dXJuIE5VTEwgYXMgdGhvdWdoIGN1cnJlbnQgaXMg bm90IHByb3Blcmx5IHNldCB1cCB5ZXQuCiAgICAgICovCi0gICAgaWYgKCBlZmlfZW5hYmxlZCAm JiBlZmlfcnNfdXNpbmdfcGd0YWJsZXMoKSApCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfUlMp ICYmIGVmaV9yc191c2luZ19wZ3RhYmxlcygpICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAg ICAvKgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2VmaS9zdHViLmMgYi94ZW4vYXJjaC94ODYv ZWZpL3N0dWIuYwppbmRleCAwN2MyYmQwLi4wYmZhYTc0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvZWZpL3N0dWIuYworKysgYi94ZW4vYXJjaC94ODYvZWZpL3N0dWIuYwpAQCAtNCw5ICs0LDEw IEBACiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAKLSNpZm5k ZWYgZWZpX2VuYWJsZWQKLWNvbnN0IGJvb2xfdCBlZmlfZW5hYmxlZCA9IDA7Ci0jZW5kaWYKK2Jv b2wgZWZpX2VuYWJsZWQodW5zaWduZWQgaW50IGZlYXR1cmUpCit7CisgICAgcmV0dXJuIGZhbHNl OworfQogCiB2b2lkIF9faW5pdCBlZmlfaW5pdF9tZW1vcnkodm9pZCkgeyB9CiAKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMgYi94ZW4vYXJjaC94ODYvbXBwYXJzZS5jCmluZGV4 IGVmNjU1N2MuLmMzZDViZGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tcHBhcnNlLmMKKysr IGIveGVuL2FyY2gveDg2L21wcGFyc2UuYwpAQCAtNTY0LDcgKzU2NCw3IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBfX2luaXQgY29uc3RydWN0X2RlZmF1bHRfSVNBX21wdGFibGUoaW50IG1wY19kZWZh dWx0X3R5cGUpCiAKIHN0YXRpYyBfX2luaXQgdm9pZCBlZmlfdW5tYXBfbXBmKHZvaWQpCiB7Ci0J aWYgKGVmaV9lbmFibGVkKQorCWlmIChlZmlfZW5hYmxlZChFRklfQk9PVCkpCiAJCWNsZWFyX2Zp eG1hcChGSVhfRUZJX01QRik7CiB9CiAKQEAgLTcyMiw3ICs3MjIsNyBAQCB2b2lkIF9faW5pdCBm aW5kX3NtcF9jb25maWcgKHZvaWQpCiB7CiAJdW5zaWduZWQgaW50IGFkZHJlc3M7CiAKLQlpZiAo ZWZpX2VuYWJsZWQpIHsKKwlpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpKSB7CiAJCWVmaV9jaGVj a19jb25maWcoKTsKIAkJcmV0dXJuOwogCX0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1 cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggOGFlODk3YS4uMDZmMzk3MCAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAg LTQzOSw4ICs0MzksOCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2VfdmlkZW9faW5mbyh2b2lk KQogewogICAgIHN0cnVjdCBib290X3ZpZGVvX2luZm8gKmJ2aSA9ICZib290c3ltKGJvb3Rfdmlk X2luZm8pOwogCi0gICAgLyogVGhlIEVGSSBsb2FkZXIgZmlsbHMgdmdhX2NvbnNvbGVfaW5mbyBk aXJlY3RseS4gKi8KLSAgICBpZiAoIGVmaV9lbmFibGVkICkKKyAgICAvKiB2Z2FfY29uc29sZV9p bmZvIGlzIGZpbGxlZCBkaXJlY3RseSBvbiBFRkkgcGxhdGZvcm0uICovCisgICAgaWYgKCBlZmlf ZW5hYmxlZChFRklfQk9PVCkgKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIChidmktPm9y aWdfdmlkZW9faXNWR0EgPT0gMSkgJiYgKGJ2aS0+b3JpZ192aWRlb19tb2RlID09IDMpICkKQEAg LTcyNiw3ICs3MjYsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25l ZCBsb25nIG1iaV9wKQogICAgIGlmICggIShtYmktPmZsYWdzICYgTUJJX01PRFVMRVMpIHx8ICht YmktPm1vZHNfY291bnQgPT0gMCkgKQogICAgICAgICBwYW5pYygiZG9tMCBrZXJuZWwgbm90IHNw ZWNpZmllZC4gQ2hlY2sgYm9vdGxvYWRlciBjb25maWd1cmF0aW9uLiIpOwogCi0gICAgaWYgKCBl ZmlfZW5hYmxlZCApCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfTE9BREVSKSApCiAgICAgewog ICAgICAgICBzZXRfcGR4X3JhbmdlKHhlbl9waHlzX3N0YXJ0ID4+IFBBR0VfU0hJRlQsCiAgICAg ICAgICAgICAgICAgICAgICAgKHhlbl9waHlzX3N0YXJ0ICsgQk9PVFNUUkFQX01BUF9CQVNFKSA+ PiBQQUdFX1NISUZUKTsKQEAgLTc0MSw2ICs3NDEsOCBAQCB2b2lkIF9faW5pdCBub3JldHVybiBf X3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogCiAgICAgICAgIG1lbW1hcF90eXBlID0g bG9hZGVyOwogICAgIH0KKyAgICBlbHNlIGlmICggZWZpX2VuYWJsZWQoRUZJX0JPT1QpICkKKyAg ICAgICAgbWVtbWFwX3R5cGUgPSAiRUZJIjsKICAgICBlbHNlIGlmICggZTgyMF9yYXdfbnIgIT0g MCApCiAgICAgewogICAgICAgICBtZW1tYXBfdHlwZSA9ICJYZW4tZTgyMCI7CkBAIC04MzcsNyAr ODM5LDcgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBt YmlfcCkKICAgICAgKiB3ZSBjYW4gcmVsb2NhdGUgdGhlIGRvbTAga2VybmVsIGFuZCBvdGhlciBt dWx0aWJvb3QgbW9kdWxlcy4gQWxzbywgb24KICAgICAgKiB4ODYvNjQsIHdlIHJlbG9jYXRlIFhl biB0byBoaWdoZXIgbWVtb3J5LgogICAgICAqLwotICAgIGZvciAoIGkgPSAwOyAhZWZpX2VuYWJs ZWQgJiYgaSA8IG1iaS0+bW9kc19jb3VudDsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgIWVmaV9l bmFibGVkKEVGSV9MT0FERVIpICYmIGkgPCBtYmktPm1vZHNfY291bnQ7IGkrKyApCiAgICAgewog ICAgICAgICBpZiAoIG1vZFtpXS5tb2Rfc3RhcnQgJiAoUEFHRV9TSVpFIC0gMSkgKQogICAgICAg ICAgICAgcGFuaWMoIkJvb3Rsb2FkZXIgZGlkbid0IGhvbm9yIG1vZHVsZSBhbGlnbm1lbnQgcmVx dWVzdC4iKTsKQEAgLTEwNzgsNyArMTA4MCw3IEBAIHZvaWQgX19pbml0IG5vcmV0dXJuIF9fc3Rh cnRfeGVuKHVuc2lnbmVkIGxvbmcgbWJpX3ApCiAKICAgICBpZiAoICF4ZW5fcGh5c19zdGFydCAp CiAgICAgICAgIHBhbmljKCJOb3QgZW5vdWdoIG1lbW9yeSB0byByZWxvY2F0ZSBYZW4uIik7Ci0g ICAgcmVzZXJ2ZV9lODIwX3JhbSgmYm9vdF9lODIwLCBlZmlfZW5hYmxlZCA/IG1iaS0+bWVtX3Vw cGVyIDogX19wYSgmX3N0YXJ0KSwKKyAgICByZXNlcnZlX2U4MjBfcmFtKCZib290X2U4MjAsIGVm aV9lbmFibGVkKEVGSV9MT0FERVIpID8gbWJpLT5tZW1fdXBwZXIgOiBfX3BhKCZfc3RhcnQpLAog ICAgICAgICAgICAgICAgICAgICAgX19wYSgmX2VuZCkpOwogCiAgICAgLyogTGF0ZSBrZXhlYyBy ZXNlcnZhdGlvbiAoZHluYW1pYyBzdGFydCBhZGRyZXNzKS4gKi8KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9zaHV0ZG93bi5jIGIveGVuL2FyY2gveDg2L3NodXRkb3duLmMKaW5kZXggMGUxNDk5 ZC4uNTRjMmM3OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NodXRkb3duLmMKKysrIGIveGVu L2FyY2gveDg2L3NodXRkb3duLmMKQEAgLTExNiw3ICsxMTYsNyBAQCB2b2lkIG1hY2hpbmVfaGFs dCh2b2lkKQogc3RhdGljIHZvaWQgZGVmYXVsdF9yZWJvb3RfdHlwZSh2b2lkKQogewogICAgIGlm ICggcmVib290X3R5cGUgPT0gQk9PVF9JTlZBTElEICkKLSAgICAgICAgcmVib290X3R5cGUgPSBl ZmlfZW5hYmxlZCA/IEJPT1RfRUZJCisgICAgICAgIHJlYm9vdF90eXBlID0gZWZpX2VuYWJsZWQo RUZJX1JTKSA/IEJPT1RfRUZJCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBh Y3BpX2Rpc2FibGVkID8gQk9PVF9LQkQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiBCT09UX0FDUEk7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvdGltZS5jIGIveGVuL2FyY2gveDg2L3RpbWUuYwppbmRleCA3M2UwZjk4Li5mMDQzOTk4IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGltZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni90aW1lLmMK QEAgLTcyNyw3ICs3MjcsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBnZXRfY21vc190aW1lKHZv aWQpCiAgICAgc3RhdGljIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGNtb3NfcnRjX3Byb2JlOwogICAg IGJvb2xlYW5fcGFyYW0oImNtb3MtcnRjLXByb2JlIiwgY21vc19ydGNfcHJvYmUpOwogCi0gICAg aWYgKCBlZmlfZW5hYmxlZCApCisgICAgaWYgKCBlZmlfZW5hYmxlZChFRklfUlMpICkKICAgICB7 CiAgICAgICAgIHJlcyA9IGVmaV9nZXRfdGltZSgpOwogICAgICAgICBpZiAoIHJlcyApCmRpZmYg LS1naXQgYS94ZW4vY29tbW9uL2VmaS9ib290LmMgYi94ZW4vY29tbW9uL2VmaS9ib290LmMKaW5k ZXggMTI1YzljZS4uNTY1NDRkYyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9lZmkvYm9vdC5jCisr KyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYwpAQCAtOTM0LDYgKzkzNCwxMyBAQCBlZmlfc3RhcnQo RUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzdGVtVGFibGUpCiAg ICAgY2hhciAqb3B0aW9uX3N0cjsKICAgICBib29sX3QgdXNlX2NmZ19maWxlOwogCisgICAgX19z ZXRfYml0KEVGSV9CT09ULCAmZWZpX2ZsYWdzKTsKKyAgICBfX3NldF9iaXQoRUZJX0xPQURFUiwg JmVmaV9mbGFncyk7CisKKyNpZm5kZWYgQ09ORklHX0FSTSAvKiBEaXNhYmxlZCB1bnRpbCBydW50 aW1lIHNlcnZpY2VzIGltcGxlbWVudGVkLiAqLworICAgIF9fc2V0X2JpdChFRklfUlMsICZlZmlf ZmxhZ3MpOworI2VuZGlmCisKICAgICBlZmlfaW5pdChJbWFnZUhhbmRsZSwgU3lzdGVtVGFibGUp OwogCiAgICAgdXNlX2NmZ19maWxlID0gZWZpX2FyY2hfdXNlX2NvbmZpZ19maWxlKFN5c3RlbVRh YmxlKTsKQEAgLTExNTMsNyArMTE2MCw2IEBAIGVmaV9zdGFydChFRklfSEFORExFIEltYWdlSGFu ZGxlLCBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZSkKIAogI2lmbmRlZiBDT05GSUdfQVJN IC8qIFRPRE8gLSBydW50aW1lIHNlcnZpY2Ugc3VwcG9ydCAqLwogCi1zdGF0aWMgYm9vbF90IF9f aW5pdGRhdGEgZWZpX3JzX2VuYWJsZSA9IDE7CiBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgZWZp X21hcF91YzsKIAogc3RhdGljIHZvaWQgX19pbml0IHBhcnNlX2VmaV9wYXJhbShjaGFyICpzKQpA QCAtMTE3MSw3ICsxMTc3LDEyIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9lZmlfcGFyYW0o Y2hhciAqcykKICAgICAgICAgICAgICpzcyA9ICdcMCc7CiAKICAgICAgICAgaWYgKCAhc3RyY21w KHMsICJycyIpICkKLSAgICAgICAgICAgIGVmaV9yc19lbmFibGUgPSB2YWw7CisgICAgICAgIHsK KyAgICAgICAgICAgIGlmICggdmFsICkKKyAgICAgICAgICAgICAgICBfX3NldF9iaXQoRUZJX1JT LCAmZWZpX2ZsYWdzKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBfX2NsZWFy X2JpdChFRklfUlMsICZlZmlfZmxhZ3MpOworICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCAh c3RyY21wKHMsICJhdHRyPXVjIikgKQogICAgICAgICAgICAgZWZpX21hcF91YyA9IHZhbDsKIApA QCAtMTI1NCw3ICsxMjY1LDcgQEAgdm9pZCBfX2luaXQgZWZpX2luaXRfbWVtb3J5KHZvaWQpCiAg ICAgICAgICAgICAgICBkZXNjLT5QaHlzaWNhbFN0YXJ0LCBkZXNjLT5QaHlzaWNhbFN0YXJ0ICsg bGVuIC0gMSwKICAgICAgICAgICAgICAgIGRlc2MtPlR5cGUsIGRlc2MtPkF0dHJpYnV0ZSk7CiAK LSAgICAgICAgaWYgKCAhZWZpX3JzX2VuYWJsZSB8fAorICAgICAgICBpZiAoICFlZmlfZW5hYmxl ZChFRklfUlMpIHx8CiAgICAgICAgICAgICAgKCEoZGVzYy0+QXR0cmlidXRlICYgRUZJX01FTU9S WV9SVU5USU1FKSAmJgogICAgICAgICAgICAgICAoIW1hcF9icyB8fAogICAgICAgICAgICAgICAg KGRlc2MtPlR5cGUgIT0gRWZpQm9vdFNlcnZpY2VzQ29kZSAmJgpAQCAtMTMyOCw3ICsxMzM5LDcg QEAgdm9pZCBfX2luaXQgZWZpX2luaXRfbWVtb3J5KHZvaWQpCiAgICAgICAgIH0KICAgICB9CiAK LSAgICBpZiAoICFlZmlfcnNfZW5hYmxlICkKKyAgICBpZiAoICFlZmlfZW5hYmxlZChFRklfUlMp ICkKICAgICB7CiAgICAgICAgIGVmaV9md192ZW5kb3IgPSBOVUxMOwogICAgICAgICByZXR1cm47 CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2VmaS9ydW50aW1lLmMgYi94ZW4vY29tbW9uL2VmaS9y dW50aW1lLmMKaW5kZXggYzI1NjgxNC4uNWYyZGU4MCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9l ZmkvcnVudGltZS5jCisrKyBiL3hlbi9jb21tb24vZWZpL3J1bnRpbWUuYwpAQCAtMTAsMTIgKzEw LDYgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoQ0hBUjE2KTsKIAogI2lmbmRlZiBDT01QQVQK IAotLyoKLSAqIEN1cnJlbnRseSBydW50aW1lIHNlcnZpY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQg b24gQVJNLiBUbyBib290IFhlbiB3aXRoIEFDUEksCi0gKiBzZXQgZWZpX2VuYWJsZWQgdG8gMSwg c28gdGhhdCBYZW4gY2FuIGdldCB0aGUgQUNQSSByb290IHBvaW50ZXIgZnJvbSBFRkkuCi0gKi8K LWNvbnN0IGJvb2xfdCBlZmlfZW5hYmxlZCA9IDE7Ci0KICNpZm5kZWYgQ09ORklHX0FSTQogIyBp bmNsdWRlIDxhc20vaTM4Ny5oPgogIyBpbmNsdWRlIDxhc20veHN0YXRlLmg+CkBAIC00Myw2ICsz Nyw5IEBAIFVJTlQ2NCBfX3JlYWRfbW9zdGx5IGVmaV9ib290X21heF92YXJfc3RvcmVfc2l6ZTsK IFVJTlQ2NCBfX3JlYWRfbW9zdGx5IGVmaV9ib290X3JlbWFpbl92YXJfc3RvcmVfc2l6ZTsKIFVJ TlQ2NCBfX3JlYWRfbW9zdGx5IGVmaV9ib290X21heF92YXJfc2l6ZTsKIAorLyogQml0IGZpZWxk IHJlcHJlc2VudGluZyBhdmFpbGFibGUgRUZJIGZlYXR1cmVzL3Byb3BlcnRpZXMuICovCit1bnNp Z25lZCBpbnQgZWZpX2ZsYWdzOworCiBzdHJ1Y3QgZWZpIF9fcmVhZF9tb3N0bHkgZWZpID0gewog CS5hY3BpICAgPSBFRklfSU5WQUxJRF9UQUJMRV9BRERSLAogCS5hY3BpMjAgPSBFRklfSU5WQUxJ RF9UQUJMRV9BRERSLApAQCAtNTMsNiArNTAsMTEgQEAgc3RydWN0IGVmaSBfX3JlYWRfbW9zdGx5 IGVmaSA9IHsKIAogY29uc3Qgc3RydWN0IGVmaV9wY2lfcm9tICpfX3JlYWRfbW9zdGx5IGVmaV9w Y2lfcm9tczsKIAorYm9vbCBlZmlfZW5hYmxlZCh1bnNpZ25lZCBpbnQgZmVhdHVyZSkKK3sKKyAg ICByZXR1cm4gdGVzdF9iaXQoZmVhdHVyZSwgJmVmaV9mbGFncyk7Cit9CisKICNpZm5kZWYgQ09O RklHX0FSTSAvKiBUT0RPIC0gZGlzYWJsZWQgdW50aWwgaW1wbGVtZW50ZWQgb24gQVJNICovCiB1 bnNpZ25lZCBsb25nIGVmaV9yc19lbnRlcih2b2lkKQogewpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi92ZXJzaW9uLmMgYi94ZW4vY29tbW9uL3ZlcnNpb24uYwppbmRleCAwZDMxZTM4Li4yMjNjYjUy IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3ZlcnNpb24uYworKysgYi94ZW4vY29tbW9uL3ZlcnNp b24uYwpAQCAtMTYwLDcgKzE2MCw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHhlbl9idWlsZF9pbml0 KHZvaWQpCiAKICNpZmRlZiBDT05GSUdfWDg2CiAgICAgLyogQWx0ZXJuYXRpdmVseSB3ZSBtYXkg aGF2ZSBhIENvZGVWaWV3IHJlY29yZCBmcm9tIGFuIEVGSSBidWlsZC4gKi8KLSAgICBpZiAoIHJj ICYmIGVmaV9lbmFibGVkICkKKyAgICBpZiAoIHJjICYmIGVmaV9lbmFibGVkKEVGSV9MT0FERVIp ICkKICAgICB7CiAgICAgICAgIGNvbnN0IHN0cnVjdCBwZV9leHRlcm5hbF9kZWJ1Z19kaXJlY3Rv cnkgKmRpciA9IChjb25zdCB2b2lkICopbjsKIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvYWNw aS9vc2wuYyBiL3hlbi9kcml2ZXJzL2FjcGkvb3NsLmMKaW5kZXggOWE0OTAyOS4uMzYxNmRmZCAx MDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvYWNwaS9vc2wuYworKysgYi94ZW4vZHJpdmVycy9hY3Bp L29zbC5jCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgX19pbml0IGFjcGlfb3NfdnByaW50Zihjb25z dCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykKIAogYWNwaV9waHlzaWNhbF9hZGRyZXNzIF9faW5p dCBhY3BpX29zX2dldF9yb290X3BvaW50ZXIodm9pZCkKIHsKLQlpZiAoZWZpX2VuYWJsZWQpIHsK KwlpZiAoZWZpX2VuYWJsZWQoRUZJX0JPT1QpKSB7CiAJCWlmIChlZmkuYWNwaTIwICE9IEVGSV9J TlZBTElEX1RBQkxFX0FERFIpCiAJCQlyZXR1cm4gZWZpLmFjcGkyMDsKIAkJZWxzZSBpZiAoZWZp LmFjcGkgIT0gRUZJX0lOVkFMSURfVEFCTEVfQUREUikKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L3hlbi9lZmkuaCBiL3hlbi9pbmNsdWRlL3hlbi9lZmkuaAppbmRleCBlNzRkYWQxLi42OGM2OGE4 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vZWZpLmgKKysrIGIveGVuL2luY2x1ZGUveGVu L2VmaS5oCkBAIC01LDEwICs1LDEzIEBACiAjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CiAjZW5kaWYK IAotZXh0ZXJuIGNvbnN0IGJvb2xfdCBlZmlfZW5hYmxlZDsKLQogI2RlZmluZSBFRklfSU5WQUxJ RF9UQUJMRV9BRERSICh+MFVMKQogCitleHRlcm4gdW5zaWduZWQgaW50IGVmaV9mbGFnczsKKyNk ZWZpbmUgRUZJX0JPT1QJMAkvKiBXZXJlIHdlIGJvb3RlZCBmcm9tIEVGST8gKi8KKyNkZWZpbmUg RUZJX0xPQURFUgkxCS8qIFdlcmUgd2UgYm9vdGVkIGRpcmVjdGx5IGZyb20gRUZJIGxvYWRlcj8g Ki8KKyNkZWZpbmUgRUZJX1JTCQkyCS8qIENhbiB3ZSB1c2UgcnVudGltZSBzZXJ2aWNlcz8gKi8K KwogLyogQWRkIGZpZWxkcyBoZXJlIG9ubHkgaWYgdGhleSBuZWVkIHRvIGJlIHJlZmVyZW5jZWQg ZnJvbSBub24tRUZJIGNvZGUuICovCiBzdHJ1Y3QgZWZpIHsKICAgICB1bnNpZ25lZCBsb25nIG1w czsgICAgICAgICAgLyogTVBTIHRhYmxlICovCkBAIC0yOCw2ICszMSw3IEBAIHVuaW9uIGNvbXBh dF9wZl9lZmlfaW5mbzsKIHN0cnVjdCB4ZW5wZl9lZmlfcnVudGltZV9jYWxsOwogc3RydWN0IGNv bXBhdF9wZl9lZmlfcnVudGltZV9jYWxsOwogCitib29sIGVmaV9lbmFibGVkKHVuc2lnbmVkIGlu dCBmZWF0dXJlKTsKIHZvaWQgZWZpX2luaXRfbWVtb3J5KHZvaWQpOwogYm9vbF90IGVmaV9yc191 c2luZ19wZ3RhYmxlcyh2b2lkKTsKIHVuc2lnbmVkIGxvbmcgZWZpX2dldF90aW1lKHZvaWQpOwot LSAKMS43LjEwLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK