From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v8 17/25] xsplice: Add support for alternatives Date: Wed, 13 Apr 2016 17:09:48 -0400 Message-ID: <1460581796-30071-18-git-send-email-konrad.wilk@oracle.com> References: <1460581796-30071-1-git-send-email-konrad.wilk@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 ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqS3O-0006GM-7V for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 21:10:26 +0000 In-Reply-To: <1460581796-30071-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: konrad@kernel.org, xen-devel@lists.xenproject.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpBZGQgc3Vw cG9ydCBmb3IgYXBwbHlpbmcgYWx0ZXJuYXRpdmUgc2VjdGlvbnMgd2l0aGluIHhzcGxpY2UgcGF5 bG9hZC4KQXQgcGF5bG9hZCBsb2FkIHRpbWUsIGFwcGx5IGFuIGFsdGVybmF0aXZlIHNlY3Rpb25z IHRoYXQgYXJlIGZvdW5kLgoKQWxzbyB3ZSBhZGQgYW4gdGVzdC1jYXNlIGV4ZXJjaXNpbmcgYSBy YXRoZXIgdXNlbGVzcyBhbHRlcm5hdGl2ZQoocGF0Y2hpbmcgYSBOT1Agd2l0aCBhIE5PUCkgLSBi dXQgaXQgZG9lcyBleGVyY2lzZSB0aGUgY29kZS1wYXRoLgoKU2lnbmVkLW9mZi1ieTogUm9zcyBM YWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+ClNpZ25lZC1vZmYtYnk6IEtvbnJh ZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KUmV2aWV3ZWQtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CgotLS0KQ2M6IEtlaXIgRnJh c2VyIDxrZWlyQHhlbi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNj OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjI6IE1ha2UgYSBu ZXcgYWx0ZXJuYXRpdmUgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBBU1NFUlQgb24gSVJRcyBhbmQK ICAgIGRvbid0IGRpc2FibGUgSVJRcyBpbiB0aGUgY29kZSB3aGVuIGxvYWRpbmcgcGF5bG9hZC4K djQ6IEluY2x1ZGUgdGVzdC1jYXNlCiAgICBJbmNsdWRlIGNoZWNrIGZvciBzaXplIG9mIGFsdGVy bmF0aXZlcyBhbmQgdGhhdCBpdCBpcyBub3QgYSAwIHNpemUKICAgIHNlY3Rpb24uCnY2OiBBZGQg I2RlZmluZSBJTklUIHRvIHByZXNlcnZlIF9faW5pdG5lc3Mgb24gYWx0ZXJuYXRpdmUgY29kZS4K ICAgIERvdWJsZSBjaGVjayB0aGF0IGFsdF9pbnN0ciBhcmUgb25seSBwYXRjaGluZyBwYXlsb2Fk IGNvZGUuCnY3OiBNb3ZlIGNyMCBtYW5pcHVsYXRpb24gaW4gYXBwbHlfYWx0ZXJuYXRpdmVzLgog ICAgaWZkZWYgYXJvdW5kIGFsdGVybmF0aXZlLm8gaW4gTWFrZWZpbGUKICAgIFBpY2sgWDg2X0ZF QVRVUkVfTE0gaW4gdGVzdC1jYXNlCiAgICBEcm9wIGNhc3RpbmcgZnJvbSBsb2FkX2FkZHIKICAg IEl0IGlzIGFsdGVybmF0aXZlLmluaXQubywgbm90IGFsdGVybmF0aXZlX2luaXQubyAodGhhbmtz IEFuZHJldyEpCnY4OiBDaGFuZ2UgWEVOTE9HX0RFQlVHIHRvIFhFTkxPR19FUlIgb24gZHByaW50 ay4KLS0tCi0tLQogeGVuL2FyY2gveDg2L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICA0 ICsrKwogeGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMgICAgICAgICAgICAgICB8IDQyICsrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9f d29ybGRfZnVuYy5jIHwgIDUgKysrKwogeGVuL2NvbW1vbi94c3BsaWNlLmMgICAgICAgICAgICAg ICAgICAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vaW5jbHVkZS9hc20t eDg2L2FsdGVybmF0aXZlLmggICAgICAgIHwgIDQgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDc0IGlu c2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9N YWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQppbmRleCA0Y2UyMzQ2Li5kYTVhMTM1IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L01ha2Vm aWxlCkBAIC02LDcgKzYsMTEgQEAgc3ViZGlyLXkgKz0gbW0KIHN1YmRpci0kKENPTkZJR19YRU5P UFJPRikgKz0gb3Byb2ZpbGUKIHN1YmRpci15ICs9IHg4Nl82NAogCitpZmRlZiBDT05GSUdfWFNQ TElDRQorb2JqLXkgKz0gYWx0ZXJuYXRpdmUubworZWxzZQogb2JqLWJpbi15ICs9IGFsdGVybmF0 aXZlLmluaXQubworZW5kaWYKIG9iai15ICs9IGFwaWMubwogb2JqLXkgKz0gYml0b3BzLm8KIG9i ai1iaW4teSArPSBiemltYWdlLmluaXQubwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2FsdGVy bmF0aXZlLmMgYi94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYwppbmRleCBmNzM1ZmY4Li4zNjZh ZDg2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWx0ZXJuYXRpdmUuYworKysgYi94ZW4vYXJj aC94ODYvYWx0ZXJuYXRpdmUuYwpAQCAtMjIsMTMgKzIyLDE0IEBACiAjaW5jbHVkZSA8YXNtL3N5 c3RlbS5oPgogI2luY2x1ZGUgPGFzbS90cmFwcy5oPgogI2luY2x1ZGUgPGFzbS9ubWkuaD4KKyNp bmNsdWRlIDx4ZW4veHNwbGljZS5oPgogCiAjZGVmaW5lIE1BWF9QQVRDSF9MRU4gKDI1NS0xKQog CiBleHRlcm4gc3RydWN0IGFsdF9pbnN0ciBfX2FsdF9pbnN0cnVjdGlvbnNbXSwgX19hbHRfaW5z dHJ1Y3Rpb25zX2VuZFtdOwogCiAjaWZkZWYgSzhfTk9QMQotc3RhdGljIGNvbnN0IHVuc2lnbmVk IGNoYXIgazhub3BzW10gX19pbml0Y29uc3QgPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hh ciBrOG5vcHNbXSBfX0lOSVRDT05TVCA9IHsKICAgICBLOF9OT1AxLAogICAgIEs4X05PUDIsCiAg ICAgSzhfTk9QMywKQEAgLTUyLDcgKzUzLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg KiBjb25zdCBrOF9ub3BzW0FTTV9OT1BfTUFYKzFdIF9faW5pdGNvbnN0cmVsID0gewogI2VuZGlm CiAKICNpZmRlZiBQNl9OT1AxCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNbXSBf X2luaXRjb25zdCA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHA2bm9wc1tdIF9fSU5J VENPTlNUID0gewogICAgIFA2X05PUDEsCiAgICAgUDZfTk9QMiwKICAgICBQNl9OT1AzLApAQCAt NzUsNyArNzYsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0IHA2X25vcHNb QVNNX05PUF9NQVgrMV0gX19pbml0Y29uc3RyZWwgPSB7CiB9OwogI2VuZGlmCiAKLXN0YXRpYyBj b25zdCB1bnNpZ25lZCBjaGFyICogY29uc3QgKmlkZWFsX25vcHMgX19pbml0ZGF0YSA9IGs4X25v cHM7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0ICppZGVhbF9ub3BzIF9fSU5J VERBVEEgPSBrOF9ub3BzOwogCiBzdGF0aWMgaW50IF9faW5pdCBtYXNrX25taV9jYWxsYmFjayhj b25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywgaW50IGNwdSkKIHsKQEAgLTEwMCw3ICsx MDEsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYXJjaF9pbml0X2lkZWFsX25vcHModm9pZCkKIH0K IAogLyogVXNlIHRoaXMgdG8gYWRkIG5vcHMgdG8gYSBidWZmZXIsIHRoZW4gdGV4dF9wb2tlIHRo ZSB3aG9sZSBidWZmZXIuICovCi1zdGF0aWMgdm9pZCBfX2luaXQgYWRkX25vcHModm9pZCAqaW5z bnMsIHVuc2lnbmVkIGludCBsZW4pCitzdGF0aWMgdm9pZCBfX0lOSVQgYWRkX25vcHModm9pZCAq aW5zbnMsIHVuc2lnbmVkIGludCBsZW4pCiB7CiAgICAgd2hpbGUgKCBsZW4gPiAwICkKICAgICB7 CkBAIC0xMTQsNyArMTE1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGFkZF9ub3BzKHZvaWQgKmlu c25zLCB1bnNpZ25lZCBpbnQgbGVuKQogfQogCiAvKgotICogdGV4dF9wb2tlX2Vhcmx5IC0gVXBk YXRlIGluc3RydWN0aW9ucyBvbiBhIGxpdmUga2VybmVsIGF0IGJvb3QgdGltZQorICogdGV4dF9w b2tlIC0gVXBkYXRlIGluc3RydWN0aW9ucyBvbiBhIGxpdmUga2VybmVsIG9yIG5vbi1leGVjdXRl ZCBjb2RlLgogICogQGFkZHI6IGFkZHJlc3MgdG8gbW9kaWZ5CiAgKiBAb3Bjb2RlOiBzb3VyY2Ug b2YgdGhlIGNvcHkKICAqIEBsZW46IGxlbmd0aCB0byBjb3B5CkBAIC0xMjUsOSArMTI2LDEwIEBA IHN0YXRpYyB2b2lkIF9faW5pdCBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQgaW50IGxl bikKICAqIGluc3RydWN0aW9ucy4gQW5kIG9uIHRoZSBsb2NhbCBDUFUgeW91IG5lZWQgdG8gYmUg cHJvdGVjdGVkIGFnYWluIE5NSSBvciBNQ0UKICAqIGhhbmRsZXJzIHNlZWluZyBhbiBpbmNvbnNp c3RlbnQgaW5zdHJ1Y3Rpb24gd2hpbGUgeW91IHBhdGNoLgogICoKLSAqIFRoaXMgcm91dGluZSBp cyBjYWxsZWQgd2l0aCBsb2NhbCBpbnRlcnJ1cHQgZGlzYWJsZWQuCisgKiBZb3Ugc2hvdWxkIHJ1 biB0aGlzIHdpdGggaW50ZXJydXB0cyBkaXNhYmxlZCBvciBvbiBjb2RlIHRoYXQgaGFzIG5ldmVy CisgKiBiZWVuIGV4ZWN1dGVkLgogICovCi1zdGF0aWMgdm9pZCAqX19pbml0IHRleHRfcG9rZV9l YXJseSh2b2lkICphZGRyLCBjb25zdCB2b2lkICpvcGNvZGUsIHNpemVfdCBsZW4pCitzdGF0aWMg dm9pZCAqX19JTklUIHRleHRfcG9rZSh2b2lkICphZGRyLCBjb25zdCB2b2lkICpvcGNvZGUsIHNp emVfdCBsZW4pCiB7CiAgICAgbWVtY3B5KGFkZHIsIG9wY29kZSwgbGVuKTsKICAgICBzeW5jX2Nv cmUoKTsKQEAgLTE0MiwyMCArMTQ0LDE0IEBAIHN0YXRpYyB2b2lkICpfX2luaXQgdGV4dF9wb2tl X2Vhcmx5KHZvaWQgKmFkZHIsIGNvbnN0IHZvaWQgKm9wY29kZSwgc2l6ZV90IGxlbikKICAqIEFQ cyBoYXZlIGxlc3MgY2FwYWJpbGl0aWVzIHRoYW4gdGhlIGJvb3QgcHJvY2Vzc29yIGFyZSBub3Qg aGFuZGxlZC4KICAqIFRvdWdoLiBNYWtlIHN1cmUgeW91IGRpc2FibGUgc3VjaCBmZWF0dXJlcyBi eSBoYW5kLgogICovCi1zdGF0aWMgdm9pZCBfX2luaXQgYXBwbHlfYWx0ZXJuYXRpdmVzKHN0cnVj dCBhbHRfaW5zdHIgKnN0YXJ0LCBzdHJ1Y3QgYWx0X2luc3RyICplbmQpCit2b2lkIF9fSU5JVCBh cHBseV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0 IGFsdF9pbnN0ciAqZW5kKQogewogICAgIHN0cnVjdCBhbHRfaW5zdHIgKmE7CiAgICAgdTggKmlu c3RyLCAqcmVwbGFjZW1lbnQ7CiAgICAgdTggaW5zbmJ1ZltNQVhfUEFUQ0hfTEVOXTsKLSAgICB1 bnNpZ25lZCBsb25nIGNyMCA9IHJlYWRfY3IwKCk7Ci0KLSAgICBBU1NFUlQoIWxvY2FsX2lycV9p c19lbmFibGVkKCkpOwogCiAgICAgcHJpbnRrKEtFUk5fSU5GTyAiYWx0IHRhYmxlICVwIC0+ICVw XG4iLCBzdGFydCwgZW5kKTsKIAotICAgIC8qIERpc2FibGUgV1AgdG8gYWxsb3cgYXBwbGljYXRp b24gb2YgYWx0ZXJuYXRpdmVzIHRvIHJlYWQtb25seSBwYWdlcy4gKi8KLSAgICB3cml0ZV9jcjAo Y3IwICYgflg4Nl9DUjBfV1ApOwotCiAgICAgLyoKICAgICAgKiBUaGUgc2NhbiBvcmRlciBzaG91 bGQgYmUgZnJvbSBzdGFydCB0byBlbmQuIEEgbGF0ZXIgc2Nhbm5lZAogICAgICAqIGFsdGVybmF0 aXZlIGNvZGUgY2FuIG92ZXJ3cml0ZSBhIHByZXZpb3VzIHNjYW5uZWQgYWx0ZXJuYXRpdmUgY29k ZS4KQEAgLTE4Myw4ICsxNzksMjQgQEAgc3RhdGljIHZvaWQgX19pbml0IGFwcGx5X2FsdGVybmF0 aXZlcyhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0IGFsdF9pbnN0cgogCiAgICAgICAg IGFkZF9ub3BzKGluc25idWYgKyBhLT5yZXBsYWNlbWVudGxlbiwKICAgICAgICAgICAgICAgICAg YS0+aW5zdHJsZW4gLSBhLT5yZXBsYWNlbWVudGxlbik7Ci0gICAgICAgIHRleHRfcG9rZV9lYXJs eShpbnN0ciwgaW5zbmJ1ZiwgYS0+aW5zdHJsZW4pOworICAgICAgICB0ZXh0X3Bva2UoaW5zdHIs IGluc25idWYsIGEtPmluc3RybGVuKTsKICAgICB9Cit9CisKKy8qCisgKiBUaGlzIHJvdXRpbmUg aXMgY2FsbGVkIHdpdGggbG9jYWwgaW50ZXJydXB0IGRpc2FibGVkIGFuZCB1c2VkIGR1cmluZwor ICogYm9vdHVwLgorICovCit2b2lkIF9faW5pdCBhcHBseV9hbHRlcm5hdGl2ZXMoc3RydWN0IGFs dF9pbnN0ciAqc3RhcnQsIHN0cnVjdCBhbHRfaW5zdHIgKmVuZCkKK3sKKyAgICB1bnNpZ25lZCBs b25nIGNyMCA9IHJlYWRfY3IwKCk7CisKKyAgICBBU1NFUlQoIWxvY2FsX2lycV9pc19lbmFibGVk KCkpOworCisgICAgLyogRGlzYWJsZSBXUCB0byBhbGxvdyBhcHBsaWNhdGlvbiBvZiBhbHRlcm5h dGl2ZXMgdG8gcmVhZC1vbmx5IHBhZ2VzLiAqLworICAgIHdyaXRlX2NyMChjcjAgJiB+WDg2X0NS MF9XUCk7CisKKyAgICBhcHBseV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdGFydCwgZW5kKTsKIAog ICAgIC8qIFJlaW5zdGF0ZSBXUC4gKi8KICAgICB3cml0ZV9jcjAoY3IwKTsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZF9mdW5jLmMgYi94ZW4vYXJjaC94ODYv dGVzdC94ZW5faGVsbG9fd29ybGRfZnVuYy5jCmluZGV4IDQzMjk1NGYuLmI1NzgyMmEgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZF9mdW5jLmMKKysrIGIveGVu L2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkX2Z1bmMuYwpAQCAtMyw2ICszLDkgQEAKICAq CiAgKi8KIAorI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2ZS5oPgorI2luY2x1ZGUgPGFzbS9ub3Bz Lmg+CisjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KIAog c3RhdGljIHVuc2lnbmVkIGxvbmcgKm5vbl9jYW5vbmljYWxfYWRkciA9ICh1bnNpZ25lZCBsb25n ICopKDB4ZGVhZDAwMDAwMDAwMDAwMFVMTCk7CkBAIC0xMiw2ICsxNSw4IEBAIGNvbnN0IGNoYXIg Knhlbl9oZWxsb193b3JsZCh2b2lkKQogewogICAgIHVuc2lnbmVkIGxvbmcgdG1wOwogICAgIGlu dCByYzsKKworICAgIGFsdGVybmF0aXZlKEFTTV9OT1AxLCBBU01fTk9QMSwgWDg2X0ZFQVRVUkVf TE0pOwogICAgIC8qCiAgICAgICogQW55IEJVRywgb3IgV0FSTl9PTiB3aWxsIGNvbnRhaW4gc3lt Ym9sIGFuZCBwYXlsb2FkIG5hbWUuIEZ1cnRoZXJtb3JlCiAgICAgICogZXhjZXB0aW9ucyB3aWxs IGJlIGNhdWdodCBhbmQgcHJvY2Vzc2VkIHByb3Blcmx5LgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi94c3BsaWNlLmMgYi94ZW4vY29tbW9uL3hzcGxpY2UuYwppbmRleCAwODkzMjFmLi5hNjMyM2Uy IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3hzcGxpY2UuYworKysgYi94ZW4vY29tbW9uL3hzcGxp Y2UuYwpAQCAtNTMzLDYgKzUzMywzOSBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1 Y3QgcGF5bG9hZCAqcGF5bG9hZCwKICAgICB9CiAKICNpZm5kZWYgQ09ORklHX0FSTQorICAgIHNl YyA9IHhzcGxpY2VfZWxmX3NlY19ieV9uYW1lKGVsZiwgIi5hbHRpbnN0cnVjdGlvbnMiKTsKKyAg ICBpZiAoIHNlYyApCisgICAgeworICAgICAgICBzdHJ1Y3QgYWx0X2luc3RyICphLCAqc3RhcnQs ICplbmQ7CisKKyAgICAgICAgaWYgKCAhc2VjLT5zZWMtPnNoX3NpemUgfHwKKyAgICAgICAgICAg ICAoc2VjLT5zZWMtPnNoX3NpemUgJSBzaXplb2YoKmEpKSApCisgICAgICAgIHsKKyAgICAgICAg ICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAiJXM6IFdyb25nIHNpemUgb2YgLmFsdF9p bnN0ciAoZXhwOiVsdSB2cyAlbHUpIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1l LCBzaXplb2YoKmEpLAorICAgICAgICAgICAgICAgICAgICBzZWMtPnNlYy0+c2hfc2l6ZSk7Cisg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXJ0ID0g c2VjLT5sb2FkX2FkZHI7CisgICAgICAgIGVuZCA9IHNlYy0+bG9hZF9hZGRyICsgc2VjLT5zZWMt PnNoX3NpemU7CisKKyAgICAgICAgZm9yICggYSA9IHN0YXJ0OyBhIDwgZW5kOyBhKysgKQorICAg ICAgICB7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGluc3RyID0gKHVuc2lnbmVkIGxvbmcp KCZhLT5pbnN0cl9vZmZzZXQgKyBhLT5pbnN0cl9vZmZzZXQpOworICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyByZXBsYWNlbWVudCA9ICh1bnNpZ25lZCBsb25nKSgmYS0+cmVwbF9vZmZzZXQgKyBh LT5yZXBsX29mZnNldCk7CisKKyAgICAgICAgICAgIGlmICggKGluc3RyIDwgcmVnaW9uLT5zdGFy dCAmJiBpbnN0ciA+PSByZWdpb24tPmVuZCkgfHwKKyAgICAgICAgICAgICAgICAgKHJlcGxhY2Vt ZW50IDwgcmVnaW9uLT5zdGFydCAmJiByZXBsYWNlbWVudCA+PSByZWdpb24tPmVuZCkgKQorICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiwgWFNQTElDRSAi JXMgQWx0IHBhdGNoaW5nIG91dHNpZGUgcGF5bG9hZDogMHglbHghXG4iLAorICAgICAgICAgICAg ICAgICAgICAgICAgZWxmLT5uYW1lLCBpbnN0cik7CisgICAgICAgICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYXBwbHlfYWx0ZXJuYXRp dmVzX25vY2hlY2soc3RhcnQsIGVuZCk7CisgICAgfQorCiAgICAgc2VjID0geHNwbGljZV9lbGZf c2VjX2J5X25hbWUoZWxmLCAiLmV4X3RhYmxlIik7CiAgICAgaWYgKCBzZWMgKQogICAgIHsKQEAg LTU1NSw2ICs1ODgsNyBAQCBzdGF0aWMgaW50IHByZXBhcmVfcGF5bG9hZChzdHJ1Y3QgcGF5bG9h ZCAqcGF5bG9hZCwKICAgICAgICAgcmVnaW9uLT5leCA9IHM7CiAgICAgICAgIHJlZ2lvbi0+ZXhf ZW5kID0gZTsKICAgICB9CisKICNlbmRpZgogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2Fs dGVybmF0aXZlLmgKaW5kZXggMTA1NjYzMC4uYmNlOTU5ZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJu YXRpdmUuaApAQCAtMjMsNiArMjMsMTAgQEAgc3RydWN0IGFsdF9pbnN0ciB7CiAgICAgdTggIHJl cGxhY2VtZW50bGVuOyAgICAgLyogbGVuZ3RoIG9mIG5ldyBpbnN0cnVjdGlvbiwgPD0gaW5zdHJs ZW4gKi8KIH07CiAKKy8qIFNpbWlsYXIgdG8gYXBwbHlfYWx0ZXJuYXRpdmVzIGV4Y2VwdCBpdCBj YW4gYmUgcnVuIHdpdGggSVJRcyBlbmFibGVkLiAqLworZXh0ZXJuIHZvaWQgYXBwbHlfYWx0ZXJu YXRpdmVzX25vY2hlY2soc3RydWN0IGFsdF9pbnN0ciAqc3RhcnQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYWx0X2luc3RyICplbmQpOworZXh0ZXJuIHZv aWQgYXBwbHlfYWx0ZXJuYXRpdmVzKHN0cnVjdCBhbHRfaW5zdHIgKnN0YXJ0LCBzdHJ1Y3QgYWx0 X2luc3RyICplbmQpOwogZXh0ZXJuIHZvaWQgYWx0ZXJuYXRpdmVfaW5zdHJ1Y3Rpb25zKHZvaWQp OwogCiAjZGVmaW5lIE9MRElOU1RSKG9sZGluc3RyKSAgICAgICI2NjE6XG5cdCIgb2xkaW5zdHIg IlxuNjYyOlxuIgotLSAKMi41LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=