From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v7 16/24] xsplice: Add support for alternatives Date: Sun, 10 Apr 2016 17:14:48 -0400 Message-ID: <1460322896-1115-17-git-send-email-konrad.wilk@oracle.com> References: <1460322896-1115-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1apMhw-0000Jm-26 for xen-devel@lists.xenproject.org; Sun, 10 Apr 2016 21:15:48 +0000 In-Reply-To: <1460322896-1115-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: xen-devel@lists.xenproject.org, konrad@kernel.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 IEFuZHJldyEpCi0tLQotLS0KIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgfCAgNCArKysKIHhlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jICAgICAgICAgICAgICAgfCA0 MiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3Rlc3QveGVu X2hlbGxvX3dvcmxkX2Z1bmMuYyB8ICA1ICsrKysKIHhlbi9jb21tb24veHNwbGljZS5jICAgICAg ICAgICAgICAgICAgICAgfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1 ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oICAgICAgICB8ICA0ICsrKwogNSBmaWxlcyBjaGFuZ2Vk LCA3NCBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKaW5kZXggNTdjOTNlMS4uZDIx MGJiNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01ha2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4 Ni9NYWtlZmlsZQpAQCAtNiw3ICs2LDExIEBAIHN1YmRpci15ICs9IG1tCiBzdWJkaXItJChDT05G SUdfWEVOT1BST0YpICs9IG9wcm9maWxlCiBzdWJkaXIteSArPSB4ODZfNjQKIAoraWZkZWYgQ09O RklHX1hTUExJQ0UKK29iai15ICs9IGFsdGVybmF0aXZlLm8KK2Vsc2UKIG9iai1iaW4teSArPSBh bHRlcm5hdGl2ZS5pbml0Lm8KK2VuZGlmCiBvYmoteSArPSBhcGljLm8KIG9iai15ICs9IGJpdG9w cy5vCiBvYmotYmluLXkgKz0gYnppbWFnZS5pbml0Lm8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9hbHRlcm5hdGl2ZS5jIGIveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKaW5kZXggZjczNWZm OC4uMzY2YWQ4NiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKKysrIGIv eGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKQEAgLTIyLDEzICsyMiwxNCBAQAogI2luY2x1ZGUg PGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vdHJhcHMuaD4KICNpbmNsdWRlIDxhc20vbm1p Lmg+CisjaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KIAogI2RlZmluZSBNQVhfUEFUQ0hfTEVOICgy NTUtMSkKIAogZXh0ZXJuIHN0cnVjdCBhbHRfaW5zdHIgX19hbHRfaW5zdHJ1Y3Rpb25zW10sIF9f YWx0X2luc3RydWN0aW9uc19lbmRbXTsKIAogI2lmZGVmIEs4X05PUDEKLXN0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIGs4bm9wc1tdIF9faW5pdGNvbnN0ID0geworc3RhdGljIGNvbnN0IHVuc2ln bmVkIGNoYXIgazhub3BzW10gX19JTklUQ09OU1QgPSB7CiAgICAgSzhfTk9QMSwKICAgICBLOF9O T1AyLAogICAgIEs4X05PUDMsCkBAIC01Miw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25l ZCBjaGFyICogY29uc3Qgazhfbm9wc1tBU01fTk9QX01BWCsxXSBfX2luaXRjb25zdHJlbCA9IHsK ICNlbmRpZgogCiAjaWZkZWYgUDZfTk9QMQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcDZu b3BzW10gX19pbml0Y29uc3QgPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNb XSBfX0lOSVRDT05TVCA9IHsKICAgICBQNl9OT1AxLAogICAgIFA2X05PUDIsCiAgICAgUDZfTk9Q MywKQEAgLTc1LDcgKzc2LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCBw Nl9ub3BzW0FTTV9OT1BfTUFYKzFdIF9faW5pdGNvbnN0cmVsID0gewogfTsKICNlbmRpZgogCi1z dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0ICppZGVhbF9ub3BzIF9faW5pdGRhdGEg PSBrOF9ub3BzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCAqaWRlYWxfbm9w cyBfX0lOSVREQVRBID0gazhfbm9wczsKIAogc3RhdGljIGludCBfX2luaXQgbWFza19ubWlfY2Fs bGJhY2soY29uc3Qgc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGludCBjcHUpCiB7CkBAIC0x MDAsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGFyY2hfaW5pdF9pZGVhbF9ub3BzKHZv aWQpCiB9CiAKIC8qIFVzZSB0aGlzIHRvIGFkZCBub3BzIHRvIGEgYnVmZmVyLCB0aGVuIHRleHRf cG9rZSB0aGUgd2hvbGUgYnVmZmVyLiAqLwotc3RhdGljIHZvaWQgX19pbml0IGFkZF9ub3BzKHZv aWQgKmluc25zLCB1bnNpZ25lZCBpbnQgbGVuKQorc3RhdGljIHZvaWQgX19JTklUIGFkZF9ub3Bz KHZvaWQgKmluc25zLCB1bnNpZ25lZCBpbnQgbGVuKQogewogICAgIHdoaWxlICggbGVuID4gMCAp CiAgICAgewpAQCAtMTE0LDcgKzExNSw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBhZGRfbm9wcyh2 b2lkICppbnNucywgdW5zaWduZWQgaW50IGxlbikKIH0KIAogLyoKLSAqIHRleHRfcG9rZV9lYXJs eSAtIFVwZGF0ZSBpbnN0cnVjdGlvbnMgb24gYSBsaXZlIGtlcm5lbCBhdCBib290IHRpbWUKKyAq IHRleHRfcG9rZSAtIFVwZGF0ZSBpbnN0cnVjdGlvbnMgb24gYSBsaXZlIGtlcm5lbCBvciBub24t ZXhlY3V0ZWQgY29kZS4KICAqIEBhZGRyOiBhZGRyZXNzIHRvIG1vZGlmeQogICogQG9wY29kZTog c291cmNlIG9mIHRoZSBjb3B5CiAgKiBAbGVuOiBsZW5ndGggdG8gY29weQpAQCAtMTI1LDkgKzEy NiwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2lnbmVk IGludCBsZW4pCiAgKiBpbnN0cnVjdGlvbnMuIEFuZCBvbiB0aGUgbG9jYWwgQ1BVIHlvdSBuZWVk IHRvIGJlIHByb3RlY3RlZCBhZ2FpbiBOTUkgb3IgTUNFCiAgKiBoYW5kbGVycyBzZWVpbmcgYW4g aW5jb25zaXN0ZW50IGluc3RydWN0aW9uIHdoaWxlIHlvdSBwYXRjaC4KICAqCi0gKiBUaGlzIHJv dXRpbmUgaXMgY2FsbGVkIHdpdGggbG9jYWwgaW50ZXJydXB0IGRpc2FibGVkLgorICogWW91IHNo b3VsZCBydW4gdGhpcyB3aXRoIGludGVycnVwdHMgZGlzYWJsZWQgb3Igb24gY29kZSB0aGF0IGhh cyBuZXZlcgorICogYmVlbiBleGVjdXRlZC4KICAqLwotc3RhdGljIHZvaWQgKl9faW5pdCB0ZXh0 X3Bva2VfZWFybHkodm9pZCAqYWRkciwgY29uc3Qgdm9pZCAqb3Bjb2RlLCBzaXplX3QgbGVuKQor c3RhdGljIHZvaWQgKl9fSU5JVCB0ZXh0X3Bva2Uodm9pZCAqYWRkciwgY29uc3Qgdm9pZCAqb3Bj b2RlLCBzaXplX3QgbGVuKQogewogICAgIG1lbWNweShhZGRyLCBvcGNvZGUsIGxlbik7CiAgICAg c3luY19jb3JlKCk7CkBAIC0xNDIsMjAgKzE0NCwxNCBAQCBzdGF0aWMgdm9pZCAqX19pbml0IHRl eHRfcG9rZV9lYXJseSh2b2lkICphZGRyLCBjb25zdCB2b2lkICpvcGNvZGUsIHNpemVfdCBsZW4p CiAgKiBBUHMgaGF2ZSBsZXNzIGNhcGFiaWxpdGllcyB0aGFuIHRoZSBib290IHByb2Nlc3NvciBh cmUgbm90IGhhbmRsZWQuCiAgKiBUb3VnaC4gTWFrZSBzdXJlIHlvdSBkaXNhYmxlIHN1Y2ggZmVh dHVyZXMgYnkgaGFuZC4KICAqLwotc3RhdGljIHZvaWQgX19pbml0IGFwcGx5X2FsdGVybmF0aXZl cyhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0IGFsdF9pbnN0ciAqZW5kKQordm9pZCBf X0lOSVQgYXBwbHlfYWx0ZXJuYXRpdmVzX25vY2hlY2soc3RydWN0IGFsdF9pbnN0ciAqc3RhcnQs IHN0cnVjdCBhbHRfaW5zdHIgKmVuZCkKIHsKICAgICBzdHJ1Y3QgYWx0X2luc3RyICphOwogICAg IHU4ICppbnN0ciwgKnJlcGxhY2VtZW50OwogICAgIHU4IGluc25idWZbTUFYX1BBVENIX0xFTl07 Ci0gICAgdW5zaWduZWQgbG9uZyBjcjAgPSByZWFkX2NyMCgpOwotCi0gICAgQVNTRVJUKCFsb2Nh bF9pcnFfaXNfZW5hYmxlZCgpKTsKIAogICAgIHByaW50ayhLRVJOX0lORk8gImFsdCB0YWJsZSAl cCAtPiAlcFxuIiwgc3RhcnQsIGVuZCk7CiAKLSAgICAvKiBEaXNhYmxlIFdQIHRvIGFsbG93IGFw cGxpY2F0aW9uIG9mIGFsdGVybmF0aXZlcyB0byByZWFkLW9ubHkgcGFnZXMuICovCi0gICAgd3Jp dGVfY3IwKGNyMCAmIH5YODZfQ1IwX1dQKTsKLQogICAgIC8qCiAgICAgICogVGhlIHNjYW4gb3Jk ZXIgc2hvdWxkIGJlIGZyb20gc3RhcnQgdG8gZW5kLiBBIGxhdGVyIHNjYW5uZWQKICAgICAgKiBh bHRlcm5hdGl2ZSBjb2RlIGNhbiBvdmVyd3JpdGUgYSBwcmV2aW91cyBzY2FubmVkIGFsdGVybmF0 aXZlIGNvZGUuCkBAIC0xODMsOCArMTc5LDI0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBhcHBseV9h bHRlcm5hdGl2ZXMoc3RydWN0IGFsdF9pbnN0ciAqc3RhcnQsIHN0cnVjdCBhbHRfaW5zdHIKIAog ICAgICAgICBhZGRfbm9wcyhpbnNuYnVmICsgYS0+cmVwbGFjZW1lbnRsZW4sCiAgICAgICAgICAg ICAgICAgIGEtPmluc3RybGVuIC0gYS0+cmVwbGFjZW1lbnRsZW4pOwotICAgICAgICB0ZXh0X3Bv a2VfZWFybHkoaW5zdHIsIGluc25idWYsIGEtPmluc3RybGVuKTsKKyAgICAgICAgdGV4dF9wb2tl KGluc3RyLCBpbnNuYnVmLCBhLT5pbnN0cmxlbik7CiAgICAgfQorfQorCisvKgorICogVGhpcyBy b3V0aW5lIGlzIGNhbGxlZCB3aXRoIGxvY2FsIGludGVycnVwdCBkaXNhYmxlZCBhbmQgdXNlZCBk dXJpbmcKKyAqIGJvb3R1cC4KKyAqLwordm9pZCBfX2luaXQgYXBwbHlfYWx0ZXJuYXRpdmVzKHN0 cnVjdCBhbHRfaW5zdHIgKnN0YXJ0LCBzdHJ1Y3QgYWx0X2luc3RyICplbmQpCit7CisgICAgdW5z aWduZWQgbG9uZyBjcjAgPSByZWFkX2NyMCgpOworCisgICAgQVNTRVJUKCFsb2NhbF9pcnFfaXNf ZW5hYmxlZCgpKTsKKworICAgIC8qIERpc2FibGUgV1AgdG8gYWxsb3cgYXBwbGljYXRpb24gb2Yg YWx0ZXJuYXRpdmVzIHRvIHJlYWQtb25seSBwYWdlcy4gKi8KKyAgICB3cml0ZV9jcjAoY3IwICYg flg4Nl9DUjBfV1ApOworCisgICAgYXBwbHlfYWx0ZXJuYXRpdmVzX25vY2hlY2soc3RhcnQsIGVu ZCk7CiAKICAgICAvKiBSZWluc3RhdGUgV1AuICovCiAgICAgd3JpdGVfY3IwKGNyMCk7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGRfZnVuYy5jIGIveGVuL2Fy Y2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkX2Z1bmMuYwppbmRleCA0MzI5NTRmLi5iNTc4MjJh IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGRfZnVuYy5jCisr KyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZF9mdW5jLmMKQEAgLTMsNiArMyw5 IEBACiAgKgogICovCiAKKyNpbmNsdWRlIDxhc20vYWx0ZXJuYXRpdmUuaD4KKyNpbmNsdWRlIDxh c20vbm9wcy5oPgorI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVuL3R5cGVz Lmg+CiAKIHN0YXRpYyB1bnNpZ25lZCBsb25nICpub25fY2Fub25pY2FsX2FkZHIgPSAodW5zaWdu ZWQgbG9uZyAqKSgweGRlYWQwMDAwMDAwMDAwMDBVTEwpOwpAQCAtMTIsNiArMTUsOCBAQCBjb25z dCBjaGFyICp4ZW5faGVsbG9fd29ybGQodm9pZCkKIHsKICAgICB1bnNpZ25lZCBsb25nIHRtcDsK ICAgICBpbnQgcmM7CisKKyAgICBhbHRlcm5hdGl2ZShBU01fTk9QMSwgQVNNX05PUDEsIFg4Nl9G RUFUVVJFX0xNKTsKICAgICAvKgogICAgICAqIEFueSBCVUcsIG9yIFdBUk5fT04gd2lsbCBjb250 YWluIHN5bWJvbCBhbmQgcGF5bG9hZCBuYW1lLiBGdXJ0aGVybW9yZQogICAgICAqIGV4Y2VwdGlv bnMgd2lsbCBiZSBjYXVnaHQgYW5kIHByb2Nlc3NlZCBwcm9wZXJseS4KZGlmZiAtLWdpdCBhL3hl bi9jb21tb24veHNwbGljZS5jIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKaW5kZXggYzdmNzBjMy4u Y2JiYjIzZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNlLmMKKysrIGIveGVuL2NvbW1v bi94c3BsaWNlLmMKQEAgLTUzMCw2ICs1MzAsMzkgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxv YWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCiAgICAgfQogCiAjaWZuZGVmIENPTkZJR19BUk0K KyAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShlbGYsICIuYWx0aW5zdHJ1Y3Rpb25z Iik7CisgICAgaWYgKCBzZWMgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGFsdF9pbnN0ciAqYSwg KnN0YXJ0LCAqZW5kOworCisgICAgICAgIGlmICggIXNlYy0+c2VjLT5zaF9zaXplIHx8CisgICAg ICAgICAgICAgKHNlYy0+c2VjLT5zaF9zaXplICUgc2l6ZW9mKCphKSkgKQorICAgICAgICB7Cisg ICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElDRSAiJXM6IFdyb25nIHNpemUg b2YgLmFsdF9pbnN0ciAoZXhwOiVsdSB2cyAlbHUpIVxuIiwKKyAgICAgICAgICAgICAgICAgICAg ZWxmLT5uYW1lLCBzaXplb2YoKmEpLAorICAgICAgICAgICAgICAgICAgICBzZWMtPnNlYy0+c2hf c2l6ZSk7CisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgfQorCisgICAgICAg IHN0YXJ0ID0gc2VjLT5sb2FkX2FkZHI7CisgICAgICAgIGVuZCA9IHNlYy0+bG9hZF9hZGRyICsg c2VjLT5zZWMtPnNoX3NpemU7CisKKyAgICAgICAgZm9yICggYSA9IHN0YXJ0OyBhIDwgZW5kOyBh KysgKQorICAgICAgICB7CisgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGluc3RyID0gKHVuc2ln bmVkIGxvbmcpKCZhLT5pbnN0cl9vZmZzZXQgKyBhLT5pbnN0cl9vZmZzZXQpOworICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyByZXBsYWNlbWVudCA9ICh1bnNpZ25lZCBsb25nKSgmYS0+cmVwbF9v ZmZzZXQgKyBhLT5yZXBsX29mZnNldCk7CisKKyAgICAgICAgICAgIGlmICggKGluc3RyIDwgcmVn aW9uLT5zdGFydCAmJiBpbnN0ciA+PSByZWdpb24tPmVuZCkgfHwKKyAgICAgICAgICAgICAgICAg KHJlcGxhY2VtZW50IDwgcmVnaW9uLT5zdGFydCAmJiByZXBsYWNlbWVudCA+PSByZWdpb24tPmVu ZCkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVH LCBYU1BMSUNFICIlcyBBbHQgcGF0Y2hpbmcgb3V0c2lkZSBwYXlsb2FkOiAweCVseCFcbiIsCisg ICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5hbWUsIGluc3RyKTsKKyAgICAgICAgICAgICAg ICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBhcHBs eV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdGFydCwgZW5kKTsKKyAgICB9CisKICAgICBzZWMgPSB4 c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShlbGYsICIuZXhfdGFibGUiKTsKICAgICBpZiAoIHNlYyAp CiAgICAgewpAQCAtNTUyLDYgKzU4NSw3IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9wYXlsb2FkKHN0 cnVjdCBwYXlsb2FkICpwYXlsb2FkLAogICAgICAgICByZWdpb24tPmV4ID0gczsKICAgICAgICAg cmVnaW9uLT5leF9lbmQgPSBlOwogICAgIH0KKwogI2VuZGlmCiAKICAgICByZXR1cm4gMDsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvYWx0ZXJuYXRpdmUuaAppbmRleCAxMDU2NjMwLi5iY2U5NTlmIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgKKysrIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9hbHRlcm5hdGl2ZS5oCkBAIC0yMyw2ICsyMywxMCBAQCBzdHJ1Y3QgYWx0X2luc3RyIHsK ICAgICB1OCAgcmVwbGFjZW1lbnRsZW47ICAgICAvKiBsZW5ndGggb2YgbmV3IGluc3RydWN0aW9u LCA8PSBpbnN0cmxlbiAqLwogfTsKIAorLyogU2ltaWxhciB0byBhcHBseV9hbHRlcm5hdGl2ZXMg ZXhjZXB0IGl0IGNhbiBiZSBydW4gd2l0aCBJUlFzIGVuYWJsZWQuICovCitleHRlcm4gdm9pZCBh cHBseV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBhbHRfaW5zdHIgKmVuZCk7 CitleHRlcm4gdm9pZCBhcHBseV9hbHRlcm5hdGl2ZXMoc3RydWN0IGFsdF9pbnN0ciAqc3RhcnQs IHN0cnVjdCBhbHRfaW5zdHIgKmVuZCk7CiBleHRlcm4gdm9pZCBhbHRlcm5hdGl2ZV9pbnN0cnVj dGlvbnModm9pZCk7CiAKICNkZWZpbmUgT0xESU5TVFIob2xkaW5zdHIpICAgICAgIjY2MTpcblx0 IiBvbGRpbnN0ciAiXG42NjI6XG4iCi0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==