From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v10 16/24] xsplice: Add support for alternatives Date: Wed, 27 Apr 2016 15:27:13 -0400 Message-ID: <1461785241-4481-17-git-send-email-konrad.wilk@oracle.com> References: <1461785241-4481-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 1avV8V-0004mG-Cl for xen-devel@lists.xenproject.org; Wed, 27 Apr 2016 19:28:35 +0000 In-Reply-To: <1461785241-4481-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+ClJldmlld2VkLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CgotLS0KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhl bi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjI6IE1ha2UgYSBuZXcgYWx0ZXJuYXRp dmUgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBBU1NFUlQgb24gSVJRcyBhbmQKICAgIGRvbid0IGRp c2FibGUgSVJRcyBpbiB0aGUgY29kZSB3aGVuIGxvYWRpbmcgcGF5bG9hZC4KdjQ6IEluY2x1ZGUg dGVzdC1jYXNlCiAgICBJbmNsdWRlIGNoZWNrIGZvciBzaXplIG9mIGFsdGVybmF0aXZlcyBhbmQg dGhhdCBpdCBpcyBub3QgYSAwIHNpemUKICAgIHNlY3Rpb24uCnY2OiBBZGQgI2RlZmluZSBJTklU IHRvIHByZXNlcnZlIF9faW5pdG5lc3Mgb24gYWx0ZXJuYXRpdmUgY29kZS4KICAgIERvdWJsZSBj aGVjayB0aGF0IGFsdF9pbnN0ciBhcmUgb25seSBwYXRjaGluZyBwYXlsb2FkIGNvZGUuCnY3OiBN b3ZlIGNyMCBtYW5pcHVsYXRpb24gaW4gYXBwbHlfYWx0ZXJuYXRpdmVzLgogICAgaWZkZWYgYXJv dW5kIGFsdGVybmF0aXZlLm8gaW4gTWFrZWZpbGUKICAgIFBpY2sgWDg2X0ZFQVRVUkVfTE0gaW4g dGVzdC1jYXNlCiAgICBEcm9wIGNhc3RpbmcgZnJvbSBsb2FkX2FkZHIKICAgIEl0IGlzIGFsdGVy bmF0aXZlLmluaXQubywgbm90IGFsdGVybmF0aXZlX2luaXQubyAodGhhbmtzIEFuZHJldyEpCnY4 OiBDaGFuZ2UgWEVOTE9HX0RFQlVHIHRvIFhFTkxPR19FUlIgb24gZHByaW50ay4Kdjk6IFVzZSBp bml0X29yX3hzcGxpY2UgaW5zdGVhZCBvZiBfX0lOSVQgbWFjcm9zCiAgICBUYWtlIGNhcmUgb2Yg X19pbml0Y29uc3RyZWwKICAgIENoYW5nZSBtZXNzYWdlIHdoZW4gLmFsdF9pbnN0ciBoYXMgaW5j b3JyZWN0IHNpemUuCiAgICBVcGRhdGUgYWRkX25vcHMgd2l0aCBwcm9wZXIgY29tbWVudAogICAg VXBkYXRlIHRlc3QgY2FzZSB0byBwYXRjaCBhIGxvbmcgaW5zdHJ1Y3Rpb24gd2l0aCBhIHNob3J0 IG9uZQogICAgVXNlZCAuLmNvbnN0cmVsIG9uIGs2X25vcHMgYW5kIHA2X25vcHMuCiAgICBVc2Vk ICMlbHggb24gcHJpbnRrLiBCdXQgd2l0aCBsb2FkX2FkZHIgYmVpbmcgdm9pZCAqIHN3aXRjaGVk IHRvICVwCiAgICBVc2UgSmFuJ3MgTWFrZWZpbGUgb2JqIGxpc3QgaW5jYW50YXRpb24gaW5jYW50 YXRpb24gaW5jYW50YXRpb24gaW5jYW50YXRpb24KLS0tCiB4ZW4vYXJjaC94ODYvTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0KIHhlbi9hcmNoL3g4Ni9hbHRlcm5hdGl2ZS5j ICAgICAgICAgICAgICAgfCA0NiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVu L2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkX2Z1bmMuYyB8ICA0ICsrKwogeGVuL2NvbW1v bi94c3BsaWNlLmMgICAgICAgICAgICAgICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysr KwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oICAgICAgICB8ICA0ICsrKwogNSBm aWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKaW5kZXgg OTAwZmE1OS4uYmQ3YmE5ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01ha2VmaWxlCisrKyBi L3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtNiw3ICs2LDkgQEAgc3ViZGlyLXkgKz0gbW0KIHN1 YmRpci0kKENPTkZJR19YRU5PUFJPRikgKz0gb3Byb2ZpbGUKIHN1YmRpci15ICs9IHg4Nl82NAog Ci1vYmotYmluLXkgKz0gYWx0ZXJuYXRpdmUuaW5pdC5vCithbHRlcm5hdGl2ZS15IDo9IGFsdGVy bmF0aXZlLmluaXQubworYWx0ZXJuYXRpdmUtJChDT05GSUdfWFNQTElDRSkgOj0KK29iai1iaW4t eSArPSAkKGFsdGVybmF0aXZlLXkpCiBvYmoteSArPSBhcGljLm8KIG9iai15ICs9IGJpdG9wcy5v CiBvYmotYmluLXkgKz0gYnppbWFnZS5pbml0Lm8KQEAgLTYxLDcgKzYzLDcgQEAgb2JqLXkgKz0g eDg2X2VtdWxhdGUubwogb2JqLXkgKz0gdGJvb3Qubwogb2JqLXkgKz0gaHBldC5vCiBvYmoteSAr PSB2bV9ldmVudC5vCi1vYmotJChDT05GSUdfWFNQTElDRSkgKz0geHNwbGljZS5vCitvYmotJChD T05GSUdfWFNQTElDRSkgKz0gYWx0ZXJuYXRpdmUubyB4c3BsaWNlLm8KIG9iai15ICs9IHhzdGF0 ZS5vCiAKIG9iai0kKGNyYXNoX2RlYnVnKSArPSBnZGJzdHViLm8KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9hbHRlcm5hdGl2ZS5jIGIveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKaW5kZXgg ZjczNWZmOC4uYzE4OGExNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMK KysrIGIveGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMKQEAgLTIyLDEzICsyMiwxNCBAQAogI2lu Y2x1ZGUgPGFzbS9zeXN0ZW0uaD4KICNpbmNsdWRlIDxhc20vdHJhcHMuaD4KICNpbmNsdWRlIDxh c20vbm1pLmg+CisjaW5jbHVkZSA8eGVuL3hzcGxpY2UuaD4KIAogI2RlZmluZSBNQVhfUEFUQ0hf TEVOICgyNTUtMSkKIAogZXh0ZXJuIHN0cnVjdCBhbHRfaW5zdHIgX19hbHRfaW5zdHJ1Y3Rpb25z W10sIF9fYWx0X2luc3RydWN0aW9uc19lbmRbXTsKIAogI2lmZGVmIEs4X05PUDEKLXN0YXRpYyBj b25zdCB1bnNpZ25lZCBjaGFyIGs4bm9wc1tdIF9faW5pdGNvbnN0ID0geworc3RhdGljIGNvbnN0 IHVuc2lnbmVkIGNoYXIgazhub3BzW10gaW5pdF9vcl94c3BsaWNlX2NvbnN0ID0gewogICAgIEs4 X05PUDEsCiAgICAgSzhfTk9QMiwKICAgICBLOF9OT1AzLApAQCAtMzgsNyArMzksNyBAQCBzdGF0 aWMgY29uc3QgdW5zaWduZWQgY2hhciBrOG5vcHNbXSBfX2luaXRjb25zdCA9IHsKICAgICBLOF9O T1A3LAogICAgIEs4X05PUDgKIH07Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0 IGs4X25vcHNbQVNNX05PUF9NQVgrMV0gX19pbml0Y29uc3RyZWwgPSB7CitzdGF0aWMgY29uc3Qg dW5zaWduZWQgY2hhciAqIGNvbnN0IGs4X25vcHNbQVNNX05PUF9NQVgrMV0gaW5pdF9vcl94c3Bs aWNlX2NvbnN0cmVsID0gewogICAgIE5VTEwsCiAgICAgazhub3BzLAogICAgIGs4bm9wcyArIDEs CkBAIC01Miw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyICogY29uc3Qgazhf bm9wc1tBU01fTk9QX01BWCsxXSBfX2luaXRjb25zdHJlbCA9IHsKICNlbmRpZgogCiAjaWZkZWYg UDZfTk9QMQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgcDZub3BzW10gX19pbml0Y29uc3Qg PSB7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBwNm5vcHNbXSBpbml0X29yX3hzcGxpY2Vf Y29uc3QgPSB7CiAgICAgUDZfTk9QMSwKICAgICBQNl9OT1AyLAogICAgIFA2X05PUDMsCkBAIC02 Miw3ICs2Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHA2bm9wc1tdIF9faW5pdGNv bnN0ID0gewogICAgIFA2X05PUDcsCiAgICAgUDZfTk9QOAogfTsKLXN0YXRpYyBjb25zdCB1bnNp Z25lZCBjaGFyICogY29uc3QgcDZfbm9wc1tBU01fTk9QX01BWCsxXSBfX2luaXRjb25zdHJlbCA9 IHsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyICogY29uc3QgcDZfbm9wc1tBU01fTk9QX01B WCsxXSBpbml0X29yX3hzcGxpY2VfY29uc3RyZWwgPSB7CiAgICAgTlVMTCwKICAgICBwNm5vcHMs CiAgICAgcDZub3BzICsgMSwKQEAgLTc1LDcgKzc2LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVk IGNoYXIgKiBjb25zdCBwNl9ub3BzW0FTTV9OT1BfTUFYKzFdIF9faW5pdGNvbnN0cmVsID0gewog fTsKICNlbmRpZgogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqIGNvbnN0ICppZGVhbF9u b3BzIF9faW5pdGRhdGEgPSBrOF9ub3BzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgKiBj b25zdCAqaWRlYWxfbm9wcyBpbml0X29yX3hzcGxpY2VfZGF0YSA9IGs4X25vcHM7CiAKIHN0YXRp YyBpbnQgX19pbml0IG1hc2tfbm1pX2NhbGxiYWNrKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzLCBpbnQgY3B1KQogewpAQCAtMTAwLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIF9faW5p dCBhcmNoX2luaXRfaWRlYWxfbm9wcyh2b2lkKQogfQogCiAvKiBVc2UgdGhpcyB0byBhZGQgbm9w cyB0byBhIGJ1ZmZlciwgdGhlbiB0ZXh0X3Bva2UgdGhlIHdob2xlIGJ1ZmZlci4gKi8KLXN0YXRp YyB2b2lkIF9faW5pdCBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQgaW50IGxlbikKK3N0 YXRpYyB2b2lkIGluaXRfb3JfeHNwbGljZSBhZGRfbm9wcyh2b2lkICppbnNucywgdW5zaWduZWQg aW50IGxlbikKIHsKICAgICB3aGlsZSAoIGxlbiA+IDAgKQogICAgIHsKQEAgLTExNCw3ICsxMTUs NyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYWRkX25vcHModm9pZCAqaW5zbnMsIHVuc2lnbmVkIGlu dCBsZW4pCiB9CiAKIC8qCi0gKiB0ZXh0X3Bva2VfZWFybHkgLSBVcGRhdGUgaW5zdHJ1Y3Rpb25z IG9uIGEgbGl2ZSBrZXJuZWwgYXQgYm9vdCB0aW1lCisgKiB0ZXh0X3Bva2UgLSBVcGRhdGUgaW5z dHJ1Y3Rpb25zIG9uIGEgbGl2ZSBrZXJuZWwgb3Igbm9uLWV4ZWN1dGVkIGNvZGUuCiAgKiBAYWRk cjogYWRkcmVzcyB0byBtb2RpZnkKICAqIEBvcGNvZGU6IHNvdXJjZSBvZiB0aGUgY29weQogICog QGxlbjogbGVuZ3RoIHRvIGNvcHkKQEAgLTEyNSw5ICsxMjYsMTAgQEAgc3RhdGljIHZvaWQgX19p bml0IGFkZF9ub3BzKHZvaWQgKmluc25zLCB1bnNpZ25lZCBpbnQgbGVuKQogICogaW5zdHJ1Y3Rp b25zLiBBbmQgb24gdGhlIGxvY2FsIENQVSB5b3UgbmVlZCB0byBiZSBwcm90ZWN0ZWQgYWdhaW4g Tk1JIG9yIE1DRQogICogaGFuZGxlcnMgc2VlaW5nIGFuIGluY29uc2lzdGVudCBpbnN0cnVjdGlv biB3aGlsZSB5b3UgcGF0Y2guCiAgKgotICogVGhpcyByb3V0aW5lIGlzIGNhbGxlZCB3aXRoIGxv Y2FsIGludGVycnVwdCBkaXNhYmxlZC4KKyAqIFlvdSBzaG91bGQgcnVuIHRoaXMgd2l0aCBpbnRl cnJ1cHRzIGRpc2FibGVkIG9yIG9uIGNvZGUgdGhhdCBpcyBub3QKKyAqIGV4ZWN1dGluZy4KICAq Lwotc3RhdGljIHZvaWQgKl9faW5pdCB0ZXh0X3Bva2VfZWFybHkodm9pZCAqYWRkciwgY29uc3Qg dm9pZCAqb3Bjb2RlLCBzaXplX3QgbGVuKQorc3RhdGljIHZvaWQgKmluaXRfb3JfeHNwbGljZSB0 ZXh0X3Bva2Uodm9pZCAqYWRkciwgY29uc3Qgdm9pZCAqb3Bjb2RlLCBzaXplX3QgbGVuKQogewog ICAgIG1lbWNweShhZGRyLCBvcGNvZGUsIGxlbik7CiAgICAgc3luY19jb3JlKCk7CkBAIC0xNDIs MjAgKzE0NCwxNCBAQCBzdGF0aWMgdm9pZCAqX19pbml0IHRleHRfcG9rZV9lYXJseSh2b2lkICph ZGRyLCBjb25zdCB2b2lkICpvcGNvZGUsIHNpemVfdCBsZW4pCiAgKiBBUHMgaGF2ZSBsZXNzIGNh cGFiaWxpdGllcyB0aGFuIHRoZSBib290IHByb2Nlc3NvciBhcmUgbm90IGhhbmRsZWQuCiAgKiBU b3VnaC4gTWFrZSBzdXJlIHlvdSBkaXNhYmxlIHN1Y2ggZmVhdHVyZXMgYnkgaGFuZC4KICAqLwot c3RhdGljIHZvaWQgX19pbml0IGFwcGx5X2FsdGVybmF0aXZlcyhzdHJ1Y3QgYWx0X2luc3RyICpz dGFydCwgc3RydWN0IGFsdF9pbnN0ciAqZW5kKQordm9pZCBpbml0X29yX3hzcGxpY2UgYXBwbHlf YWx0ZXJuYXRpdmVzX25vY2hlY2soc3RydWN0IGFsdF9pbnN0ciAqc3RhcnQsIHN0cnVjdCBhbHRf aW5zdHIgKmVuZCkKIHsKICAgICBzdHJ1Y3QgYWx0X2luc3RyICphOwogICAgIHU4ICppbnN0ciwg KnJlcGxhY2VtZW50OwogICAgIHU4IGluc25idWZbTUFYX1BBVENIX0xFTl07Ci0gICAgdW5zaWdu ZWQgbG9uZyBjcjAgPSByZWFkX2NyMCgpOwotCi0gICAgQVNTRVJUKCFsb2NhbF9pcnFfaXNfZW5h YmxlZCgpKTsKIAogICAgIHByaW50ayhLRVJOX0lORk8gImFsdCB0YWJsZSAlcCAtPiAlcFxuIiwg c3RhcnQsIGVuZCk7CiAKLSAgICAvKiBEaXNhYmxlIFdQIHRvIGFsbG93IGFwcGxpY2F0aW9uIG9m IGFsdGVybmF0aXZlcyB0byByZWFkLW9ubHkgcGFnZXMuICovCi0gICAgd3JpdGVfY3IwKGNyMCAm IH5YODZfQ1IwX1dQKTsKLQogICAgIC8qCiAgICAgICogVGhlIHNjYW4gb3JkZXIgc2hvdWxkIGJl IGZyb20gc3RhcnQgdG8gZW5kLiBBIGxhdGVyIHNjYW5uZWQKICAgICAgKiBhbHRlcm5hdGl2ZSBj b2RlIGNhbiBvdmVyd3JpdGUgYSBwcmV2aW91cyBzY2FubmVkIGFsdGVybmF0aXZlIGNvZGUuCkBA IC0xODMsOCArMTc5LDI0IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBhcHBseV9hbHRlcm5hdGl2ZXMo c3RydWN0IGFsdF9pbnN0ciAqc3RhcnQsIHN0cnVjdCBhbHRfaW5zdHIKIAogICAgICAgICBhZGRf bm9wcyhpbnNuYnVmICsgYS0+cmVwbGFjZW1lbnRsZW4sCiAgICAgICAgICAgICAgICAgIGEtPmlu c3RybGVuIC0gYS0+cmVwbGFjZW1lbnRsZW4pOwotICAgICAgICB0ZXh0X3Bva2VfZWFybHkoaW5z dHIsIGluc25idWYsIGEtPmluc3RybGVuKTsKKyAgICAgICAgdGV4dF9wb2tlKGluc3RyLCBpbnNu YnVmLCBhLT5pbnN0cmxlbik7CiAgICAgfQorfQorCisvKgorICogVGhpcyByb3V0aW5lIGlzIGNh bGxlZCB3aXRoIGxvY2FsIGludGVycnVwdCBkaXNhYmxlZCBhbmQgdXNlZCBkdXJpbmcKKyAqIGJv b3R1cC4KKyAqLwordm9pZCBfX2luaXQgYXBwbHlfYWx0ZXJuYXRpdmVzKHN0cnVjdCBhbHRfaW5z dHIgKnN0YXJ0LCBzdHJ1Y3QgYWx0X2luc3RyICplbmQpCit7CisgICAgdW5zaWduZWQgbG9uZyBj cjAgPSByZWFkX2NyMCgpOworCisgICAgQVNTRVJUKCFsb2NhbF9pcnFfaXNfZW5hYmxlZCgpKTsK KworICAgIC8qIERpc2FibGUgV1AgdG8gYWxsb3cgYXBwbGljYXRpb24gb2YgYWx0ZXJuYXRpdmVz IHRvIHJlYWQtb25seSBwYWdlcy4gKi8KKyAgICB3cml0ZV9jcjAoY3IwICYgflg4Nl9DUjBfV1Ap OworCisgICAgYXBwbHlfYWx0ZXJuYXRpdmVzX25vY2hlY2soc3RhcnQsIGVuZCk7CiAKICAgICAv KiBSZWluc3RhdGUgV1AuICovCiAgICAgd3JpdGVfY3IwKGNyMCk7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGRfZnVuYy5jIGIveGVuL2FyY2gveDg2L3Rlc3Qv eGVuX2hlbGxvX3dvcmxkX2Z1bmMuYwppbmRleCAyZTRhZjljLi4wM2Q2Yjg0IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGRfZnVuYy5jCisrKyBiL3hlbi9hcmNo L3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZF9mdW5jLmMKQEAgLTUsNiArNSw4IEBACiAKICNpbmNs dWRlIDx4ZW4vdHlwZXMuaD4KIAorI2luY2x1ZGUgPGFzbS9hbHRlcm5hdGl2ZS5oPgorI2luY2x1 ZGUgPGFzbS9ub3BzLmg+CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KIAogc3RhdGljIHVuc2ln bmVkIGxvbmcgKm5vbl9jYW5vbmljYWxfYWRkciA9ICh1bnNpZ25lZCBsb25nICopMHhkZWFkMDAw MDAwMDAwMDAwVUxMOwpAQCAtMTQsNiArMTYsOCBAQCBjb25zdCBjaGFyICp4ZW5faGVsbG9fd29y bGQodm9pZCkKIHsKICAgICB1bnNpZ25lZCBsb25nIHRtcDsKICAgICBpbnQgcmM7CisKKyAgICBh bHRlcm5hdGl2ZShBU01fTk9QOCwgQVNNX05PUDEsIFg4Nl9GRUFUVVJFX0xNKTsKICAgICAvKgog ICAgICAqIEFueSBCVUcsIG9yIFdBUk5fT04gd2lsbCBjb250YWluIHN5bWJvbCBhbmQgcGF5bG9h ZCBuYW1lLiBGdXJ0aGVybW9yZQogICAgICAqIGV4Y2VwdGlvbnMgd2lsbCBiZSBjYXVnaHQgYW5k IHByb2Nlc3NlZCBwcm9wZXJseS4KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24veHNwbGljZS5jIGIv eGVuL2NvbW1vbi94c3BsaWNlLmMKaW5kZXggMDQ1NjQ2NC4uYTAyNzAyYSAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi94c3BsaWNlLmMKKysrIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKQEAgLTUzNSw2 ICs1MzUsMzcgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBh eWxvYWQsCiAgICAgfQogCiAjaWZuZGVmIENPTkZJR19BUk0KKyAgICBzZWMgPSB4c3BsaWNlX2Vs Zl9zZWNfYnlfbmFtZShlbGYsICIuYWx0aW5zdHJ1Y3Rpb25zIik7CisgICAgaWYgKCBzZWMgKQor ICAgIHsKKyAgICAgICAgc3RydWN0IGFsdF9pbnN0ciAqYSwgKnN0YXJ0LCAqZW5kOworCisgICAg ICAgIGlmICggc2VjLT5zZWMtPnNoX3NpemUgJSBzaXplb2YoKmEpICkKKyAgICAgICAgeworICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogU2l6ZSBvZiAuYWx0X2lu c3RyIGlzIG5vdCBtdWx0aXBsZSBvZiAlenUhXG4iLAorICAgICAgICAgICAgICAgICAgICBlbGYt Pm5hbWUsIHNpemVvZigqYSkpOworICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgICAg IH0KKworICAgICAgICBzdGFydCA9IHNlYy0+bG9hZF9hZGRyOworICAgICAgICBlbmQgPSBzZWMt PmxvYWRfYWRkciArIHNlYy0+c2VjLT5zaF9zaXplOworCisgICAgICAgIGZvciAoIGEgPSBzdGFy dDsgYSA8IGVuZDsgYSsrICkKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3Qgdm9pZCAqaW5z dHIgPSAmYS0+aW5zdHJfb2Zmc2V0ICsgYS0+aW5zdHJfb2Zmc2V0OworICAgICAgICAgICAgY29u c3Qgdm9pZCAqcmVwbGFjZW1lbnQgPSAmYS0+cmVwbF9vZmZzZXQgKyBhLT5yZXBsX29mZnNldDsK KworICAgICAgICAgICAgaWYgKCAoaW5zdHIgPCByZWdpb24tPnN0YXJ0ICYmIGluc3RyID49IHJl Z2lvbi0+ZW5kKSB8fAorICAgICAgICAgICAgICAgICAocmVwbGFjZW1lbnQgPCByZWdpb24tPnN0 YXJ0ICYmIHJlcGxhY2VtZW50ID49IHJlZ2lvbi0+ZW5kKSApCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlcyBBbHQgcGF0Y2hpbmcg b3V0c2lkZSBwYXlsb2FkOiAlcCFcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBlbGYtPm5h bWUsIGluc3RyKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgICAg IH0KKyAgICAgICAgfQorICAgICAgICBhcHBseV9hbHRlcm5hdGl2ZXNfbm9jaGVjayhzdGFydCwg ZW5kKTsKKyAgICB9CisKICAgICBzZWMgPSB4c3BsaWNlX2VsZl9zZWNfYnlfbmFtZShlbGYsICIu ZXhfdGFibGUiKTsKICAgICBpZiAoIHNlYyApCiAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2 ZS5oCmluZGV4IDEwNTY2MzAuLmJjZTk1OWYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvYWx0ZXJuYXRpdmUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2FsdGVybmF0aXZlLmgK QEAgLTIzLDYgKzIzLDEwIEBAIHN0cnVjdCBhbHRfaW5zdHIgewogICAgIHU4ICByZXBsYWNlbWVu dGxlbjsgICAgIC8qIGxlbmd0aCBvZiBuZXcgaW5zdHJ1Y3Rpb24sIDw9IGluc3RybGVuICovCiB9 OwogCisvKiBTaW1pbGFyIHRvIGFwcGx5X2FsdGVybmF0aXZlcyBleGNlcHQgaXQgY2FuIGJlIHJ1 biB3aXRoIElSUXMgZW5hYmxlZC4gKi8KK2V4dGVybiB2b2lkIGFwcGx5X2FsdGVybmF0aXZlc19u b2NoZWNrKHN0cnVjdCBhbHRfaW5zdHIgKnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IGFsdF9pbnN0ciAqZW5kKTsKK2V4dGVybiB2b2lkIGFwcGx5 X2FsdGVybmF0aXZlcyhzdHJ1Y3QgYWx0X2luc3RyICpzdGFydCwgc3RydWN0IGFsdF9pbnN0ciAq ZW5kKTsKIGV4dGVybiB2b2lkIGFsdGVybmF0aXZlX2luc3RydWN0aW9ucyh2b2lkKTsKIAogI2Rl ZmluZSBPTERJTlNUUihvbGRpbnN0cikgICAgICAiNjYxOlxuXHQiIG9sZGluc3RyICJcbjY2Mjpc biIKLS0gCjIuNS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK