From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v9 19/27] xsplice: Add support for alternatives Date: Mon, 25 Apr 2016 11:35:06 -0400 Message-ID: <1461598514-5440-20-git-send-email-konrad.wilk@oracle.com> References: <1461598514-5440-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1auiYV-0004CS-8W for xen-devel@lists.xenproject.org; Mon, 25 Apr 2016 15:36:11 +0000 In-Reply-To: <1461598514-5440-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 ay4Kdjk6IFVzZSBpbml0X29yX3hzcGxpY2UgaW5zdGVhZCBvZiBfX0lOSVQgbWFjcm9zCiAgICBU YWtlIGNhcmUgb2YgX19pbml0Y29uc3RyZWwKICAgIENoYW5nZSBtZXNzYWdlIHdoZW4gLmFsdF9p bnN0ciBoYXMgaW5jb3JyZWN0IHNpemUuCiAgICBVcGRhdGUgYWRkX25vcHMgd2l0aCBwcm9wZXIg Y29tbWVudAogICAgVXBkYXRlIHRlc3QgY2FzZSB0byBwYXRjaCBhIGxvbmcgaW5zdHJ1Y3Rpb24g d2l0aCBhIHNob3J0IG9uZQogICAgVXNlZCAuLmNvbnN0cmVsIG9uIGs2X25vcHMgYW5kIHA2X25v cHMuCiAgICBVc2VkICMlbHggb24gcHJpbnRrLiBCdXQgd2l0aCBsb2FkX2FkZHIgYmVpbmcgdm9p ZCAqIHN3aXRjaGVkIHRvICVwCiAgICBVc2UgSmFuJ3MgTWFrZWZpbGUgb2JqIGxpc3QgaW5jYW50 YXRpb24gaW5jYW50YXRpb24gaW5jYW50YXRpb24gaW5jYW50YXRpb24KLS0tCiB4ZW4vYXJjaC94 ODYvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0KIHhlbi9hcmNoL3g4Ni9h bHRlcm5hdGl2ZS5jICAgICAgICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLQogeGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkX2Z1bmMuYyB8ICA0ICsr KwogeGVuL2NvbW1vbi94c3BsaWNlLmMgICAgICAgICAgICAgICAgICAgICB8IDMxICsrKysrKysr KysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oICAgICAgICB8 ICA0ICsrKwogNSBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFr ZWZpbGUKaW5kZXggOTAwZmE1OS4uYmQ3YmE5ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01h a2VmaWxlCisrKyBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtNiw3ICs2LDkgQEAgc3ViZGly LXkgKz0gbW0KIHN1YmRpci0kKENPTkZJR19YRU5PUFJPRikgKz0gb3Byb2ZpbGUKIHN1YmRpci15 ICs9IHg4Nl82NAogCi1vYmotYmluLXkgKz0gYWx0ZXJuYXRpdmUuaW5pdC5vCithbHRlcm5hdGl2 ZS15IDo9IGFsdGVybmF0aXZlLmluaXQubworYWx0ZXJuYXRpdmUtJChDT05GSUdfWFNQTElDRSkg Oj0KK29iai1iaW4teSArPSAkKGFsdGVybmF0aXZlLXkpCiBvYmoteSArPSBhcGljLm8KIG9iai15 ICs9IGJpdG9wcy5vCiBvYmotYmluLXkgKz0gYnppbWFnZS5pbml0Lm8KQEAgLTYxLDcgKzYzLDcg QEAgb2JqLXkgKz0geDg2X2VtdWxhdGUubwogb2JqLXkgKz0gdGJvb3Qubwogb2JqLXkgKz0gaHBl dC5vCiBvYmoteSArPSB2bV9ldmVudC5vCi1vYmotJChDT05GSUdfWFNQTElDRSkgKz0geHNwbGlj ZS5vCitvYmotJChDT05GSUdfWFNQTElDRSkgKz0gYWx0ZXJuYXRpdmUubyB4c3BsaWNlLm8KIG9i ai15ICs9IHhzdGF0ZS5vCiAKIG9iai0kKGNyYXNoX2RlYnVnKSArPSBnZGJzdHViLm8KZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5jIGIveGVuL2FyY2gveDg2L2FsdGVybmF0 aXZlLmMKaW5kZXggZjczNWZmOC4uYzE4OGExNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2Fs dGVybmF0aXZlLmMKKysrIGIveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKQEAgLTIyLDEzICsy MiwxNCBAQAogI2luY2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vdHJhcHMuaD4K ICNpbmNsdWRlIDxhc20vbm1pLmg+CisjaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KIAogI2RlZmlu ZSBNQVhfUEFUQ0hfTEVOICgyNTUtMSkKIAogZXh0ZXJuIHN0cnVjdCBhbHRfaW5zdHIgX19hbHRf aW5zdHJ1Y3Rpb25zW10sIF9fYWx0X2luc3RydWN0aW9uc19lbmRbXTsKIAogI2lmZGVmIEs4X05P UDEKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGs4bm9wc1tdIF9faW5pdGNvbnN0ID0gewor c3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgazhub3BzW10gaW5pdF9vcl94c3BsaWNlX2NvbnN0 ID0gewogICAgIEs4X05PUDEsCiAgICAgSzhfTk9QMiwKICAgICBLOF9OT1AzLApAQCAtMzgsNyAr MzksNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBrOG5vcHNbXSBfX2luaXRjb25zdCA9 IHsKICAgICBLOF9OT1A3LAogICAgIEs4X05PUDgKIH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQg Y2hhciAqIGNvbnN0IGs4X25vcHNbQVNNX05PUF9NQVgrMV0gX19pbml0Y29uc3RyZWwgPSB7Citz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0IGs4X25vcHNbQVNNX05PUF9NQVgrMV0g aW5pdF9vcl94c3BsaWNlX2NvbnN0cmVsID0gewogICAgIE5VTEwsCiAgICAgazhub3BzLAogICAg IGs4bm9wcyArIDEsCkBAIC01Miw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy ICogY29uc3Qgazhfbm9wc1tBU01fTk9QX01BWCsxXSBfX2luaXRjb25zdHJlbCA9IHsKICNlbmRp ZgogCiAjaWZkZWYgUDZfTk9QMQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcDZub3BzW10g X19pbml0Y29uc3QgPSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNbXSBpbml0 X29yX3hzcGxpY2VfY29uc3QgPSB7CiAgICAgUDZfTk9QMSwKICAgICBQNl9OT1AyLAogICAgIFA2 X05PUDMsCkBAIC02Miw3ICs2Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHA2bm9w c1tdIF9faW5pdGNvbnN0ID0gewogICAgIFA2X05PUDcsCiAgICAgUDZfTk9QOAogfTsKLXN0YXRp YyBjb25zdCB1bnNpZ25lZCBjaGFyICogY29uc3QgcDZfbm9wc1tBU01fTk9QX01BWCsxXSBfX2lu aXRjb25zdHJlbCA9IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyICogY29uc3QgcDZfbm9w c1tBU01fTk9QX01BWCsxXSBpbml0X29yX3hzcGxpY2VfY29uc3RyZWwgPSB7CiAgICAgTlVMTCwK ICAgICBwNm5vcHMsCiAgICAgcDZub3BzICsgMSwKQEAgLTc1LDcgKzc2LDcgQEAgc3RhdGljIGNv bnN0IHVuc2lnbmVkIGNoYXIgKiBjb25zdCBwNl9ub3BzW0FTTV9OT1BfTUFYKzFdIF9faW5pdGNv bnN0cmVsID0gewogfTsKICNlbmRpZgogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNv bnN0ICppZGVhbF9ub3BzIF9faW5pdGRhdGEgPSBrOF9ub3BzOworc3RhdGljIGNvbnN0IHVuc2ln bmVkIGNoYXIgKiBjb25zdCAqaWRlYWxfbm9wcyBpbml0X29yX3hzcGxpY2VfZGF0YSA9IGs4X25v cHM7CiAKIHN0YXRpYyBpbnQgX19pbml0IG1hc2tfbm1pX2NhbGxiYWNrKGNvbnN0IHN0cnVjdCBj cHVfdXNlcl9yZWdzICpyZWdzLCBpbnQgY3B1KQogewpAQCAtMTAwLDcgKzEwMSw3IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBhcmNoX2luaXRfaWRlYWxfbm9wcyh2b2lkKQogfQogCiAvKiBVc2UgdGhp cyB0byBhZGQgbm9wcyB0byBhIGJ1ZmZlciwgdGhlbiB0ZXh0X3Bva2UgdGhlIHdob2xlIGJ1ZmZl ci4gKi8KLXN0YXRpYyB2b2lkIF9faW5pdCBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQg aW50IGxlbikKK3N0YXRpYyB2b2lkIGluaXRfb3JfeHNwbGljZSBhZGRfbm9wcyh2b2lkICppbnNu cywgdW5zaWduZWQgaW50IGxlbikKIHsKICAgICB3aGlsZSAoIGxlbiA+IDAgKQogICAgIHsKQEAg LTExNCw3ICsxMTUsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYWRkX25vcHModm9pZCAqaW5zbnMs IHVuc2lnbmVkIGludCBsZW4pCiB9CiAKIC8qCi0gKiB0ZXh0X3Bva2VfZWFybHkgLSBVcGRhdGUg aW5zdHJ1Y3Rpb25zIG9uIGEgbGl2ZSBrZXJuZWwgYXQgYm9vdCB0aW1lCisgKiB0ZXh0X3Bva2Ug LSBVcGRhdGUgaW5zdHJ1Y3Rpb25zIG9uIGEgbGl2ZSBrZXJuZWwgb3Igbm9uLWV4ZWN1dGVkIGNv ZGUuCiAgKiBAYWRkcjogYWRkcmVzcyB0byBtb2RpZnkKICAqIEBvcGNvZGU6IHNvdXJjZSBvZiB0 aGUgY29weQogICogQGxlbjogbGVuZ3RoIHRvIGNvcHkKQEAgLTEyNSw5ICsxMjYsMTAgQEAgc3Rh dGljIHZvaWQgX19pbml0IGFkZF9ub3BzKHZvaWQgKmluc25zLCB1bnNpZ25lZCBpbnQgbGVuKQog ICogaW5zdHJ1Y3Rpb25zLiBBbmQgb24gdGhlIGxvY2FsIENQVSB5b3UgbmVlZCB0byBiZSBwcm90 ZWN0ZWQgYWdhaW4gTk1JIG9yIE1DRQogICogaGFuZGxlcnMgc2VlaW5nIGFuIGluY29uc2lzdGVu dCBpbnN0cnVjdGlvbiB3aGlsZSB5b3UgcGF0Y2guCiAgKgotICogVGhpcyByb3V0aW5lIGlzIGNh bGxlZCB3aXRoIGxvY2FsIGludGVycnVwdCBkaXNhYmxlZC4KKyAqIFlvdSBzaG91bGQgcnVuIHRo aXMgd2l0aCBpbnRlcnJ1cHRzIGRpc2FibGVkIG9yIG9uIGNvZGUgdGhhdCBpcyBub3QKKyAqIGV4 ZWN1dGluZy4KICAqLwotc3RhdGljIHZvaWQgKl9faW5pdCB0ZXh0X3Bva2VfZWFybHkodm9pZCAq YWRkciwgY29uc3Qgdm9pZCAqb3Bjb2RlLCBzaXplX3QgbGVuKQorc3RhdGljIHZvaWQgKmluaXRf b3JfeHNwbGljZSB0ZXh0X3Bva2Uodm9pZCAqYWRkciwgY29uc3Qgdm9pZCAqb3Bjb2RlLCBzaXpl X3QgbGVuKQogewogICAgIG1lbWNweShhZGRyLCBvcGNvZGUsIGxlbik7CiAgICAgc3luY19jb3Jl KCk7CkBAIC0xNDIsMjAgKzE0NCwxNCBAQCBzdGF0aWMgdm9pZCAqX19pbml0IHRleHRfcG9rZV9l YXJseSh2b2lkICphZGRyLCBjb25zdCB2b2lkICpvcGNvZGUsIHNpemVfdCBsZW4pCiAgKiBBUHMg aGF2ZSBsZXNzIGNhcGFiaWxpdGllcyB0aGFuIHRoZSBib290IHByb2Nlc3NvciBhcmUgbm90IGhh bmRsZWQuCiAgKiBUb3VnaC4gTWFrZSBzdXJlIHlvdSBkaXNhYmxlIHN1Y2ggZmVhdHVyZXMgYnkg aGFuZC4KICAqLwotc3RhdGljIHZvaWQgX19pbml0IGFwcGx5X2FsdGVybmF0aXZlcyhzdHJ1Y3Qg YWx0X2luc3RyICpzdGFydCwgc3RydWN0IGFsdF9pbnN0ciAqZW5kKQordm9pZCBpbml0X29yX3hz cGxpY2UgYXBwbHlfYWx0ZXJuYXRpdmVzX25vY2hlY2soc3RydWN0IGFsdF9pbnN0ciAqc3RhcnQs 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 Y2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkX2Z1bmMuYwppbmRleCAyZTRhZjljLi4wM2Q2Yjg0 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGRfZnVuYy5jCisr KyBiL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZF9mdW5jLmMKQEAgLTUsNiArNSw4 IEBACiAKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KIAorI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2 ZS5oPgorI2luY2x1ZGUgPGFzbS9ub3BzLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAog c3RhdGljIHVuc2lnbmVkIGxvbmcgKm5vbl9jYW5vbmljYWxfYWRkciA9ICh1bnNpZ25lZCBsb25n ICopMHhkZWFkMDAwMDAwMDAwMDAwVUxMOwpAQCAtMTQsNiArMTYsOCBAQCBjb25zdCBjaGFyICp4 ZW5faGVsbG9fd29ybGQodm9pZCkKIHsKICAgICB1bnNpZ25lZCBsb25nIHRtcDsKICAgICBpbnQg cmM7CisKKyAgICBhbHRlcm5hdGl2ZShBU01fTk9QOCwgQVNNX05PUDEsIFg4Nl9GRUFUVVJFX0xN KTsKICAgICAvKgogICAgICAqIEFueSBCVUcsIG9yIFdBUk5fT04gd2lsbCBjb250YWluIHN5bWJv bCBhbmQgcGF5bG9hZCBuYW1lLiBGdXJ0aGVybW9yZQogICAgICAqIGV4Y2VwdGlvbnMgd2lsbCBi ZSBjYXVnaHQgYW5kIHByb2Nlc3NlZCBwcm9wZXJseS4KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v eHNwbGljZS5jIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKaW5kZXggZjY4MDYyZi4uMDUwNjRhZSAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNlLmMKKysrIGIveGVuL2NvbW1vbi94c3BsaWNl LmMKQEAgLTUzNCw2ICs1MzQsMzcgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0 IHBheWxvYWQgKnBheWxvYWQsCiAgICAgfQogCiAjaWZuZGVmIENPTkZJR19BUk0KKyAgICBzZWMg PSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShlbGYsICIuYWx0aW5zdHJ1Y3Rpb25zIik7CisgICAg aWYgKCBzZWMgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGFsdF9pbnN0ciAqYSwgKnN0YXJ0LCAq ZW5kOworCisgICAgICAgIGlmICggc2VjLT5zZWMtPnNoX3NpemUgJSBzaXplb2YoKmEpICkKKyAg ICAgICAgeworICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2l6 ZSBvZiAuYWx0X2luc3RyIGlzIG5vdCBtdWx0aXBsZSBvZiAlenUhXG4iLAorICAgICAgICAgICAg ICAgICAgICBlbGYtPm5hbWUsIHNpemVvZigqYSkpOworICAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CisgICAgICAgIH0KKworICAgICAgICBzdGFydCA9IHNlYy0+bG9hZF9hZGRyOworICAgICAg ICBlbmQgPSBzZWMtPmxvYWRfYWRkciArIHNlYy0+c2VjLT5zaF9zaXplOworCisgICAgICAgIGZv ciAoIGEgPSBzdGFydDsgYSA8IGVuZDsgYSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgY29u c3Qgdm9pZCAqaW5zdHIgPSAmYS0+aW5zdHJfb2Zmc2V0ICsgYS0+aW5zdHJfb2Zmc2V0OworICAg ICAgICAgICAgY29uc3Qgdm9pZCAqcmVwbGFjZW1lbnQgPSAmYS0+cmVwbF9vZmZzZXQgKyBhLT5y ZXBsX29mZnNldDsKKworICAgICAgICAgICAgaWYgKCAoaW5zdHIgPCByZWdpb24tPnN0YXJ0ICYm IGluc3RyID49IHJlZ2lvbi0+ZW5kKSB8fAorICAgICAgICAgICAgICAgICAocmVwbGFjZW1lbnQg PCByZWdpb24tPnN0YXJ0ICYmIHJlcGxhY2VtZW50ID49IHJlZ2lvbi0+ZW5kKSApCisgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlcyBB bHQgcGF0Y2hpbmcgb3V0c2lkZSBwYXlsb2FkOiAlcCFcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgICBlbGYtPm5hbWUsIGluc3RyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBhcHBseV9hbHRlcm5hdGl2ZXNfbm9j aGVjayhzdGFydCwgZW5kKTsKKyAgICB9CisKICAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlf bmFtZShlbGYsICIuZXhfdGFibGUiKTsKICAgICBpZiAoIHNlYyApCiAgICAgewpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9hbHRlcm5hdGl2ZS5oCmluZGV4IDEwNTY2MzAuLmJjZTk1OWYgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvYWx0ZXJuYXRpdmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2Fs dGVybmF0aXZlLmgKQEAgLTIzLDYgKzIzLDEwIEBAIHN0cnVjdCBhbHRfaW5zdHIgewogICAgIHU4 ICByZXBsYWNlbWVudGxlbjsgICAgIC8qIGxlbmd0aCBvZiBuZXcgaW5zdHJ1Y3Rpb24sIDw9IGlu c3RybGVuICovCiB9OwogCisvKiBTaW1pbGFyIHRvIGFwcGx5X2FsdGVybmF0aXZlcyBleGNlcHQg aXQgY2FuIGJlIHJ1biB3aXRoIElSUXMgZW5hYmxlZC4gKi8KK2V4dGVybiB2b2lkIGFwcGx5X2Fs dGVybmF0aXZlc19ub2NoZWNrKHN0cnVjdCBhbHRfaW5zdHIgKnN0YXJ0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFsdF9pbnN0ciAqZW5kKTsKK2V4dGVy biB2b2lkIGFwcGx5X2FsdGVybmF0aXZlcyhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0 IGFsdF9pbnN0ciAqZW5kKTsKIGV4dGVybiB2b2lkIGFsdGVybmF0aXZlX2luc3RydWN0aW9ucyh2 b2lkKTsKIAogI2RlZmluZSBPTERJTlNUUihvbGRpbnN0cikgICAgICAiNjYxOlxuXHQiIG9sZGlu c3RyICJcbjY2MjpcbiIKLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK