From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joshua Otto Subject: [PATCH RFC v2 17/23] libxl/libxl_stream_read.c: track callback chains with an explicit phase Date: Sun, 17 Jun 2018 03:18:28 -0700 Message-ID: <1529230714-30455-18-git-send-email-joshua.t.otto@gmail.com> References: <1529230714-30455-1-git-send-email-joshua.t.otto@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fUUnb-00053a-Vn for xen-devel@lists.xenproject.org; Sun, 17 Jun 2018 10:20:44 +0000 Received: by mail-pl0-x242.google.com with SMTP id 31-v6so7519615plc.4 for ; Sun, 17 Jun 2018 03:20:42 -0700 (PDT) In-Reply-To: <1529230714-30455-1-git-send-email-joshua.t.otto@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: andrew.cooper3@citrix.com, wei.liu2@citrix.com, Joshua Otto List-Id: xen-devel@lists.xenproject.org RnJvbTogSm9zaHVhIE90dG8gPGp0b3R0b0B1d2F0ZXJsb28uY2E+CgpBcyB0aGUgcHJldmlvdXMg cGF0Y2ggZGlkIGZvciBsaWJ4bF9zdHJlYW1fd3JpdGUsIGRvIGZvcgpsaWJ4bF9zdHJlYW1fcmVh ZC4gIGxpYnhsX3N0cmVhbV9yZWFkIGFscmVhZHkgaGFzIGEgbm90aW9uIG9mIHBoYXNlIGZvcgpp dHMgcmVjb3JkLWJ1ZmZlcmluZyBiZWhhdmlvdXIgLSB0aGlzIGlzIGNvbWJpbmVkIHdpdGggdGhl IGNhbGxiYWNrCmNoYWluIHBoYXNlLiAgQWdhaW4sIHRoaXMgaXMgZG9uZSB0byBzdXBwb3J0IHRo ZSBhZGRpdGlvbiBvZiBhIG5ldwpjYWxsYmFjayBjaGFpbiBmb3IgcG9zdGNvcHkgbGl2ZSBtaWdy YXRpb24uCgpObyBmdW5jdGlvbmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEpvc2h1YSBPdHRv IDxqdG90dG9AdXdhdGVybG9vLmNhPgotLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgg ICAgfCAgNyArKy0tCiB0b29scy9saWJ4bC9saWJ4bF9zdHJlYW1fcmVhZC5jIHwgODMgKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDUg aW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKaW5kZXggY2Vm MmYzOS4uMzBkNTQ5MiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaAor KysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0zMTMzLDkgKzMxMzMsNyBAQCBz dHJ1Y3QgbGlieGxfX3N0cmVhbV9yZWFkX3N0YXRlIHsKICAgICAvKiBQcml2YXRlICovCiAgICAg aW50IHJjOwogICAgIGJvb2wgcnVubmluZzsKLSAgICBib29sIGluX2NoZWNrcG9pbnQ7CiAgICAg Ym9vbCBzeW5jX3RlYXJkb3duOyAvKiBPbmx5IHVzZWQgdG8gY29vcmRpbmF0ZSBzaHV0ZG93biBv biBlcnJvciBwYXRoLiAqLwotICAgIGJvb2wgaW5fY2hlY2twb2ludF9zdGF0ZTsKICAgICBsaWJ4 bF9fc2F2ZV9oZWxwZXJfc3RhdGUgc2hzOwogICAgIGxpYnhsX19jb252ZXJzaW9uX2hlbHBlcl9z dGF0ZSBjaHM7CiAKQEAgLTMxNDUsOCArMzE0Myw5IEBAIHN0cnVjdCBsaWJ4bF9fc3RyZWFtX3Jl YWRfc3RhdGUgewogICAgIExJQlhMX1NUQUlMUV9IRUFEKCwgbGlieGxfX3NyX3JlY29yZF9idWYp IHJlY29yZF9xdWV1ZTsgLyogTk9HQyAqLwogICAgIGVudW0gewogICAgICAgICBTUlNfUEhBU0Vf Tk9STUFMLAotICAgICAgICBTUlNfUEhBU0VfQlVGRkVSSU5HLAotICAgICAgICBTUlNfUEhBU0Vf VU5CVUZGRVJJTkcsCisgICAgICAgIFNSU19QSEFTRV9DSEVDS1BPSU5UX0JVRkZFUklORywKKyAg ICAgICAgU1JTX1BIQVNFX0NIRUNLUE9JTlRfVU5CVUZGRVJJTkcsCisgICAgICAgIFNSU19QSEFT RV9DSEVDS1BPSU5UX1NUQVRFCiAgICAgfSBwaGFzZTsKICAgICBib29sIHJlY3Vyc2lvbl9ndWFy ZDsKIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3JlYWQuYyBiL3Rvb2xz L2xpYnhsL2xpYnhsX3N0cmVhbV9yZWFkLmMKaW5kZXggODljMmYyMS4uNGNiNTUzZSAxMDA2NDQK LS0tIGEvdG9vbHMvbGlieGwvbGlieGxfc3RyZWFtX3JlYWQuYworKysgYi90b29scy9saWJ4bC9s aWJ4bF9zdHJlYW1fcmVhZC5jCkBAIC0yOSwxNCArMjksMTUgQEAKICAqIHByb2Nlc3NlZCwgYW5k IGFsbCByZWNvcmRzIHdpbGwgYmUgcHJvY2Vzc2VkIGluIHF1ZXVlIG9yZGVyLgogICoKICAqIElu dGVybmFsIHN0YXRlczoKLSAqICAgICAgICAgICBydW5uaW5nICBwaGFzZSAgICAgICBpbl8gICAg ICAgICByZWNvcmQgICBpbmNvbWluZwotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNoZWNrcG9pbnQgIF9xdWV1ZSAgIF9yZWNvcmQKKyAqICAgICAgICAgICBydW5uaW5nICBwaGFz ZSAgICAgICAgICAgICAgICAgICByZWNvcmQgICBpbmNvbWluZworICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9xdWV1ZSAgIF9yZWNvcmQKICAqCi0gKiBVbmRl ZmluZWQgICAgdW5kZWYgIHVuZGVmICAgICAgICB1bmRlZiAgICAgICB1bmRlZiAgICB1bmRlZgot ICogSWRsZSAgICAgICAgIGZhbHNlICB1bmRlZiAgICAgICAgZmFsc2UgICAgICAgMCAgICAgICAg MAotICogQWN0aXZlICAgICAgIHRydWUgICBOT1JNQUwgICAgICAgZmFsc2UgICAgICAgMC8xICAg ICAgMC9wYXJ0aWFsCi0gKiBBY3RpdmUgICAgICAgdHJ1ZSAgIEJVRkZFUklORyAgICB0cnVlICAg ICAgICBhbnkgICAgICAwL3BhcnRpYWwKLSAqIEFjdGl2ZSAgICAgICB0cnVlICAgVU5CVUZGRVJJ TkcgIHRydWUgICAgICAgIGFueSAgICAgIDAKKyAqIFVuZGVmaW5lZCAgICB1bmRlZiAgdW5kZWYg ICAgICAgICAgICAgICAgICAgIHVuZGVmICAgIHVuZGVmCisgKiBJZGxlICAgICAgICAgZmFsc2Ug IHVuZGVmICAgICAgICAgICAgICAgICAgICAwICAgICAgICAwCisgKiBBY3RpdmUgICAgICAgdHJ1 ZSAgIE5PUk1BTCAgICAgICAgICAgICAgICAgICAwLzEgICAgICAwL3BhcnRpYWwKKyAqIEFjdGl2 ZSAgICAgICB0cnVlICAgQ0hFQ0tQT0lOVF9CVUZGRVJJTkcgICAgIGFueSAgICAgIDAvcGFydGlh bAorICogQWN0aXZlICAgICAgIHRydWUgICBDSEVDS1BPSU5UX1VOQlVGRkVSSU5HICAgYW55ICAg ICAgMAorICogQWN0aXZlICAgICAgIHRydWUgICBDSEVDS1BPSU5UX1NUQVRFICAgICAgICAgMC8x ICAgICAgMC9wYXJ0aWFsCiAgKgogICogV2hpbGUgcmVhZGluZyBkYXRhIGZyb20gdGhlIHN0cmVh bSwgJ2RjJyBpcyBhY3RpdmUgYW5kIGEgY2FsbGJhY2sKICAqIGlzIGV4cGVjdGVkLiAgTW9zdCBh Y3Rpb25zIGluIHByb2Nlc3NfcmVjb3JkKCkgc3RhcnQgYSBjYWxsYmFjayBvZgpAQCAtNDgsMTIg KzQ5LDEyIEBACiAgKiAgIFJlY29yZHMgYXJlIHJlYWQgb25lIGF0IHRpbWUgYW5kIGltbWVkaWF0 ZWx5IHByb2Nlc3NlZC4gIChUaGUKICAqICAgcmVjb3JkIHF1ZXVlIHdpbGwgbm90IGNvbnRhaW4g bW9yZSB0aGFuIGEgc2luZ2xlIHJlY29yZC4pCiAgKgotICogUEhBU0VfQlVGRkVSSU5HOgorICog UEhBU0VfQ0hFQ0tQT0lOVF9CVUZGRVJJTkc6CiAgKiAgIFRoaXMgcGhhc2UgaXMgdXNlZCBpbiBj aGVja3BvaW50ZWQgc3RyZWFtcywgd2hlbiBsaWJ4YyBzaWduYWxzCiAgKiAgIHRoZSBwcmVzZW5j ZSBvZiBhIGNoZWNrcG9pbnQgaW4gdGhlIHN0cmVhbS4gIFJlY29yZHMgYXJlIHJlYWQgYW5kCiAg KiAgIGJ1ZmZlcmVkIHVudGlsIGEgQ0hFQ0tQT0lOVF9FTkQgcmVjb3JkIGhhcyBiZWVuIHJlYWQu CiAgKgotICogUEhBU0VfVU5CVUZGRVJJTkc6CisgKiBQSEFTRV9DSEVDS1BPSU5UX1VOQlVGRkVS SU5HOgogICogICBPbmNlIGEgQ0hFQ0tQT0lOVF9FTkQgcmVjb3JkIGhhcyBiZWVuIHJlYWQsIGFs bCBidWZmZXJlZCByZWNvcmRzCiAgKiAgIGFyZSBwcm9jZXNzZWQuCiAgKgpAQCAtMTcyLDYgKzE3 MywxMiBAQCBzdGF0aWMgdm9pZCBjaGVja3BvaW50X3N0YXRlX2RvbmUobGlieGxfX2VnYyAqZWdj LAogCiAvKi0tLS0tIEhlbHBlcnMgLS0tLS0qLwogCitzdGF0aWMgaW5saW5lIGJvb2wgc3RyZWFt X2luX2NoZWNrcG9pbnQobGlieGxfX3N0cmVhbV9yZWFkX3N0YXRlICpzdHJlYW0pCit7CisgICAg cmV0dXJuIHN0cmVhbS0+cGhhc2UgPT0gU1JTX1BIQVNFX0NIRUNLUE9JTlRfQlVGRkVSSU5HIHx8 CisgICAgICAgICAgIHN0cmVhbS0+cGhhc2UgPT0gU1JTX1BIQVNFX0NIRUNLUE9JTlRfVU5CVUZG RVJJTkc7Cit9CisKIC8qIEhlbHBlciB0byBzZXQgdXAgcmVhZGluZyBzb21lIGRhdGEgZnJvbSB0 aGUgc3RyZWFtLiAqLwogc3RhdGljIGludCBzZXR1cF9yZWFkKGxpYnhsX19zdHJlYW1fcmVhZF9z dGF0ZSAqc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKndoYXQsIHZv aWQgKnB0ciwgc2l6ZV90IG5yX2J5dGVzLApAQCAtMjEwLDcgKzIxNyw2IEBAIHZvaWQgbGlieGxf X3N0cmVhbV9yZWFkX2luaXQobGlieGxfX3N0cmVhbV9yZWFkX3N0YXRlICpzdHJlYW0pCiAKICAg ICBzdHJlYW0tPnJjID0gMDsKICAgICBzdHJlYW0tPnJ1bm5pbmcgPSBmYWxzZTsKLSAgICBzdHJl YW0tPmluX2NoZWNrcG9pbnQgPSBmYWxzZTsKICAgICBzdHJlYW0tPnN5bmNfdGVhcmRvd24gPSBm YWxzZTsKICAgICBGSUxMWkVSTyhzdHJlYW0tPmRjKTsKICAgICBGSUxMWkVSTyhzdHJlYW0tPmhk cik7CkBAIC0yOTcsMTAgKzMwMyw5IEBAIHZvaWQgbGlieGxfX3N0cmVhbV9yZWFkX3N0YXJ0X2No ZWNrcG9pbnQobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaWJ4bF9fc3RyZWFtX3JlYWRfc3RhdGUgKnN0cmVhbSkKIHsKICAgICBhc3Nl cnQoc3RyZWFtLT5ydW5uaW5nKTsKLSAgICBhc3NlcnQoIXN0cmVhbS0+aW5fY2hlY2twb2ludCk7 CisgICAgYXNzZXJ0KHN0cmVhbS0+cGhhc2UgPT0gU1JTX1BIQVNFX05PUk1BTCk7CiAKLSAgICBz dHJlYW0tPmluX2NoZWNrcG9pbnQgPSB0cnVlOwotICAgIHN0cmVhbS0+cGhhc2UgPSBTUlNfUEhB U0VfQlVGRkVSSU5HOworICAgIHN0cmVhbS0+cGhhc2UgPSBTUlNfUEhBU0VfQ0hFQ0tQT0lOVF9C VUZGRVJJTkc7CiAKICAgICAvKgogICAgICAqIExpYnhjIGhhcyBoYW5kZWQgY29udHJvbCBvZiB0 aGUgZmQgdG8gdXMuICBTdGFydCByZWFkaW5nIHNvbWUKQEAgLTM5Miw2ICszOTcsNyBAQCBzdGF0 aWMgdm9pZCBzdHJlYW1fY29udGludWUobGlieGxfX2VnYyAqZWdjLAogCiAgICAgc3dpdGNoIChz dHJlYW0tPnBoYXNlKSB7CiAgICAgY2FzZSBTUlNfUEhBU0VfTk9STUFMOgorICAgIGNhc2UgU1JT X1BIQVNFX0NIRUNLUE9JTlRfU1RBVEU6CiAgICAgICAgIC8qCiAgICAgICAgICAqIE5vcm1hbCBw aGFzZSAocmVndWxhciBtaWdyYXRpb24gb3IgcmVzdG9yZSBmcm9tIGZpbGUpOgogICAgICAgICAg KgpAQCAtNDE2LDkgKzQyMiw5IEBAIHN0YXRpYyB2b2lkIHN0cmVhbV9jb250aW51ZShsaWJ4bF9f ZWdjICplZ2MsCiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIFNSU19QSEFT RV9CVUZGRVJJTkc6IHsKKyAgICBjYXNlIFNSU19QSEFTRV9DSEVDS1BPSU5UX0JVRkZFUklORzog ewogICAgICAgICAvKgotICAgICAgICAgKiBCdWZmZXJpbmcgcGhhc2UgKGNoZWNrcG9pbnRlZCBz dHJlYW1zIG9ubHkpOgorICAgICAgICAgKiBCdWZmZXJpbmcgcGhhc2U6CiAgICAgICAgICAqCiAg ICAgICAgICAqIGxvZ2ljYWxseToKICAgICAgICAgICogICBkbyB7IHJlYWRfcmVjb3JkKCk7IH0g d2hpbGUgKCBub3QgQ0hFQ0tQT0lOVF9FTkQgKTsKQEAgLTQzMSw4ICs0MzcsNiBAQCBzdGF0aWMg dm9pZCBzdHJlYW1fY29udGludWUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICBsaWJ4bF9fc3Jf cmVjb3JkX2J1ZiAqcmVjID0gTElCWExfU1RBSUxRX0xBU1QoCiAgICAgICAgICAgICAmc3RyZWFt LT5yZWNvcmRfcXVldWUsIGxpYnhsX19zcl9yZWNvcmRfYnVmLCBlbnRyeSk7CiAKLSAgICAgICAg YXNzZXJ0KHN0cmVhbS0+aW5fY2hlY2twb2ludCk7Ci0KICAgICAgICAgaWYgKCFyZWMgfHwgKHJl Yy0+aGRyLnR5cGUgIT0gUkVDX1RZUEVfQ0hFQ0tQT0lOVF9FTkQpKSB7CiAgICAgICAgICAgICBz ZXR1cF9yZWFkX3JlY29yZChlZ2MsIHN0cmVhbSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTQ0 MiwxOSArNDQ2LDE4IEBAIHN0YXRpYyB2b2lkIHN0cmVhbV9jb250aW51ZShsaWJ4bF9fZWdjICpl Z2MsCiAgICAgICAgICAqIFRoZXJlIGFyZSBub3cgc29tZSBudW1iZXIgb2YgYnVmZmVyZWQgcmVj b3Jkcywgd2l0aCBhCiAgICAgICAgICAqIENIRUNLUE9JTlRfRU5EIGF0IHRoZSBlbmQuIFN0YXJ0 IHByb2Nlc3NpbmcgdGhlbSBhbGwuCiAgICAgICAgICAqLwotICAgICAgICBzdHJlYW0tPnBoYXNl ID0gU1JTX1BIQVNFX1VOQlVGRkVSSU5HOworICAgICAgICBzdHJlYW0tPnBoYXNlID0gU1JTX1BI QVNFX0NIRUNLUE9JTlRfVU5CVUZGRVJJTkc7CiAgICAgfQogICAgICAgICAvKiBGQUxMVEhST1VH SCAqLwotICAgIGNhc2UgU1JTX1BIQVNFX1VOQlVGRkVSSU5HOgorICAgIGNhc2UgU1JTX1BIQVNF X0NIRUNLUE9JTlRfVU5CVUZGRVJJTkc6CiAgICAgICAgIC8qCi0gICAgICAgICAqIFVuYnVmZmVy aW5nIHBoYXNlIChjaGVja3BvaW50ZWQgc3RyZWFtcyBvbmx5KToKKyAgICAgICAgICogVW5idWZm ZXJpbmcgcGhhc2U6CiAgICAgICAgICAqCiAgICAgICAgICAqIGxvZ2ljYWxseToKICAgICAgICAg ICogICBkbyB7IHByb2Nlc3NfcmVjb3JkKCk7IH0gd2hpbGUgKCBub3QgQ0hFQ0tQT0lOVF9FTkQg KTsKICAgICAgICAgICoKICAgICAgICAgICogUHJvY2VzcyBhbGwgcmVjb3JkcyBjb2xsZWN0ZWQg ZHVyaW5nIHRoZSBidWZmZXJpbmcgcGhhc2UuCiAgICAgICAgICAqLwotICAgICAgICBhc3NlcnQo c3RyZWFtLT5pbl9jaGVja3BvaW50KTsKIAogICAgICAgICB3aGlsZSAocHJvY2Vzc19yZWNvcmQo ZWdjLCBzdHJlYW0pKQogICAgICAgICAgICAgOyAvKgpAQCAtNjI1LDcgKzYyOCw3IEBAIHN0YXRp YyBib29sIHByb2Nlc3NfcmVjb3JkKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgYnJlYWs7CiAK ICAgICBjYXNlIFJFQ19UWVBFX0NIRUNLUE9JTlRfRU5EOgotICAgICAgICBpZiAoIXN0cmVhbS0+ aW5fY2hlY2twb2ludCkgeworICAgICAgICBpZiAoIXN0cmVhbV9pbl9jaGVja3BvaW50KHN0cmVh bSkpIHsKICAgICAgICAgICAgIExPRyhFUlJPUiwgIlVuZXhwZWN0ZWQgQ0hFQ0tQT0lOVF9FTkQg cmVjb3JkIGluIHN0cmVhbSIpOwogICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwogICAgICAg ICAgICAgZ290byBlcnI7CkBAIC02MzQsNyArNjM3LDcgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc19y ZWNvcmQobGlieGxfX2VnYyAqZWdjLAogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgUkVDX1RZ UEVfQ0hFQ0tQT0lOVF9TVEFURToKLSAgICAgICAgaWYgKCFzdHJlYW0tPmluX2NoZWNrcG9pbnRf c3RhdGUpIHsKKyAgICAgICAgaWYgKHN0cmVhbS0+cGhhc2UgIT0gU1JTX1BIQVNFX0NIRUNLUE9J TlRfU1RBVEUpIHsKICAgICAgICAgICAgIExPRyhFUlJPUiwgIlVuZXhwZWN0ZWQgQ0hFQ0tQT0lO VF9TVEFURSByZWNvcmQgaW4gc3RyZWFtIik7CiAgICAgICAgICAgICByYyA9IEVSUk9SX0ZBSUw7 CiAgICAgICAgICAgICBnb3RvIGVycjsKQEAgLTc0Myw3ICs3NDYsMTIgQEAgc3RhdGljIHZvaWQg c3RyZWFtX2NvbXBsZXRlKGxpYnhsX19lZ2MgKmVnYywKIHsKICAgICBhc3NlcnQoc3RyZWFtLT5y dW5uaW5nKTsKIAotICAgIGlmIChzdHJlYW0tPmluX2NoZWNrcG9pbnQpIHsKKyAgICBzd2l0Y2gg KHN0cmVhbS0+cGhhc2UpIHsKKyAgICBjYXNlIFNSU19QSEFTRV9OT1JNQUw6CisgICAgICAgIHN0 cmVhbV9kb25lKGVnYywgc3RyZWFtLCByYyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU1JT X1BIQVNFX0NIRUNLUE9JTlRfQlVGRkVSSU5HOgorICAgIGNhc2UgU1JTX1BIQVNFX0NIRUNLUE9J TlRfVU5CVUZGRVJJTkc6CiAgICAgICAgIGFzc2VydChyYyk7CiAKICAgICAgICAgLyoKQEAgLTc1 MiwxMCArNzYwLDggQEAgc3RhdGljIHZvaWQgc3RyZWFtX2NvbXBsZXRlKGxpYnhsX19lZ2MgKmVn YywKICAgICAgICAgICogbGlieGxfX3hjX2RvbWFpbl9yZXN0b3JlX2RvbmUoKQogICAgICAgICAg Ki8KICAgICAgICAgY2hlY2twb2ludF9kb25lKGVnYywgc3RyZWFtLCByYyk7Ci0gICAgICAgIHJl dHVybjsKLSAgICB9Ci0KLSAgICBpZiAoc3RyZWFtLT5pbl9jaGVja3BvaW50X3N0YXRlKSB7Cisg ICAgICAgIGJyZWFrOworICAgIGNhc2UgU1JTX1BIQVNFX0NIRUNLUE9JTlRfU1RBVEU6CiAgICAg ICAgIGFzc2VydChyYyk7CiAKICAgICAgICAgLyoKQEAgLTc2NywxMCArNzczLDggQEAgc3RhdGlj IHZvaWQgc3RyZWFtX2NvbXBsZXRlKGxpYnhsX19lZ2MgKmVnYywKICAgICAgICAgICogICAgbGli eGxfX3N0cmVhbV9yZWFkX2Fib3J0KCkKICAgICAgICAgICovCiAgICAgICAgIGNoZWNrcG9pbnRf c3RhdGVfZG9uZShlZ2MsIHN0cmVhbSwgcmMpOwotICAgICAgICByZXR1cm47CisgICAgICAgIGJy ZWFrOwogICAgIH0KLQotICAgIHN0cmVhbV9kb25lKGVnYywgc3RyZWFtLCByYyk7CiB9CiAKIHN0 YXRpYyB2b2lkIGNoZWNrcG9pbnRfZG9uZShsaWJ4bF9fZWdjICplZ2MsCkBAIC03NzgsMTggKzc4 MiwxNyBAQCBzdGF0aWMgdm9pZCBjaGVja3BvaW50X2RvbmUobGlieGxfX2VnYyAqZWdjLAogewog ICAgIGludCByZXQ7CiAKLSAgICBhc3NlcnQoc3RyZWFtLT5pbl9jaGVja3BvaW50KTsKKyAgICBh c3NlcnQoc3RyZWFtX2luX2NoZWNrcG9pbnQoc3RyZWFtKSk7CiAKICAgICBpZiAocmMgPT0gMCkK ICAgICAgICAgcmV0ID0gWEdSX0NIRUNLUE9JTlRfU1VDQ0VTUzsKLSAgICBlbHNlIGlmIChzdHJl YW0tPnBoYXNlID09IFNSU19QSEFTRV9CVUZGRVJJTkcpCisgICAgZWxzZSBpZiAoc3RyZWFtLT5w aGFzZSA9PSBTUlNfUEhBU0VfQ0hFQ0tQT0lOVF9CVUZGRVJJTkcpCiAgICAgICAgIHJldCA9IFhH Ul9DSEVDS1BPSU5UX0ZBSUxPVkVSOwogICAgIGVsc2UKICAgICAgICAgcmV0ID0gWEdSX0NIRUNL UE9JTlRfRVJST1I7CiAKICAgICBzdHJlYW0tPmNoZWNrcG9pbnRfY2FsbGJhY2soZWdjLCBzdHJl YW0sIHJldCk7CiAKLSAgICBzdHJlYW0tPmluX2NoZWNrcG9pbnQgPSBmYWxzZTsKICAgICBzdHJl YW0tPnBoYXNlID0gU1JTX1BIQVNFX05PUk1BTDsKIH0KIApAQCAtNzk5LDggKzgwMiw3IEBAIHN0 YXRpYyB2b2lkIHN0cmVhbV9kb25lKGxpYnhsX19lZ2MgKmVnYywKICAgICBsaWJ4bF9fc3JfcmVj b3JkX2J1ZiAqcmVjLCAqdHJlYzsKIAogICAgIGFzc2VydChzdHJlYW0tPnJ1bm5pbmcpOwotICAg IGFzc2VydCghc3RyZWFtLT5pbl9jaGVja3BvaW50KTsKLSAgICBhc3NlcnQoIXN0cmVhbS0+aW5f Y2hlY2twb2ludF9zdGF0ZSk7CisgICAgYXNzZXJ0KHN0cmVhbS0+cGhhc2UgPT0gU1JTX1BIQVNF X05PUk1BTCk7CiAgICAgc3RyZWFtLT5ydW5uaW5nID0gZmFsc2U7CiAKICAgICBpZiAoc3RyZWFt LT5pbmNvbWluZ19yZWNvcmQpCkBAIC05NTUsOSArOTU3LDggQEAgdm9pZCBsaWJ4bF9fc3RyZWFt X3JlYWRfY2hlY2twb2ludF9zdGF0ZShsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSAqc3RyZWFt KQogewogICAgIGFzc2VydChzdHJlYW0tPnJ1bm5pbmcpOwotICAgIGFzc2VydCghc3RyZWFtLT5p bl9jaGVja3BvaW50KTsKLSAgICBhc3NlcnQoIXN0cmVhbS0+aW5fY2hlY2twb2ludF9zdGF0ZSk7 Ci0gICAgc3RyZWFtLT5pbl9jaGVja3BvaW50X3N0YXRlID0gdHJ1ZTsKKyAgICBhc3NlcnQoc3Ry ZWFtLT5waGFzZSA9PSBTUlNfUEhBU0VfTk9STUFMKTsKKyAgICBzdHJlYW0tPnBoYXNlID0gU1JT X1BIQVNFX0NIRUNLUE9JTlRfU1RBVEU7CiAKICAgICBzZXR1cF9yZWFkX3JlY29yZChlZ2MsIHN0 cmVhbSk7CiB9CkBAIC05NjUsOCArOTY2LDggQEAgdm9pZCBsaWJ4bF9fc3RyZWFtX3JlYWRfY2hl Y2twb2ludF9zdGF0ZShsaWJ4bF9fZWdjICplZ2MsCiBzdGF0aWMgdm9pZCBjaGVja3BvaW50X3N0 YXRlX2RvbmUobGlieGxfX2VnYyAqZWdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxpYnhsX19zdHJlYW1fcmVhZF9zdGF0ZSAqc3RyZWFtLCBpbnQgcmMpCiB7Ci0gICAgYXNz ZXJ0KHN0cmVhbS0+aW5fY2hlY2twb2ludF9zdGF0ZSk7Ci0gICAgc3RyZWFtLT5pbl9jaGVja3Bv aW50X3N0YXRlID0gZmFsc2U7CisgICAgYXNzZXJ0KHN0cmVhbS0+cGhhc2UgPT0gU1JTX1BIQVNF X0NIRUNLUE9JTlRfU1RBVEUpOworICAgIHN0cmVhbS0+cGhhc2UgPSBTUlNfUEhBU0VfTk9STUFM OwogICAgIHN0cmVhbS0+Y2hlY2twb2ludF9jYWxsYmFjayhlZ2MsIHN0cmVhbSwgcmMpOwogfQog Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3Jn Cmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=