From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EFA0DC32758 for ; Fri, 9 Aug 2019 14:59:08 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B87C7208C4 for ; Fri, 9 Aug 2019 14:59:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B87C7208C4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hw6M0-0006Xn-3q; Fri, 09 Aug 2019 14:58:52 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hw6Lx-0006TF-27 for xen-devel@lists.xenproject.org; Fri, 09 Aug 2019 14:58:49 +0000 X-Inumbo-ID: 2c69f052-bab6-11e9-8980-bc764e045a96 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 2c69f052-bab6-11e9-8980-bc764e045a96; Fri, 09 Aug 2019 14:58:41 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 79447B03B; Fri, 9 Aug 2019 14:58:39 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Fri, 9 Aug 2019 16:57:51 +0200 Message-Id: <20190809145833.1020-7-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190809145833.1020-1-jgross@suse.com> References: <20190809145833.1020-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v2 06/48] xen/sched: switch schedule_data.curr to point at sched_unit X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Tim Deegan , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Robert VanVossen , Dario Faggioli , Julien Grall , Josh Whitehead , Meng Xu , Jan Beulich MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SW4gcHJlcGFyYXRpb24gb2YgY29yZSBzY2hlZHVsaW5nIGxldCB0aGUgcGVyY3B1IHBvaW50ZXIK c2NoZWR1bGVfZGF0YS5jdXJyIHBvaW50IHRvIGEgc3RyY3Qgc2NoZWRfdW5pdCBpbnN0ZWFkIG9m IHRoZSByZWxhdGVkCnZjcHUuIEF0IHRoZSBzYW1lIHRpbWUgcmVuYW1lIHRoZSBwZXItdmNwdSBz Y2hlZHVsZXIgc3BlY2lmaWMgc3RydWN0cwp0byBwZXItdW5pdCBvbmVzLgoKU2lnbmVkLW9mZi1i eTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogRGFyaW8gRmFn Z2lvbGkgPGRmYWdnaW9saUBzdXNlLmNvbT4KLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUz LmMgfCAgIDIgKy0KIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMgICB8IDEwNSArKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jICB8IDE2OCArKysr KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9zY2hl ZF9udWxsLmMgICAgIHwgIDQ2ICsrKysrKy0tLS0tLQogeGVuL2NvbW1vbi9zY2hlZF9ydC5jICAg ICAgIHwgMTE4ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vc2No ZWR1bGUuYyAgICAgICB8ICAgOCArLS0KIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oICB8ICAg MiArLQogNyBmaWxlcyBjaGFuZ2VkLCAyMjIgaW5zZXJ0aW9ucygrKSwgMjI3IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYyBiL3hlbi9jb21tb24v c2NoZWRfYXJpbmM2NTMuYwppbmRleCA5NjlkZTMzOGIxLi4zNGIxZjIzNWEyIDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9hcmlu YzY1My5jCkBAIC00NzUsNyArNDc1LDcgQEAgYTY1M3NjaGVkX3VuaXRfc2xlZXAoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICAgKiBJZiB0 aGUgVkNQVSBiZWluZyBwdXQgdG8gc2xlZXAgaXMgdGhlIHNhbWUgb25lIHRoYXQgaXMgY3VycmVu dGx5CiAgICAgICogcnVubmluZywgcmFpc2UgYSBzb2Z0aXJxIHRvIGludm9rZSB0aGUgc2NoZWR1 bGVyIHRvIHN3aXRjaCBkb21haW5zLgogICAgICAqLwotICAgIGlmICggcGVyX2NwdShzY2hlZHVs ZV9kYXRhLCB2Yy0+cHJvY2Vzc29yKS5jdXJyID09IHZjICkKKyAgICBpZiAoIHBlcl9jcHUoc2No ZWR1bGVfZGF0YSwgdmMtPnByb2Nlc3NvcikuY3VyciA9PSB1bml0ICkKICAgICAgICAgY3B1X3Jh aXNlX3NvZnRpcnEodmMtPnByb2Nlc3NvciwgU0NIRURVTEVfU09GVElSUSk7CiB9CiAKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRp dC5jCmluZGV4IDZlNTZmMWEzZjYuLjdjM2RiYWU4OTIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v c2NoZWRfY3JlZGl0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwpAQCAtODMsNyAr ODMsNyBAQAogICAgICgoc3RydWN0IGNzY2hlZF9wcml2YXRlICopKChfb3BzKS0+c2NoZWRfZGF0 YSkpCiAjZGVmaW5lIENTQ0hFRF9QQ1BVKF9jKSAgICAgXAogICAgICgoc3RydWN0IGNzY2hlZF9w Y3B1ICopcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBfYykuc2NoZWRfcHJpdikKLSNkZWZpbmUgQ1ND SEVEX1ZDUFUoX3ZjcHUpICAoKHN0cnVjdCBjc2NoZWRfdmNwdSAqKSAoX3ZjcHUpLT5zY2hlZF91 bml0LT5wcml2KQorI2RlZmluZSBDU0NIRURfVU5JVCh1bml0KSAgICgoc3RydWN0IGNzY2hlZF91 bml0ICopICh1bml0KS0+cHJpdikKICNkZWZpbmUgQ1NDSEVEX0RPTShfZG9tKSAgICAoKHN0cnVj dCBjc2NoZWRfZG9tICopIChfZG9tKS0+c2NoZWRfcHJpdikKICNkZWZpbmUgUlVOUShfY3B1KSAg ICAgICAgICAoJihDU0NIRURfUENQVShfY3B1KS0+cnVucSkpCiAKQEAgLTE2MCw3ICsxNjAsNyBA QCBzdHJ1Y3QgY3NjaGVkX3BjcHUgewogLyoKICAqIFZpcnR1YWwgQ1BVCiAgKi8KLXN0cnVjdCBj c2NoZWRfdmNwdSB7CitzdHJ1Y3QgY3NjaGVkX3VuaXQgewogICAgIHN0cnVjdCBsaXN0X2hlYWQg cnVucV9lbGVtOwogICAgIHN0cnVjdCBsaXN0X2hlYWQgYWN0aXZlX3ZjcHVfZWxlbTsKIApAQCAt MjMzLDE1ICsyMzMsMTUgQEAgc3RhdGljIHZvaWQgY3NjaGVkX3RpY2sodm9pZCAqX2NwdSk7CiBz dGF0aWMgdm9pZCBjc2NoZWRfYWNjdCh2b2lkICpkdW1teSk7CiAKIHN0YXRpYyBpbmxpbmUgaW50 Ci1fX3ZjcHVfb25fcnVucShzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YykKK19fdmNwdV9vbl9ydW5x KHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjKQogewogICAgIHJldHVybiAhbGlzdF9lbXB0eSgmc3Zj LT5ydW5xX2VsZW0pOwogfQogCi1zdGF0aWMgaW5saW5lIHN0cnVjdCBjc2NoZWRfdmNwdSAqCitz dGF0aWMgaW5saW5lIHN0cnVjdCBjc2NoZWRfdW5pdCAqCiBfX3J1bnFfZWxlbShzdHJ1Y3QgbGlz dF9oZWFkICplbGVtKQogewotICAgIHJldHVybiBsaXN0X2VudHJ5KGVsZW0sIHN0cnVjdCBjc2No ZWRfdmNwdSwgcnVucV9lbGVtKTsKKyAgICByZXR1cm4gbGlzdF9lbnRyeShlbGVtLCBzdHJ1Y3Qg Y3NjaGVkX3VuaXQsIHJ1bnFfZWxlbSk7CiB9CiAKIC8qIElzIHRoZSBmaXJzdCBlbGVtZW50IG9m IGNwdSdzIHJ1bnEgKGlmIGFueSkgY3B1J3MgaWRsZSB2Y3B1PyAqLwpAQCAtMjczLDcgKzI3Myw3 IEBAIGRlY19ucl9ydW5uYWJsZSh1bnNpZ25lZCBpbnQgY3B1KQogfQogCiBzdGF0aWMgaW5saW5l IHZvaWQKLV9fcnVucV9pbnNlcnQoc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMpCitfX3J1bnFfaW5z ZXJ0KHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjKQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBz dmMtPnZjcHUtPnByb2Nlc3NvcjsKICAgICBjb25zdCBzdHJ1Y3QgbGlzdF9oZWFkICogY29uc3Qg cnVucSA9IFJVTlEoY3B1KTsKQEAgLTI4Myw3ICsyODMsNyBAQCBfX3J1bnFfaW5zZXJ0KHN0cnVj dCBjc2NoZWRfdmNwdSAqc3ZjKQogCiAgICAgbGlzdF9mb3JfZWFjaCggaXRlciwgcnVucSApCiAg ICAgewotICAgICAgICBjb25zdCBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKiBjb25zdCBpdGVyX3N2YyA9 IF9fcnVucV9lbGVtKGl0ZXIpOworICAgICAgICBjb25zdCBzdHJ1Y3QgY3NjaGVkX3VuaXQgKiBj b25zdCBpdGVyX3N2YyA9IF9fcnVucV9lbGVtKGl0ZXIpOwogICAgICAgICBpZiAoIHN2Yy0+cHJp ID4gaXRlcl9zdmMtPnByaSApCiAgICAgICAgICAgICBicmVhazsKICAgICB9CkBAIC0zMDQsMzQg KzMwNCwzNCBAQCBfX3J1bnFfaW5zZXJ0KHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjKQogfQogCiBz dGF0aWMgaW5saW5lIHZvaWQKLXJ1bnFfaW5zZXJ0KHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjKQor cnVucV9pbnNlcnQoc3RydWN0IGNzY2hlZF91bml0ICpzdmMpCiB7CiAgICAgX19ydW5xX2luc2Vy dChzdmMpOwogICAgIGluY19ucl9ydW5uYWJsZShzdmMtPnZjcHUtPnByb2Nlc3Nvcik7CiB9CiAK IHN0YXRpYyBpbmxpbmUgdm9pZAotX19ydW5xX3JlbW92ZShzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2 YykKK19fcnVucV9yZW1vdmUoc3RydWN0IGNzY2hlZF91bml0ICpzdmMpCiB7CiAgICAgQlVHX09O KCAhX192Y3B1X29uX3J1bnEoc3ZjKSApOwogICAgIGxpc3RfZGVsX2luaXQoJnN2Yy0+cnVucV9l bGVtKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1ydW5xX3JlbW92ZShzdHJ1Y3QgY3NjaGVk X3ZjcHUgKnN2YykKK3J1bnFfcmVtb3ZlKHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjKQogewogICAg IGRlY19ucl9ydW5uYWJsZShzdmMtPnZjcHUtPnByb2Nlc3Nvcik7CiAgICAgX19ydW5xX3JlbW92 ZShzdmMpOwogfQogCi1zdGF0aWMgdm9pZCBidXJuX2NyZWRpdHMoc3RydWN0IGNzY2hlZF92Y3B1 ICpzdmMsIHNfdGltZV90IG5vdykKK3N0YXRpYyB2b2lkIGJ1cm5fY3JlZGl0cyhzdHJ1Y3QgY3Nj aGVkX3VuaXQgKnN2Yywgc190aW1lX3Qgbm93KQogewogICAgIHNfdGltZV90IGRlbHRhOwogICAg IHVpbnQ2NF90IHZhbDsKICAgICB1bnNpZ25lZCBpbnQgY3JlZGl0czsKIAogICAgIC8qIEFzc2Vy dCBzdmMgaXMgY3VycmVudCAqLwotICAgIEFTU0VSVCggc3ZjID09IENTQ0hFRF9WQ1BVKGN1cnJf b25fY3B1KHN2Yy0+dmNwdS0+cHJvY2Vzc29yKSkgKTsKKyAgICBBU1NFUlQoIHN2YyA9PSBDU0NI RURfVU5JVChjdXJyX29uX2NwdShzdmMtPnZjcHUtPnByb2Nlc3NvcikpICk7CiAKICAgICBpZiAo IChkZWx0YSA9IG5vdyAtIHN2Yy0+c3RhcnRfdGltZSkgPD0gMCApCiAgICAgICAgIHJldHVybjsK QEAgLTM0OSwxMCArMzQ5LDEwIEBAIGJvb2xlYW5fcGFyYW0oInRpY2tsZV9vbmVfaWRsZV9jcHUi LCBvcHRfdGlja2xlX29uZV9pZGxlKTsKIAogREVGSU5FX1BFUl9DUFUodW5zaWduZWQgaW50LCBs YXN0X3RpY2tsZV9jcHUpOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgX19ydW5xX3RpY2tsZShzdHJ1 Y3QgY3NjaGVkX3ZjcHUgKm5ldykKK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3J1bnFfdGlja2xlKHN0 cnVjdCBjc2NoZWRfdW5pdCAqbmV3KQogewogICAgIHVuc2lnbmVkIGludCBjcHUgPSBuZXctPnZj cHUtPnByb2Nlc3NvcjsKLSAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKiBjb25zdCBjdXIgPSBDU0NI RURfVkNQVShjdXJyX29uX2NwdShjcHUpKTsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKiBjb25z dCBjdXIgPSBDU0NIRURfVU5JVChjdXJyX29uX2NwdShjcHUpKTsKICAgICBzdHJ1Y3QgY3NjaGVk X3ByaXZhdGUgKnBydiA9IENTQ0hFRF9QUklWKHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpKTsKICAg ICBjcHVtYXNrX3QgbWFzaywgaWRsZV9tYXNrLCAqb25saW5lOwogICAgIGludCBiYWxhbmNlX3N0 ZXAsIGlkbGVyc19lbXB0eTsKQEAgLTYwNyw3ICs2MDcsNyBAQCBpbml0X3BkYXRhKHN0cnVjdCBj c2NoZWRfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgY3NjaGVkX3BjcHUgKnNwYywgaW50IGNwdSkKICAg ICBzcGMtPmlkbGVfYmlhcyA9IG5yX2NwdV9pZHMgLSAxOwogCiAgICAgLyogU3RhcnQgb2ZmIGlk bGluZy4uLiAqLwotICAgIEJVR19PTighaXNfaWRsZV92Y3B1KGN1cnJfb25fY3B1KGNwdSkpKTsK KyAgICBCVUdfT04oIWlzX2lkbGVfdmNwdShjdXJyX29uX2NwdShjcHUpLT52Y3B1X2xpc3QpKTsK ICAgICBjcHVtYXNrX3NldF9jcHUoY3B1LCBwcnYtPmlkbGVycyk7CiAgICAgc3BjLT5ucl9ydW5u YWJsZSA9IDA7CiB9CkBAIC02MzAsNyArNjMwLDcgQEAgY3NjaGVkX3N3aXRjaF9zY2hlZChzdHJ1 Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogewogICAgIHN0cnVjdCBz Y2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7CiAgICAgc3Ry dWN0IGNzY2hlZF9wcml2YXRlICpwcnYgPSBDU0NIRURfUFJJVihuZXdfb3BzKTsKLSAgICBzdHJ1 Y3QgY3NjaGVkX3ZjcHUgKnN2YyA9IHZkYXRhOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3Zj ID0gdmRhdGE7CiAKICAgICBBU1NFUlQoc3ZjICYmIGlzX2lkbGVfdmNwdShzdmMtPnZjcHUpKTsK IApAQCAtNjUzLDcgKzY1Myw3IEBAIGNzY2hlZF9zd2l0Y2hfc2NoZWQoc3RydWN0IHNjaGVkdWxl ciAqbmV3X29wcywgdW5zaWduZWQgaW50IGNwdSwKIHN0YXRpYyBpbmxpbmUgdm9pZAogX19jc2No ZWRfdmNwdV9jaGVjayhzdHJ1Y3QgdmNwdSAqdmMpCiB7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1 ICogY29uc3Qgc3ZjID0gQ1NDSEVEX1ZDUFUodmMpOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAq IGNvbnN0IHN2YyA9IENTQ0hFRF9VTklUKHZjLT5zY2hlZF91bml0KTsKICAgICBzdHJ1Y3QgY3Nj aGVkX2RvbSAqIGNvbnN0IHNkb20gPSBzdmMtPnNkb207CiAKICAgICBCVUdfT04oIHN2Yy0+dmNw dSAhPSB2YyApOwpAQCAtNjg2LDcgKzY4Niw3IEBAIGludGVnZXJfcGFyYW0oInZjcHVfbWlncmF0 aW9uX2RlbGF5IiwgdmNwdV9taWdyYXRpb25fZGVsYXlfdXMpOwogCiBzdGF0aWMgaW5saW5lIGJv b2wKIF9fY3NjaGVkX3ZjcHVfaXNfY2FjaGVfaG90KGNvbnN0IHN0cnVjdCBjc2NoZWRfcHJpdmF0 ZSAqcHJ2LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGNzY2hlZF92 Y3B1ICpzdmMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgY3NjaGVk X3VuaXQgKnN2YykKIHsKICAgICBib29sIGhvdCA9IHBydi0+dmNwdV9taWdyX2RlbGF5ICYmCiAg ICAgICAgICAgICAgICAoTk9XKCkgLSBzdmMtPmxhc3Rfc2NoZWRfdGltZSkgPCBwcnYtPnZjcHVf bWlncl9kZWxheTsKQEAgLTcwMSw3ICs3MDEsNyBAQCBzdGF0aWMgaW5saW5lIGludAogX19jc2No ZWRfdmNwdV9pc19taWdyYXRlYWJsZShjb25zdCBzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiwg c3RydWN0IHZjcHUgKnZjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzdF9j cHUsIGNwdW1hc2tfdCAqbWFzaykKIHsKLSAgICBjb25zdCBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2 YyA9IENTQ0hFRF9WQ1BVKHZjKTsKKyAgICBjb25zdCBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YyA9 IENTQ0hFRF9VTklUKHZjLT5zY2hlZF91bml0KTsKICAgICAvKgogICAgICAqIERvbid0IHBpY2sg dXAgd29yayB0aGF0J3MgaG90IG9uIHBlZXIgUENQVSwgb3IgdGhhdCBjYW4ndCAob3IKICAgICAg KiB3b3VsZCBwcmVmZXIgbm90IHRvKSBydW4gb24gY3B1LgpAQCAtODU3LDcgKzg1Nyw3IEBAIHN0 YXRpYyBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKgogY3NjaGVkX3Jlc19waWNrKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgc3RydWN0 IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqc3Zj ID0gQ1NDSEVEX1ZDUFUodmMpOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjID0gQ1NDSEVE X1VOSVQodW5pdCk7CiAKICAgICAvKgogICAgICAqIFdlIGhhdmUgYmVlbiBjYWxsZWQgYnkgdmNw dV9taWdyYXRlKCkgKGluIHNjaGVkdWxlLmMpLCBhcyBwYXJ0CkBAIC04NzEsNyArODcxLDcgQEAg Y3NjaGVkX3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVk X3VuaXQgKnVuaXQpCiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotX19jc2NoZWRfdmNwdV9hY2N0 X3N0YXJ0KHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2 YykKK19fY3NjaGVkX3ZjcHVfYWNjdF9zdGFydChzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiwg c3RydWN0IGNzY2hlZF91bml0ICpzdmMpCiB7CiAgICAgc3RydWN0IGNzY2hlZF9kb20gKiBjb25z dCBzZG9tID0gc3ZjLT5zZG9tOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC05MDEsNyAr OTAxLDcgQEAgX19jc2NoZWRfdmNwdV9hY2N0X3N0YXJ0KHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAq cHJ2LCBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YykKIAogc3RhdGljIGlubGluZSB2b2lkCiBfX2Nz Y2hlZF92Y3B1X2FjY3Rfc3RvcF9sb2NrZWQoc3RydWN0IGNzY2hlZF9wcml2YXRlICpwcnYsCi0g ICAgc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMpCisgICAgc3RydWN0IGNzY2hlZF91bml0ICpzdmMp CiB7CiAgICAgc3RydWN0IGNzY2hlZF9kb20gKiBjb25zdCBzZG9tID0gc3ZjLT5zZG9tOwogCkBA IC05MjYsNyArOTI2LDcgQEAgX19jc2NoZWRfdmNwdV9hY2N0X3N0b3BfbG9ja2VkKHN0cnVjdCBj c2NoZWRfcHJpdmF0ZSAqcHJ2LAogc3RhdGljIHZvaWQKIGNzY2hlZF92Y3B1X2FjY3Qoc3RydWN0 IGNzY2hlZF9wcml2YXRlICpwcnYsIHVuc2lnbmVkIGludCBjcHUpCiB7Ci0gICAgc3RydWN0IGNz Y2hlZF92Y3B1ICogY29uc3Qgc3ZjID0gQ1NDSEVEX1ZDUFUoY3VycmVudCk7CisgICAgc3RydWN0 IGNzY2hlZF91bml0ICogY29uc3Qgc3ZjID0gQ1NDSEVEX1VOSVQoY3VycmVudC0+c2NoZWRfdW5p dCk7CiAgICAgY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzID0gcGVyX2NwdShzY2hlZHVsZXIs IGNwdSk7CiAKICAgICBBU1NFUlQoIGN1cnJlbnQtPnByb2Nlc3NvciA9PSBjcHUgKTsKQEAgLTk5 NSwxMCArOTk1LDEwIEBAIGNzY2hlZF9hbGxvY192ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0LAogICAgICAgICAgICAgICAgICAgIHZvaWQg KmRkKQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1 Y3QgY3NjaGVkX3ZjcHUgKnN2YzsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YzsKIAogICAg IC8qIEFsbG9jYXRlIHBlci1WQ1BVIGluZm8gKi8KLSAgICBzdmMgPSB4emFsbG9jKHN0cnVjdCBj c2NoZWRfdmNwdSk7CisgICAgc3ZjID0geHphbGxvYyhzdHJ1Y3QgY3NjaGVkX3VuaXQpOwogICAg IGlmICggc3ZjID09IE5VTEwgKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtMTAxNyw3ICsx MDE3LDcgQEAgc3RhdGljIHZvaWQKIGNzY2hlZF91bml0X2luc2VydChjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewogICAgIHN0cnVjdCB2Y3B1 ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YyA9IHVu aXQtPnByaXY7CisgICAgc3RydWN0IGNzY2hlZF91bml0ICpzdmMgPSB1bml0LT5wcml2OwogICAg IHNwaW5sb2NrX3QgKmxvY2s7CiAKICAgICBCVUdfT04oIGlzX2lkbGVfdmNwdSh2YykgKTsKQEAg LTEwNDMsNyArMTA0Myw3IEBAIGNzY2hlZF91bml0X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogc3RhdGljIHZvaWQKIGNzY2hlZF9m cmVlX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcHJpdikKIHsKLSAg ICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YyA9IHByaXY7CisgICAgc3RydWN0IGNzY2hlZF91bml0 ICpzdmMgPSBwcml2OwogCiAgICAgQlVHX09OKCAhbGlzdF9lbXB0eSgmc3ZjLT5ydW5xX2VsZW0p ICk7CiAKQEAgLTEwNTQsOCArMTA1NCw3IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWRfdW5pdF9yZW1v dmUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkK IHsKICAgICBzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiA9IENTQ0hFRF9QUklWKG9wcyk7Ci0g ICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBjc2NoZWRf dmNwdSAqIGNvbnN0IHN2YyA9IENTQ0hFRF9WQ1BVKHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVkX3Vu aXQgKiBjb25zdCBzdmMgPSBDU0NIRURfVU5JVCh1bml0KTsKICAgICBzdHJ1Y3QgY3NjaGVkX2Rv bSAqIGNvbnN0IHNkb20gPSBzdmMtPnNkb207CiAKICAgICBTQ0hFRF9TVEFUX0NSQU5LKHZjcHVf cmVtb3ZlKTsKQEAgLTEwODIsMTQgKzEwODEsMTQgQEAgc3RhdGljIHZvaWQKIGNzY2hlZF91bml0 X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVu aXQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVj dCBjc2NoZWRfdmNwdSAqIGNvbnN0IHN2YyA9IENTQ0hFRF9WQ1BVKHZjKTsKKyAgICBzdHJ1Y3Qg Y3NjaGVkX3VuaXQgKiBjb25zdCBzdmMgPSBDU0NIRURfVU5JVCh1bml0KTsKICAgICB1bnNpZ25l ZCBpbnQgY3B1ID0gdmMtPnByb2Nlc3NvcjsKIAogICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV9z bGVlcCk7CiAKICAgICBCVUdfT04oIGlzX2lkbGVfdmNwdSh2YykgKTsKIAotICAgIGlmICggY3Vy cl9vbl9jcHUoY3B1KSA9PSB2YyApCisgICAgaWYgKCBjdXJyX29uX2NwdShjcHUpID09IHVuaXQg KQogICAgIHsKICAgICAgICAgLyoKICAgICAgICAgICogV2UgYXJlIGFib3V0IHRvIHRpY2tsZSBj cHUsIHNvIHdlIHNob3VsZCBjbGVhciBpdHMgYml0IGluIGlkbGVycy4KQEAgLTExMDcsMTIgKzEx MDYsMTIgQEAgc3RhdGljIHZvaWQKIGNzY2hlZF91bml0X3dha2UoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAq dmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICogY29uc3Qgc3Zj ID0gQ1NDSEVEX1ZDUFUodmMpOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqIGNvbnN0IHN2YyA9 IENTQ0hFRF9VTklUKHVuaXQpOwogICAgIGJvb2xfdCBtaWdyYXRpbmc7CiAKICAgICBCVUdfT04o IGlzX2lkbGVfdmNwdSh2YykgKTsKIAotICAgIGlmICggdW5saWtlbHkoY3Vycl9vbl9jcHUodmMt PnByb2Nlc3NvcikgPT0gdmMpICkKKyAgICBpZiAoIHVubGlrZWx5KGN1cnJfb25fY3B1KHZjLT5w cm9jZXNzb3IpID09IHVuaXQpICkKICAgICB7CiAgICAgICAgIFNDSEVEX1NUQVRfQ1JBTksodmNw dV93YWtlX3J1bm5pbmcpOwogICAgICAgICByZXR1cm47CkBAIC0xMTY4LDggKzExNjcsNyBAQCBj c2NoZWRfdW5pdF93YWtlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVk X3VuaXQgKnVuaXQpCiBzdGF0aWMgdm9pZAogY3NjaGVkX3VuaXRfeWllbGQoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKLSAgICBzdHJ1Y3Qg dmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICogY29u c3Qgc3ZjID0gQ1NDSEVEX1ZDUFUodmMpOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqIGNvbnN0 IHN2YyA9IENTQ0hFRF9VTklUKHVuaXQpOwogCiAgICAgLyogTGV0IHRoZSBzY2hlZHVsZXIga25v dyB0aGF0IHRoaXMgdmNwdSBpcyB0cnlpbmcgdG8geWllbGQgKi8KICAgICBzZXRfYml0KENTQ0hF RF9GTEFHX1ZDUFVfWUlFTEQsICZzdmMtPmZsYWdzKTsKQEAgLTEyMjQsOCArMTIyMiw3IEBAIHN0 YXRpYyB2b2lkCiBjc2NoZWRfYWZmX2NudGwoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBz dHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwKICAgICAgICAgICAgICAgICBjb25zdCBjcHVtYXNrX3Qg KmhhcmQsIGNvbnN0IGNwdW1hc2tfdCAqc29mdCkKIHsKLSAgICBzdHJ1Y3QgdmNwdSAqdiA9IHVu aXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YyA9IENTQ0hFRF9WQ1BV KHYpOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjID0gQ1NDSEVEX1VOSVQodW5pdCk7CiAK ICAgICBpZiAoICFoYXJkICkKICAgICAgICAgcmV0dXJuOwpAQCAtMTMyOCw3ICsxMzI1LDcgQEAg Y3NjaGVkX3J1bnFfc29ydChzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiwgdW5zaWduZWQgaW50 IGNwdSkKIHsKICAgICBzdHJ1Y3QgY3NjaGVkX3BjcHUgKiBjb25zdCBzcGMgPSBDU0NIRURfUENQ VShjcHUpOwogICAgIHN0cnVjdCBsaXN0X2hlYWQgKnJ1bnEsICplbGVtLCAqbmV4dCwgKmxhc3Rf dW5kZXI7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICpzdmNfZWxlbTsKKyAgICBzdHJ1Y3QgY3Nj aGVkX3VuaXQgKnN2Y19lbGVtOwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAgICAgdW5zaWduZWQg bG9uZyBmbGFnczsKICAgICBpbnQgc29ydF9lcG9jaDsKQEAgLTEzNzQsNyArMTM3MSw3IEBAIGNz Y2hlZF9hY2N0KHZvaWQqIGR1bW15KQogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgc3Ry dWN0IGxpc3RfaGVhZCAqaXRlcl92Y3B1LCAqbmV4dF92Y3B1OwogICAgIHN0cnVjdCBsaXN0X2hl YWQgKml0ZXJfc2RvbSwgKm5leHRfc2RvbTsKLSAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YzsK KyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YzsKICAgICBzdHJ1Y3QgY3NjaGVkX2RvbSAqc2Rv bTsKICAgICB1aW50MzJfdCBjcmVkaXRfdG90YWw7CiAgICAgdWludDMyX3Qgd2VpZ2h0X3RvdGFs OwpAQCAtMTQ5Nyw3ICsxNDk0LDcgQEAgY3NjaGVkX2FjY3Qodm9pZCogZHVtbXkpCiAKICAgICAg ICAgbGlzdF9mb3JfZWFjaF9zYWZlKCBpdGVyX3ZjcHUsIG5leHRfdmNwdSwgJnNkb20tPmFjdGl2 ZV92Y3B1ICkKICAgICAgICAgewotICAgICAgICAgICAgc3ZjID0gbGlzdF9lbnRyeShpdGVyX3Zj cHUsIHN0cnVjdCBjc2NoZWRfdmNwdSwgYWN0aXZlX3ZjcHVfZWxlbSk7CisgICAgICAgICAgICBz dmMgPSBsaXN0X2VudHJ5KGl0ZXJfdmNwdSwgc3RydWN0IGNzY2hlZF91bml0LCBhY3RpdmVfdmNw dV9lbGVtKTsKICAgICAgICAgICAgIEJVR19PTiggc2RvbSAhPSBzdmMtPnNkb20gKTsKIAogICAg ICAgICAgICAgLyogSW5jcmVtZW50IGNyZWRpdCAqLwpAQCAtMTYwMSwxMiArMTU5OCwxMiBAQCBj c2NoZWRfdGljayh2b2lkICpfY3B1KQogICAgIHNldF90aW1lcigmc3BjLT50aWNrZXIsIE5PVygp ICsgTUlDUk9TRUNTKHBydi0+dGlja19wZXJpb2RfdXMpICk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3Qg Y3NjaGVkX3ZjcHUgKgorc3RhdGljIHN0cnVjdCBjc2NoZWRfdW5pdCAqCiBjc2NoZWRfcnVucV9z dGVhbChpbnQgcGVlcl9jcHUsIGludCBjcHUsIGludCBwcmksIGludCBiYWxhbmNlX3N0ZXApCiB7 CiAgICAgY29uc3Qgc3RydWN0IGNzY2hlZF9wcml2YXRlICogY29uc3QgcHJ2ID0gQ1NDSEVEX1BS SVYocGVyX2NwdShzY2hlZHVsZXIsIGNwdSkpOwogICAgIGNvbnN0IHN0cnVjdCBjc2NoZWRfcGNw dSAqIGNvbnN0IHBlZXJfcGNwdSA9IENTQ0hFRF9QQ1BVKHBlZXJfY3B1KTsKLSAgICBzdHJ1Y3Qg Y3NjaGVkX3ZjcHUgKnNwZWVyOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3BlZXI7CiAgICAg c3RydWN0IGxpc3RfaGVhZCAqaXRlcjsKICAgICBzdHJ1Y3QgdmNwdSAqdmM7CiAKQEAgLTE2MTYs NyArMTYxMyw3IEBAIGNzY2hlZF9ydW5xX3N0ZWFsKGludCBwZWVyX2NwdSwgaW50IGNwdSwgaW50 IHByaSwgaW50IGJhbGFuY2Vfc3RlcCkKICAgICAgKiBEb24ndCBzdGVhbCBmcm9tIGFuIGlkbGUg Q1BVJ3MgcnVucSBiZWNhdXNlIGl0J3MgYWJvdXQgdG8KICAgICAgKiBwaWNrIHVwIHdvcmsgZnJv bSBpdCBpdHNlbGYuCiAgICAgICovCi0gICAgaWYgKCB1bmxpa2VseShpc19pZGxlX3ZjcHUoY3Vy cl9vbl9jcHUocGVlcl9jcHUpKSkgKQorICAgIGlmICggdW5saWtlbHkoaXNfaWRsZV92Y3B1KGN1 cnJfb25fY3B1KHBlZXJfY3B1KS0+dmNwdV9saXN0KSkgKQogICAgICAgICBnb3RvIG91dDsKIAog ICAgIGxpc3RfZm9yX2VhY2goIGl0ZXIsICZwZWVyX3BjcHUtPnJ1bnEgKQpAQCAtMTY3OCwxMiAr MTY3NSwxMiBAQCBjc2NoZWRfcnVucV9zdGVhbChpbnQgcGVlcl9jcHUsIGludCBjcHUsIGludCBw cmksIGludCBiYWxhbmNlX3N0ZXApCiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBzdHJ1 Y3QgY3NjaGVkX3ZjcHUgKgorc3RhdGljIHN0cnVjdCBjc2NoZWRfdW5pdCAqCiBjc2NoZWRfbG9h ZF9iYWxhbmNlKHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2LCBpbnQgY3B1LAotICAgIHN0cnVj dCBjc2NoZWRfdmNwdSAqc25leHQsIGJvb2xfdCAqc3RvbGVuKQorICAgIHN0cnVjdCBjc2NoZWRf dW5pdCAqc25leHQsIGJvb2xfdCAqc3RvbGVuKQogewogICAgIHN0cnVjdCBjcHVwb29sICpjID0g cGVyX2NwdShjcHVwb29sLCBjcHUpOwotICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqc3BlZXI7Cisg ICAgc3RydWN0IGNzY2hlZF91bml0ICpzcGVlcjsKICAgICBjcHVtYXNrX3Qgd29ya2VyczsKICAg ICBjcHVtYXNrX3QgKm9ubGluZTsKICAgICBpbnQgcGVlcl9jcHUsIGZpcnN0X2NwdSwgcGVlcl9u b2RlLCBic3RlcDsKQEAgLTE4MzIsOSArMTgyOSw5IEBAIGNzY2hlZF9zY2hlZHVsZSgKIHsKICAg ICBjb25zdCBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogICAgIHN0cnVjdCBsaXN0X2hl YWQgKiBjb25zdCBydW5xID0gUlVOUShjcHUpOwotICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqIGNv bnN0IHNjdXJyID0gQ1NDSEVEX1ZDUFUoY3VycmVudCk7CisgICAgc3RydWN0IGNzY2hlZF91bml0 ICogY29uc3Qgc2N1cnIgPSBDU0NIRURfVU5JVChjdXJyZW50LT5zY2hlZF91bml0KTsKICAgICBz dHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiA9IENTQ0hFRF9QUklWKG9wcyk7Ci0gICAgc3RydWN0 IGNzY2hlZF92Y3B1ICpzbmV4dDsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnNuZXh0OwogICAg IHN0cnVjdCB0YXNrX3NsaWNlIHJldDsKICAgICBzX3RpbWVfdCBydW50aW1lLCB0c2xpY2U7CiAK QEAgLTE5NTEsNyArMTk0OCw3IEBAIGNzY2hlZF9zY2hlZHVsZSgKICAgICBpZiAoIHRhc2tsZXRf d29ya19zY2hlZHVsZWQgKQogICAgIHsKICAgICAgICAgVFJBQ0VfMEQoVFJDX0NTQ0hFRF9TQ0hF RF9UQVNLTEVUKTsKLSAgICAgICAgc25leHQgPSBDU0NIRURfVkNQVShpZGxlX3ZjcHVbY3B1XSk7 CisgICAgICAgIHNuZXh0ID0gQ1NDSEVEX1VOSVQoaWRsZV92Y3B1W2NwdV0tPnNjaGVkX3VuaXQp OwogICAgICAgICBzbmV4dC0+cHJpID0gQ1NDSEVEX1BSSV9UU19CT09TVDsKICAgICB9CiAKQEAg LTIwMDMsNyArMjAwMCw3IEBAIG91dDoKIH0KIAogc3RhdGljIHZvaWQKLWNzY2hlZF9kdW1wX3Zj cHUoc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMpCitjc2NoZWRfZHVtcF92Y3B1KHN0cnVjdCBjc2No ZWRfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBjc2NoZWRfZG9tICogY29uc3Qgc2RvbSA9IHN2 Yy0+c2RvbTsKIApAQCAtMjAzOSw3ICsyMDM2LDcgQEAgY3NjaGVkX2R1bXBfcGNwdShjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUpCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcnVu cSwgKml0ZXI7CiAgICAgc3RydWN0IGNzY2hlZF9wcml2YXRlICpwcnYgPSBDU0NIRURfUFJJVihv cHMpOwogICAgIHN0cnVjdCBjc2NoZWRfcGNwdSAqc3BjOwotICAgIHN0cnVjdCBjc2NoZWRfdmNw dSAqc3ZjOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjOwogICAgIHNwaW5sb2NrX3QgKmxv Y2s7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBpbnQgbG9vcDsKQEAgLTIwNjMsNyAr MjA2MCw3IEBAIGNzY2hlZF9kdW1wX3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBp bnQgY3B1KQogICAgICAgICAgICBDUFVNQVNLX1BSKHBlcl9jcHUoY3B1X2NvcmVfbWFzaywgY3B1 KSkpOwogCiAgICAgLyogY3VycmVudCBWQ1BVIChub3RoaW5nIHRvIHNheSBpZiB0aGF0J3MgdGhl IGlkbGUgdmNwdSkuICovCi0gICAgc3ZjID0gQ1NDSEVEX1ZDUFUoY3Vycl9vbl9jcHUoY3B1KSk7 CisgICAgc3ZjID0gQ1NDSEVEX1VOSVQoY3Vycl9vbl9jcHUoY3B1KSk7CiAgICAgaWYgKCBzdmMg JiYgIWlzX2lkbGVfdmNwdShzdmMtPnZjcHUpICkKICAgICB7CiAgICAgICAgIHByaW50aygiXHRy dW46ICIpOwpAQCAtMjEzMiwxMCArMjEyOSwxMCBAQCBjc2NoZWRfZHVtcChjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMpCiAKICAgICAgICAgbGlzdF9mb3JfZWFjaCggaXRlcl9zdmMsICZzZG9t LT5hY3RpdmVfdmNwdSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0cnVjdCBjc2NoZWRfdmNw dSAqc3ZjOworICAgICAgICAgICAgc3RydWN0IGNzY2hlZF91bml0ICpzdmM7CiAgICAgICAgICAg ICBzcGlubG9ja190ICpsb2NrOwogCi0gICAgICAgICAgICBzdmMgPSBsaXN0X2VudHJ5KGl0ZXJf c3ZjLCBzdHJ1Y3QgY3NjaGVkX3ZjcHUsIGFjdGl2ZV92Y3B1X2VsZW0pOworICAgICAgICAgICAg c3ZjID0gbGlzdF9lbnRyeShpdGVyX3N2Yywgc3RydWN0IGNzY2hlZF91bml0LCBhY3RpdmVfdmNw dV9lbGVtKTsKICAgICAgICAgICAgIGxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2soc3ZjLT52Y3B1 KTsKIAogICAgICAgICAgICAgcHJpbnRrKCJcdCUzZDogIiwgKytsb29wKTsKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMK aW5kZXggNGRmMGFmZWIwMi4uZjg1NjI5MzM3MSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hl ZF9jcmVkaXQyLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKQEAgLTE3Niw3ICsx NzYsNyBAQAogICogICAgIGxvYWQgYmFsYW5jaW5nOwogICogICsgc2VyaWFsaXplcyBydW5xdWV1 ZSBvcGVyYXRpb25zIChyZW1vdmluZyBhbmQgaW5zZXJ0aW5nIHZjcHVzKTsKICAqICArIHByb3Rl Y3RzIHJ1bnF1ZXVlLXdpZGUgZGF0YSBpbiBjc2NoZWQyX3J1bnF1ZXVlX2RhdGE7Ci0gKiAgKyBw cm90ZWN0cyB2Y3B1IHBhcmFtZXRlcnMgaW4gY3NjaGVkMl92Y3B1IGZvciB0aGUgdmNwdSBpbiB0 aGUKKyAqICArIHByb3RlY3RzIHZjcHUgcGFyYW1ldGVycyBpbiBjc2NoZWQyX3VuaXQgZm9yIHRo ZSB2Y3B1IGluIHRoZQogICogICAgcnVucXVldWUuCiAgKgogICogLSBQcml2YXRlIHNjaGVkdWxl ciBsb2NrCkBAIC01MTIsNyArNTEyLDcgQEAgc3RydWN0IGNzY2hlZDJfcGNwdSB7CiAvKgogICog VmlydHVhbCBDUFUKICAqLwotc3RydWN0IGNzY2hlZDJfdmNwdSB7CitzdHJ1Y3QgY3NjaGVkMl91 bml0IHsKICAgICBzdHJ1Y3QgY3NjaGVkMl9kb20gKnNkb207ICAgICAgICAgIC8qIFVwLXBvaW50 ZXIgdG8gZG9tYWluICAgICAgICAgICAgICAgICovCiAgICAgc3RydWN0IHZjcHUgKnZjcHU7ICAg ICAgICAgICAgICAgICAvKiBVcC1wb2ludGVyLCB0byB2Y3B1ICAgICAgICAgICAgICAgICAqLwog ICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZDsgLyogVXAtcG9pbnRlciB0byB0 aGUgcnVucXVldWUgICAgICAgICAgKi8KQEAgLTU3MSw5ICs1NzEsOSBAQCBzdGF0aWMgaW5saW5l IHN0cnVjdCBjc2NoZWQyX3BjcHUgKmNzY2hlZDJfcGNwdSh1bnNpZ25lZCBpbnQgY3B1KQogICAg IHJldHVybiBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWRfcHJpdjsKIH0KIAotc3Rh dGljIGlubGluZSBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpjc2NoZWQyX3ZjcHUoY29uc3Qgc3RydWN0 IHZjcHUgKnYpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjc2NoZWQyX3VuaXQgKmNzY2hlZDJfdW5p dChjb25zdCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKLSAgICByZXR1cm4gdi0+c2NoZWRf dW5pdC0+cHJpdjsKKyAgICByZXR1cm4gdW5pdC0+cHJpdjsKIH0KIAogc3RhdGljIGlubGluZSBz dHJ1Y3QgY3NjaGVkMl9kb20gKmNzY2hlZDJfZG9tKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCkBA IC01OTUsNyArNTk1LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9k YXRhICpjMnJxZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiB9CiAKIC8qIERvZXMgdGhl IGRvbWFpbiBvZiB0aGlzIHZDUFUgaGF2ZSBhIGNhcD8gKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBo YXNfY2FwKGNvbnN0IHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YykKK3N0YXRpYyBpbmxpbmUgYm9v bCBoYXNfY2FwKGNvbnN0IHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YykKIHsKICAgICByZXR1cm4g c3ZjLT5idWRnZXQgIT0gU1RJTUVfTUFYOwogfQpAQCAtNjg5LDcgKzY4OSw3IEBAIHZvaWQgc210 X2lkbGVfbWFza19jbGVhcih1bnNpZ25lZCBpbnQgY3B1LCBjcHVtYXNrX3QgKm1hc2spCiAgKiBP ZiBjb3Vyc2UsIDEsIDIgYW5kIDMgbWFrZXMgc2Vuc2Ugb25seSBpZiBzdmMgaGFzIGEgc29mdCBh ZmZpbml0eS4gQWxzbwogICogbm90ZSB0aGF0IGF0IGxlYXN0IDUgaXMgZ3VhcmFudGVlZCB0byBf YWx3YXlzXyByZXR1cm4gYXQgbGVhc3Qgb25lIHBjcHUuCiAgKi8KLXN0YXRpYyBpbnQgZ2V0X2Zh bGxiYWNrX2NwdShzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMpCitzdGF0aWMgaW50IGdldF9mYWxs YmFja19jcHUoc3RydWN0IGNzY2hlZDJfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCB2Y3B1ICp2 ID0gc3ZjLT52Y3B1OwogICAgIHVuc2lnbmVkIGludCBiczsKQEAgLTc3NCw3ICs3NzQsNyBAQCBz dGF0aWMgaW50IGdldF9mYWxsYmFja19jcHUoc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQogICog RklYTUU6IERvIHByZS1jYWxjdWxhdGVkIGRpdmlzaW9uPwogICovCiBzdGF0aWMgdm9pZCB0MmNf dXBkYXRlKHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwgc190aW1lX3QgdGltZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQorICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMpCiB7CiAgICAg dWludDY0X3QgdmFsID0gdGltZSAqIHJxZC0+bWF4X3dlaWdodCArIHN2Yy0+cmVzaWR1YWw7CiAK QEAgLTc4Miw3ICs3ODIsNyBAQCBzdGF0aWMgdm9pZCB0MmNfdXBkYXRlKHN0cnVjdCBjc2NoZWQy X3J1bnF1ZXVlX2RhdGEgKnJxZCwgc190aW1lX3QgdGltZSwKICAgICBzdmMtPmNyZWRpdCAtPSB2 YWw7CiB9CiAKLXN0YXRpYyBzX3RpbWVfdCBjMnQoc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0 YSAqcnFkLCBzX3RpbWVfdCBjcmVkaXQsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YykKK3N0YXRp YyBzX3RpbWVfdCBjMnQoc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkLCBzX3RpbWVf dCBjcmVkaXQsIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YykKIHsKICAgICByZXR1cm4gY3JlZGl0 ICogc3ZjLT53ZWlnaHQgLyBycWQtPm1heF93ZWlnaHQ7CiB9CkBAIC03OTEsMTQgKzc5MSwxNCBA QCBzdGF0aWMgc190aW1lX3QgYzJ0KHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwg c190aW1lX3QgY3JlZGl0LCBzdHJ1Y3QgYwogICogUnVucXVldWUgcmVsYXRlZCBjb2RlLgogICov CiAKLXN0YXRpYyBpbmxpbmUgaW50IHZjcHVfb25fcnVucShzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpz dmMpCitzdGF0aWMgaW5saW5lIGludCB2Y3B1X29uX3J1bnEoc3RydWN0IGNzY2hlZDJfdW5pdCAq c3ZjKQogewogICAgIHJldHVybiAhbGlzdF9lbXB0eSgmc3ZjLT5ydW5xX2VsZW0pOwogfQogCi1z dGF0aWMgaW5saW5lIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBydW5xX2VsZW0oc3RydWN0IGxpc3Rf aGVhZCAqZWxlbSkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hlZDJfdW5pdCAqIHJ1bnFfZWxl bShzdHJ1Y3QgbGlzdF9oZWFkICplbGVtKQogewotICAgIHJldHVybiBsaXN0X2VudHJ5KGVsZW0s IHN0cnVjdCBjc2NoZWQyX3ZjcHUsIHJ1bnFfZWxlbSk7CisgICAgcmV0dXJuIGxpc3RfZW50cnko ZWxlbSwgc3RydWN0IGNzY2hlZDJfdW5pdCwgcnVucV9lbGVtKTsKIH0KIAogc3RhdGljIHZvaWQg YWN0aXZhdGVfcnVucXVldWUoc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2LCBpbnQgcnFpKQpA QCAtOTE2LDcgKzkxNiw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9tYXhfd2VpZ2h0KHN0cnVjdCBj c2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwgaW50IG5ld193ZWlnaHQsCiAKICAgICAgICAgbGlz dF9mb3JfZWFjaCggaXRlciwgJnJxZC0+c3ZjICkKICAgICAgICAgewotICAgICAgICAgICAgc3Ry dWN0IGNzY2hlZDJfdmNwdSAqIHN2YyA9IGxpc3RfZW50cnkoaXRlciwgc3RydWN0IGNzY2hlZDJf dmNwdSwgcnFkX2VsZW0pOworICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIHN2YyA9 IGxpc3RfZW50cnkoaXRlciwgc3RydWN0IGNzY2hlZDJfdW5pdCwgcnFkX2VsZW0pOwogCiAgICAg ICAgICAgICBpZiAoIHN2Yy0+d2VpZ2h0ID4gbWF4X3dlaWdodCApCiAgICAgICAgICAgICAgICAg bWF4X3dlaWdodCA9IHN2Yy0+d2VpZ2h0OwpAQCAtOTQxLDcgKzk0MSw3IEBAIHN0YXRpYyB2b2lk IHVwZGF0ZV9tYXhfd2VpZ2h0KHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwgaW50 IG5ld193ZWlnaHQsCiAKIC8qIEFkZCBhbmQgcmVtb3ZlIGZyb20gcnVucXVldWUgYXNzaWdubWVu dCAobm90IGFjdGl2ZSBydW4gcXVldWUpICovCiBzdGF0aWMgdm9pZAotX3J1bnFfYXNzaWduKHN0 cnVjdCBjc2NoZWQyX3ZjcHUgKnN2Yywgc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFk KQorX3J1bnFfYXNzaWduKHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2Yywgc3RydWN0IGNzY2hlZDJf cnVucXVldWVfZGF0YSAqcnFkKQogewogCiAgICAgc3ZjLT5ycWQgPSBycWQ7CkBAIC05NzEsNyAr OTcxLDcgQEAgX3J1bnFfYXNzaWduKHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2Yywgc3RydWN0IGNz Y2hlZDJfcnVucXVldWVfZGF0YSAqcnFkKQogc3RhdGljIHZvaWQKIHJ1bnFfYXNzaWduKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogewotICAgIHN0cnVjdCBj c2NoZWQyX3ZjcHUgKnN2YyA9IHZjLT5zY2hlZF91bml0LT5wcml2OworICAgIHN0cnVjdCBjc2No ZWQyX3VuaXQgKnN2YyA9IHZjLT5zY2hlZF91bml0LT5wcml2OwogCiAgICAgQVNTRVJUKHN2Yy0+ cnFkID09IE5VTEwpOwogCkBAIC05NzksNyArOTc5LDcgQEAgcnVucV9hc3NpZ24oY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiB9CiAKIHN0YXRpYyB2b2lkCi1f cnVucV9kZWFzc2lnbihzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMpCitfcnVucV9kZWFzc2lnbihz dHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMpCiB7CiAgICAgc3RydWN0IGNzY2hlZDJfcnVucXVldWVf ZGF0YSAqcnFkID0gc3ZjLT5ycWQ7CiAKQEAgLTk5OCw3ICs5OTgsNyBAQCBfcnVucV9kZWFzc2ln bihzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMpCiBzdGF0aWMgdm9pZAogcnVucV9kZWFzc2lnbihj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKIHsKLSAgICBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICpzdmMgPSB2Yy0+c2NoZWRfdW5pdC0+cHJpdjsKKyAgICBzdHJ1Y3Qg Y3NjaGVkMl91bml0ICpzdmMgPSB2Yy0+c2NoZWRfdW5pdC0+cHJpdjsKIAogICAgIEFTU0VSVChz dmMtPnJxZCA9PSBjMnJxZChvcHMsIHZjLT5wcm9jZXNzb3IpKTsKIApAQCAtMTIwMCw3ICsxMjAw LDcgQEAgdXBkYXRlX3J1bnFfbG9hZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiAKIHN0 YXRpYyB2b2lkCiB1cGRhdGVfc3ZjX2xvYWQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAot ICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YywgaW50IGNoYW5nZSwgc190 aW1lX3Qgbm93KQorICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YywgaW50 IGNoYW5nZSwgc190aW1lX3Qgbm93KQogewogICAgIHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBy diA9IGNzY2hlZDJfcHJpdihvcHMpOwogICAgIHNfdGltZV90IGRlbHRhLCB2Y3B1X2xvYWQ7CkBA IC0xMjYwLDcgKzEyNjAsNyBAQCB1cGRhdGVfc3ZjX2xvYWQoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLAogc3RhdGljIHZvaWQKIHVwZGF0ZV9sb2FkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywKICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwKLSAg ICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YywgaW50IGNoYW5nZSwgc190aW1lX3Qg bm93KQorICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqc3ZjLCBpbnQgY2hhbmdlLCBz X3RpbWVfdCBub3cpCiB7CiAgICAgdHJhY2VfdmFyKFRSQ19DU0NIRUQyX1VQREFURV9MT0FELCAx LCAwLCAgTlVMTCk7CiAKQEAgLTEyNzAsNyArMTI3MCw3IEBAIHVwZGF0ZV9sb2FkKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywKIH0KIAogc3RhdGljIHZvaWQKLXJ1bnFfaW5zZXJ0KGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQorcnVucV9p bnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3NjaGVkMl91bml0ICpz dmMpCiB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqaXRlcjsKICAgICB1bnNpZ25lZCBpbnQgY3B1 ID0gc3ZjLT52Y3B1LT5wcm9jZXNzb3I7CkBAIC0xMjg5LDcgKzEyODksNyBAQCBydW5xX2luc2Vy dChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YykK IAogICAgIGxpc3RfZm9yX2VhY2goIGl0ZXIsIHJ1bnEgKQogICAgIHsKLSAgICAgICAgc3RydWN0 IGNzY2hlZDJfdmNwdSAqIGl0ZXJfc3ZjID0gcnVucV9lbGVtKGl0ZXIpOworICAgICAgICBzdHJ1 Y3QgY3NjaGVkMl91bml0ICogaXRlcl9zdmMgPSBydW5xX2VsZW0oaXRlcik7CiAKICAgICAgICAg aWYgKCBzdmMtPmNyZWRpdCA+IGl0ZXJfc3ZjLT5jcmVkaXQgKQogICAgICAgICAgICAgYnJlYWs7 CkBAIC0xMzEzLDEzICsxMzEzLDEzIEBAIHJ1bnFfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQogICAgIH0KIH0KIAotc3RhdGljIGlu bGluZSB2b2lkIHJ1bnFfcmVtb3ZlKHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YykKK3N0YXRpYyBp bmxpbmUgdm9pZCBydW5xX3JlbW92ZShzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMpCiB7CiAgICAg QVNTRVJUKHZjcHVfb25fcnVucShzdmMpKTsKICAgICBsaXN0X2RlbF9pbml0KCZzdmMtPnJ1bnFf ZWxlbSk7CiB9CiAKLXZvaWQgYnVybl9jcmVkaXRzKHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2Rh dGEgKnJxZCwgc3RydWN0IGNzY2hlZDJfdmNwdSAqLCBzX3RpbWVfdCk7Cit2b2lkIGJ1cm5fY3Jl ZGl0cyhzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsIHN0cnVjdCBjc2NoZWQyX3Vu aXQgKiwgc190aW1lX3QpOwogCiBzdGF0aWMgaW5saW5lIHZvaWQKIHRpY2tsZV9jcHUodW5zaWdu ZWQgaW50IGNwdSwgc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkKQpAQCAtMTMzNSw3 ICsxMzM1LDcgQEAgdGlja2xlX2NwdSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgY3NjaGVkMl9y dW5xdWV1ZV9kYXRhICpycWQpCiAgKiB3aGV0aGVyIG9yIG5vdCBpdCBhbHJlYWR5IHJ1biBmb3Ig bW9yZSB0aGFuIHRoZSByYXRlbGltaXQsIHRvIHdoaWNoIHdlCiAgKiBhcHBseSBzb21lIHRvbGVy YW5jZSkuCiAgKi8KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc19wcmVlbXB0YWJsZShjb25zdCBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICpzdmMsCitzdGF0aWMgaW5saW5lIGJvb2wgaXNfcHJlZW1wdGFibGUo Y29uc3Qgc3RydWN0IGNzY2hlZDJfdW5pdCAqc3ZjLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc190aW1lX3Qgbm93LCBzX3RpbWVfdCByYXRlbGltaXQpCiB7CiAgICAgaWYg KCByYXRlbGltaXQgPD0gQ1NDSEVEMl9SQVRFTElNSVRfVElDS0xFX1RPTEVSQU5DRSApCkBAIC0x MzYxLDEwICsxMzYxLDEwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19wcmVlbXB0YWJsZShjb25z dCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMsCiAgKiBXaXRoaW4gdGhlIHNhbWUgY2xhc3MsIHRo ZSBoaWdoZXN0IGRpZmZlcmVuY2Ugb2YgY3JlZGl0LgogICovCiBzdGF0aWMgc190aW1lX3QgdGlj a2xlX3Njb3JlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc190aW1lX3Qgbm93LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpuZXcsIHVuc2ln bmVkIGludCBjcHUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQy X3VuaXQgKm5ldywgdW5zaWduZWQgaW50IGNwdSkKIHsKICAgICBzdHJ1Y3QgY3NjaGVkMl9ydW5x dWV1ZV9kYXRhICpycWQgPSBjMnJxZChvcHMsIGNwdSk7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqIGN1ciA9IGNzY2hlZDJfdmNwdShjdXJyX29uX2NwdShjcHUpKTsKKyAgICBzdHJ1Y3QgY3Nj aGVkMl91bml0ICogY3VyID0gY3NjaGVkMl91bml0KGN1cnJfb25fY3B1KGNwdSkpOwogICAgIHN0 cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiA9IGNzY2hlZDJfcHJpdihvcHMpOwogICAgIHNfdGlt ZV90IHNjb3JlOwogCkBAIC0xNDMzLDcgKzE0MzMsNyBAQCBzdGF0aWMgc190aW1lX3QgdGlja2xl X3Njb3JlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc190aW1lX3Qgbm93LAogICogcGlj ayB1cCBzb21lIHdvcmssIHNvIGl0IHdvdWxkIGJlIHdyb25nIHRvIGNvbnNpZGVyIGl0IGlkbGUu CiAgKi8KIHN0YXRpYyB2b2lkCi1ydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpv cHMsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKm5ldywgc190aW1lX3Qgbm93KQorcnVucV90aWNrbGUo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3NjaGVkMl91bml0ICpuZXcsIHNf dGltZV90IG5vdykKIHsKICAgICBpbnQgaSwgaXBpZCA9IC0xOwogICAgIHNfdGltZV90IG1heCA9 IDA7CkBAIC0xNTg4LDcgKzE1ODgsNyBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKm5ldywgc190aW1lX3Qgbm93KQogICAgICAg ICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKCFpc19pZGxlX3ZjcHUoY3Vycl9vbl9jcHUo aXBpZCkpKTsKKyAgICBBU1NFUlQoIWlzX2lkbGVfdmNwdShjdXJyX29uX2NwdShpcGlkKS0+dmNw dV9saXN0KSk7CiAgICAgU0NIRURfU1RBVF9DUkFOSyh0aWNrbGVkX2J1c3lfY3B1KTsKICB0aWNr bGU6CiAgICAgQlVHX09OKGlwaWQgPT0gLTEpOwpAQCAtMTYxNSw3ICsxNjE1LDcgQEAgcnVucV90 aWNrbGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpu ZXcsIHNfdGltZV90IG5vdykKICAqIENyZWRpdC1yZWxhdGVkIGNvZGUKICAqLwogc3RhdGljIHZv aWQgcmVzZXRfY3JlZGl0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSwgc190 aW1lX3Qgbm93LAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUg KnNuZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnNu ZXh0KQogewogICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCA9IGMycnFkKG9w cywgY3B1KTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICppdGVyOwpAQCAtMTY0NSwxMCArMTY0NSwx MCBAQCBzdGF0aWMgdm9pZCByZXNldF9jcmVkaXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBpbnQgY3B1LCBzX3RpbWVfdCBub3csCiAgICAgbGlzdF9mb3JfZWFjaCggaXRlciwgJnJxZC0+ c3ZjICkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzdmNfY3B1OwotICAgICAgICBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICogc3ZjOworICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICogc3Zj OwogICAgICAgICBpbnQgc3RhcnRfY3JlZGl0OwogCi0gICAgICAgIHN2YyA9IGxpc3RfZW50cnko aXRlciwgc3RydWN0IGNzY2hlZDJfdmNwdSwgcnFkX2VsZW0pOworICAgICAgICBzdmMgPSBsaXN0 X2VudHJ5KGl0ZXIsIHN0cnVjdCBjc2NoZWQyX3VuaXQsIHJxZF9lbGVtKTsKICAgICAgICAgc3Zj X2NwdSA9IHN2Yy0+dmNwdS0+cHJvY2Vzc29yOwogCiAgICAgICAgIEFTU0VSVCghaXNfaWRsZV92 Y3B1KHN2Yy0+dmNwdSkpOwpAQCAtMTY1OCw3ICsxNjU4LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRf Y3JlZGl0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSwgc190aW1lX3Qgbm93 LAogICAgICAgICAgKiBJZiBzdmMgaXMgcnVubmluZywgaXQgaXMgb3VyIHJlc3BvbnNpYmlsaXR5 IHRvIG1ha2Ugc3VyZSwgaGVyZSwKICAgICAgICAgICogdGhhdCB0aGUgY3JlZGl0IGl0IGhhcyBz cGVudCBzbyBmYXIgZ2V0IGFjY291bnRlZC4KICAgICAgICAgICovCi0gICAgICAgIGlmICggc3Zj LT52Y3B1ID09IGN1cnJfb25fY3B1KHN2Y19jcHUpICkKKyAgICAgICAgaWYgKCBzdmMtPnZjcHUg PT0gY3Vycl9vbl9jcHUoc3ZjX2NwdSktPnZjcHVfbGlzdCApCiAgICAgICAgIHsKICAgICAgICAg ICAgIGJ1cm5fY3JlZGl0cyhycWQsIHN2Yywgbm93KTsKICAgICAgICAgICAgIC8qCkBAIC0xNzEw LDExICsxNzEwLDExIEBAIHN0YXRpYyB2b2lkIHJlc2V0X2NyZWRpdChjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICpvcHMsIGludCBjcHUsIHNfdGltZV90IG5vdywKIH0KIAogdm9pZCBidXJuX2NyZWRp dHMoc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkLAotICAgICAgICAgICAgICAgICAg c3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjLCBzX3RpbWVfdCBub3cpCisgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMsIHNfdGltZV90IG5vdykKIHsKICAgICBzX3RpbWVf dCBkZWx0YTsKIAotICAgIEFTU0VSVChzdmMgPT0gY3NjaGVkMl92Y3B1KGN1cnJfb25fY3B1KHN2 Yy0+dmNwdS0+cHJvY2Vzc29yKSkpOworICAgIEFTU0VSVChzdmMgPT0gY3NjaGVkMl91bml0KGN1 cnJfb25fY3B1KHN2Yy0+dmNwdS0+cHJvY2Vzc29yKSkpOwogCiAgICAgaWYgKCB1bmxpa2VseShp c19pZGxlX3ZjcHUoc3ZjLT52Y3B1KSkgKQogICAgIHsKQEAgLTE3NjQsNyArMTc2NCw3IEBAIHZv aWQgYnVybl9jcmVkaXRzKHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwKICAqIEJ1 ZGdldC1yZWxhdGVkIGNvZGUuCiAgKi8KIAotc3RhdGljIHZvaWQgcGFya192Y3B1KHN0cnVjdCBj c2NoZWQyX3ZjcHUgKnN2YykKK3N0YXRpYyB2b2lkIHBhcmtfdmNwdShzdHJ1Y3QgY3NjaGVkMl91 bml0ICpzdmMpCiB7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBzdmMtPnZjcHU7CiAKQEAgLTE3OTMs NyArMTc5Myw3IEBAIHN0YXRpYyB2b2lkIHBhcmtfdmNwdShzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpz dmMpCiAgICAgbGlzdF9hZGQoJnN2Yy0+cGFya2VkX2VsZW0sICZzdmMtPnNkb20tPnBhcmtlZF92 Y3B1cyk7CiB9CiAKLXN0YXRpYyBib29sIHZjcHVfZ3JhYl9idWRnZXQoc3RydWN0IGNzY2hlZDJf dmNwdSAqc3ZjKQorc3RhdGljIGJvb2wgdmNwdV9ncmFiX2J1ZGdldChzdHJ1Y3QgY3NjaGVkMl91 bml0ICpzdmMpCiB7CiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpzZG9tID0gc3ZjLT5zZG9tOwog ICAgIHVuc2lnbmVkIGludCBjcHUgPSBzdmMtPnZjcHUtPnByb2Nlc3NvcjsKQEAgLTE4NDAsNyAr MTg0MCw3IEBAIHN0YXRpYyBib29sIHZjcHVfZ3JhYl9idWRnZXQoc3RydWN0IGNzY2hlZDJfdmNw dSAqc3ZjKQogfQogCiBzdGF0aWMgdm9pZAotdmNwdV9yZXR1cm5fYnVkZ2V0KHN0cnVjdCBjc2No ZWQyX3ZjcHUgKnN2Yywgc3RydWN0IGxpc3RfaGVhZCAqcGFya2VkKQordmNwdV9yZXR1cm5fYnVk Z2V0KHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2Yywgc3RydWN0IGxpc3RfaGVhZCAqcGFya2VkKQog ewogICAgIHN0cnVjdCBjc2NoZWQyX2RvbSAqc2RvbSA9IHN2Yy0+c2RvbTsKICAgICB1bnNpZ25l ZCBpbnQgY3B1ID0gc3ZjLT52Y3B1LT5wcm9jZXNzb3I7CkBAIC0xODgzLDcgKzE4ODMsNyBAQCB2 Y3B1X3JldHVybl9idWRnZXQoc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjLCBzdHJ1Y3QgbGlzdF9o ZWFkICpwYXJrZWQpCiBzdGF0aWMgdm9pZAogdW5wYXJrX3BhcmtlZF92Y3B1cyhjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBsaXN0X2hlYWQgKnZjcHVzKQogewotICAgIHN0cnVj dCBjc2NoZWQyX3ZjcHUgKnN2YywgKnRtcDsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMs ICp0bXA7CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKIAogICAgIGxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZShzdmMsIHRtcCwgdmNwdXMsIHBhcmtlZF9lbGVtKQpAQCAtMjAwNSw3ICsyMDA1LDcgQEAg c3RhdGljIHZvaWQgcmVwbGVuaXNoX2RvbWFpbl9idWRnZXQodm9pZCogZGF0YSkKIHN0YXRpYyBp bmxpbmUgdm9pZAogY3NjaGVkMl92Y3B1X2NoZWNrKHN0cnVjdCB2Y3B1ICp2YykKIHsKLSAgICBz dHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qgc3ZjID0gY3NjaGVkMl92Y3B1KHZjKTsKKyAgICBz dHJ1Y3QgY3NjaGVkMl91bml0ICogY29uc3Qgc3ZjID0gY3NjaGVkMl91bml0KHZjLT5zY2hlZF91 bml0KTsKICAgICBzdHJ1Y3QgY3NjaGVkMl9kb20gKiBjb25zdCBzZG9tID0gc3ZjLT5zZG9tOwog CiAgICAgQlVHX09OKCBzdmMtPnZjcHUgIT0gdmMgKTsKQEAgLTIwMzEsMTAgKzIwMzEsMTAgQEAg Y3NjaGVkMl9hbGxvY192ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBz Y2hlZF91bml0ICp1bml0LAogICAgICAgICAgICAgICAgICAgICB2b2lkICpkZCkKIHsKICAgICBz dHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqc3ZjOworICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YzsKIAogICAgIC8qIEFsbG9jYXRl IHBlci1WQ1BVIGluZm8gKi8KLSAgICBzdmMgPSB4emFsbG9jKHN0cnVjdCBjc2NoZWQyX3ZjcHUp OworICAgIHN2YyA9IHh6YWxsb2Moc3RydWN0IGNzY2hlZDJfdW5pdCk7CiAgICAgaWYgKCBzdmMg PT0gTlVMTCApCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC0yMDc1LDEyICsyMDc1LDEyIEBA IHN0YXRpYyB2b2lkCiBjc2NoZWQyX3VuaXRfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1 bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqIGNvbnN0IHN2YyA9IGNz Y2hlZDJfdmNwdSh2Yyk7CisgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIGNvbnN0IHN2YyA9IGNz Y2hlZDJfdW5pdCh1bml0KTsKIAogICAgIEFTU0VSVCghaXNfaWRsZV92Y3B1KHZjKSk7CiAgICAg U0NIRURfU1RBVF9DUkFOSyh2Y3B1X3NsZWVwKTsKIAotICAgIGlmICggY3Vycl9vbl9jcHUodmMt PnByb2Nlc3NvcikgPT0gdmMgKQorICAgIGlmICggY3Vycl9vbl9jcHUodmMtPnByb2Nlc3Nvcikg PT0gdW5pdCApCiAgICAgewogICAgICAgICB0aWNrbGVfY3B1KHZjLT5wcm9jZXNzb3IsIHN2Yy0+ cnFkKTsKICAgICB9CkBAIC0yMDk4LDcgKzIwOTgsNyBAQCBzdGF0aWMgdm9pZAogY3NjaGVkMl91 bml0X3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAq dW5pdCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3Ry dWN0IGNzY2hlZDJfdmNwdSAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdmNwdSh2Yyk7CisgICAgc3Ry dWN0IGNzY2hlZDJfdW5pdCAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdW5pdCh1bml0KTsKICAgICB1 bnNpZ25lZCBpbnQgY3B1ID0gdmMtPnByb2Nlc3NvcjsKICAgICBzX3RpbWVfdCBub3c7CiAKQEAg LTIxMDYsNyArMjEwNiw3IEBAIGNzY2hlZDJfdW5pdF93YWtlKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAKICAgICBBU1NFUlQoIWlzX2lkbGVf dmNwdSh2YykpOwogCi0gICAgaWYgKCB1bmxpa2VseShjdXJyX29uX2NwdShjcHUpID09IHZjKSAp CisgICAgaWYgKCB1bmxpa2VseShjdXJyX29uX2NwdShjcHUpID09IHVuaXQpICkKICAgICB7CiAg ICAgICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV93YWtlX3J1bm5pbmcpOwogICAgICAgICBnb3Rv IG91dDsKQEAgLTIxNTMsOCArMjE1Myw3IEBAIG91dDoKIHN0YXRpYyB2b2lkCiBjc2NoZWQyX3Vu aXRfeWllbGQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAq dW5pdCkKIHsKLSAgICBzdHJ1Y3QgdmNwdSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qgc3ZjID0gY3NjaGVkMl92Y3B1KHYpOworICAgIHN0cnVj dCBjc2NoZWQyX3VuaXQgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3VuaXQodW5pdCk7CiAKICAgICBf X3NldF9iaXQoX19DU0ZMQUdfdmNwdV95aWVsZCwgJnN2Yy0+ZmxhZ3MpOwogfQpAQCAtMjE2Myw3 ICsyMTYyLDcgQEAgc3RhdGljIHZvaWQKIGNzY2hlZDJfY29udGV4dF9zYXZlZChjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewogICAgIHN0cnVj dCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICog Y29uc3Qgc3ZjID0gY3NjaGVkMl92Y3B1KHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICog Y29uc3Qgc3ZjID0gY3NjaGVkMl91bml0KHVuaXQpOwogICAgIHNwaW5sb2NrX3QgKmxvY2sgPSB2 Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHZjKTsKICAgICBzX3RpbWVfdCBub3cgPSBOT1coKTsKICAg ICBMSVNUX0hFQUQod2VyZV9wYXJrZWQpOwpAQCAtMjIwOSw3ICsyMjA4LDcgQEAgY3NjaGVkMl9y ZXNfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1 bml0KQogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBpbnQgaSwg bWluX3JxaSA9IC0xLCBtaW5fc19ycWkgPSAtMTsKICAgICB1bnNpZ25lZCBpbnQgbmV3X2NwdSwg Y3B1ID0gdmMtPnByb2Nlc3NvcjsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMgPSBjc2No ZWQyX3ZjcHUodmMpOworICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YyA9IGNzY2hlZDJfdW5p dCh1bml0KTsKICAgICBzX3RpbWVfdCBtaW5fYXZnbG9hZCA9IE1BWF9MT0FELCBtaW5fc19hdmds b2FkID0gTUFYX0xPQUQ7CiAgICAgYm9vbCBoYXNfc29mdDsKIApAQCAtMjQzMSwxNSArMjQzMCwx NSBAQCBjc2NoZWQyX3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IHNjaGVkX3VuaXQgKnVuaXQpCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgLyogTkI6IE1vZGlmaWVk IGJ5IGNvbnNpZGVyKCkgKi8KICAgICBzX3RpbWVfdCBsb2FkX2RlbHRhOwotICAgIHN0cnVjdCBj c2NoZWQyX3ZjcHUgKiBiZXN0X3B1c2hfc3ZjLCAqYmVzdF9wdWxsX3N2YzsKKyAgICBzdHJ1Y3Qg Y3NjaGVkMl91bml0ICogYmVzdF9wdXNoX3N2YywgKmJlc3RfcHVsbF9zdmM7CiAgICAgLyogTkI6 IFJlYWQgYnkgY29uc2lkZXIoKSAqLwogICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEg KmxycWQ7CiAgICAgc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqb3JxZDsgICAgICAgICAg ICAgICAgICAKIH0gYmFsYW5jZV9zdGF0ZV90OwogCiBzdGF0aWMgdm9pZCBjb25zaWRlcihiYWxh bmNlX3N0YXRlX3QgKnN0LCAKLSAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3Zj cHUgKnB1c2hfc3ZjLAotICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAq cHVsbF9zdmMpCisgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpwdXNo X3N2YywKKyAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnB1bGxfc3Zj KQogewogICAgIHNfdGltZV90IGxfbG9hZCwgb19sb2FkLCBkZWx0YTsKIApAQCAtMjQ3Miw4ICsy NDcxLDggQEAgc3RhdGljIHZvaWQgY29uc2lkZXIoYmFsYW5jZV9zdGF0ZV90ICpzdCwKIAogCiBz dGF0aWMgdm9pZCBtaWdyYXRlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKLSAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjLCAKLSAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqdHJxZCwgCisgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YywKKyAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqdHJxZCwKICAgICAgICAgICAgICAgICAgICAgc190aW1l X3Qgbm93KQogewogICAgIGludCBjcHUgPSBzdmMtPnZjcHUtPnByb2Nlc3NvcjsKQEAgLTI1NDIs NyArMjU0MSw3IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLAogICogIC0gc3ZjIGlzIG5vdCBhbHJlYWR5IGZsYWdnZWQgdG8gbWlncmF0ZSwKICAqICAt IGlmIHN2YyBpcyBhbGxvd2VkIHRvIHJ1biBvbiBhdCBsZWFzdCBvbmUgb2YgdGhlIHBjcHVzIG9m IHJxZC4KICAqLwotc3RhdGljIGJvb2wgdmNwdV9pc19taWdyYXRlYWJsZShzdHJ1Y3QgY3NjaGVk Ml92Y3B1ICpzdmMsCitzdGF0aWMgYm9vbCB2Y3B1X2lzX21pZ3JhdGVhYmxlKHN0cnVjdCBjc2No ZWQyX3VuaXQgKnN2YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg Y3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBzdmMt PnZjcHU7CkBAIC0yNjkyLDcgKzI2OTEsNyBAQCByZXRyeToKICAgICAvKiBSZXVzZSBsb2FkIGRl bHRhIChhcyB3ZSdyZSB0cnlpbmcgdG8gbWluaW1pemUgaXQpICovCiAgICAgbGlzdF9mb3JfZWFj aCggcHVzaF9pdGVyLCAmc3QubHJxZC0+c3ZjICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBjc2No ZWQyX3ZjcHUgKiBwdXNoX3N2YyA9IGxpc3RfZW50cnkocHVzaF9pdGVyLCBzdHJ1Y3QgY3NjaGVk Ml92Y3B1LCBycWRfZWxlbSk7CisgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKiBwdXNoX3N2 YyA9IGxpc3RfZW50cnkocHVzaF9pdGVyLCBzdHJ1Y3QgY3NjaGVkMl91bml0LCBycWRfZWxlbSk7 CiAKICAgICAgICAgdXBkYXRlX3N2Y19sb2FkKG9wcywgcHVzaF9zdmMsIDAsIG5vdyk7CiAKQEAg LTI3MDEsNyArMjcwMCw3IEBAIHJldHJ5OgogCiAgICAgICAgIGxpc3RfZm9yX2VhY2goIHB1bGxf aXRlciwgJnN0Lm9ycWQtPnN2YyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0cnVjdCBjc2No ZWQyX3ZjcHUgKiBwdWxsX3N2YyA9IGxpc3RfZW50cnkocHVsbF9pdGVyLCBzdHJ1Y3QgY3NjaGVk Ml92Y3B1LCBycWRfZWxlbSk7CisgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICogcHVs bF9zdmMgPSBsaXN0X2VudHJ5KHB1bGxfaXRlciwgc3RydWN0IGNzY2hlZDJfdW5pdCwgcnFkX2Vs ZW0pOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoICFpbm5lcl9sb2FkX3VwZGF0ZWQg KQogICAgICAgICAgICAgICAgIHVwZGF0ZV9zdmNfbG9hZChvcHMsIHB1bGxfc3ZjLCAwLCBub3cp OwpAQCAtMjcyMCw3ICsyNzE5LDcgQEAgcmV0cnk6CiAKICAgICBsaXN0X2Zvcl9lYWNoKCBwdWxs X2l0ZXIsICZzdC5vcnFkLT5zdmMgKQogICAgIHsKLSAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqIHB1bGxfc3ZjID0gbGlzdF9lbnRyeShwdWxsX2l0ZXIsIHN0cnVjdCBjc2NoZWQyX3ZjcHUs IHJxZF9lbGVtKTsKKyAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIHB1bGxfc3ZjID0gbGlz dF9lbnRyeShwdWxsX2l0ZXIsIHN0cnVjdCBjc2NoZWQyX3VuaXQsIHJxZF9lbGVtKTsKICAgICAg ICAgCiAgICAgICAgIGlmICggIXZjcHVfaXNfbWlncmF0ZWFibGUocHVsbF9zdmMsIHN0LmxycWQp ICkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMjc0Nyw3ICsyNzQ2LDcgQEAgY3NjaGVkMl91 bml0X21pZ3JhdGUoCiB7CiAgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0Owog ICAgIHN0cnVjdCBkb21haW4gKmQgPSB2Yy0+ZG9tYWluOwotICAgIHN0cnVjdCBjc2NoZWQyX3Zj cHUgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3ZjcHUodmMpOworICAgIHN0cnVjdCBjc2NoZWQyX3Vu aXQgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3VuaXQodW5pdCk7CiAgICAgc3RydWN0IGNzY2hlZDJf cnVucXVldWVfZGF0YSAqdHJxZDsKICAgICBzX3RpbWVfdCBub3cgPSBOT1coKTsKIApAQCAtMjg0 OCw3ICsyODQ3LDcgQEAgY3NjaGVkMl9kb21fY250bCgKICAgICAgICAgICAgIC8qIFVwZGF0ZSB3 ZWlnaHRzIGZvciB2Y3B1cywgYW5kIG1heF93ZWlnaHQgZm9yIHJ1bnF1ZXVlcyBvbiB3aGljaCB0 aGV5IHJlc2lkZSAqLwogICAgICAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YyA9IGNzY2hl ZDJfdmNwdSh2KTsKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSBj c2NoZWQyX3VuaXQodi0+c2NoZWRfdW5pdCk7CiAgICAgICAgICAgICAgICAgc3BpbmxvY2tfdCAq bG9jayA9IHZjcHVfc2NoZWR1bGVfbG9jayhzdmMtPnZjcHUpOwogCiAgICAgICAgICAgICAgICAg QVNTRVJUKHN2Yy0+cnFkID09IGMycnFkKG9wcywgc3ZjLT52Y3B1LT5wcm9jZXNzb3IpKTsKQEAg LTI4NjIsNyArMjg2MSw3IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICAgIC8qIENhcCAqLwog ICAgICAgICBpZiAoIG9wLT51LmNyZWRpdDIuY2FwICE9IDAgKQogICAgICAgICB7Ci0gICAgICAg ICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmM7CisgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVk Ml91bml0ICpzdmM7CiAgICAgICAgICAgICBzcGlubG9ja190ICpsb2NrOwogCiAgICAgICAgICAg ICAvKiBDYXAgaXMgb25seSB2YWxpZCBpZiBpdCdzIGJlbG93IDEwMCAqIG5yX29mX3ZDUFVTICov CkBAIC0yODg2LDcgKzI4ODUsNyBAQCBjc2NoZWQyX2RvbV9jbnRsKAogICAgICAgICAgICAgICov CiAgICAgICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgc3ZjID0gY3NjaGVkMl92Y3B1KHYpOworICAgICAgICAgICAgICAgIHN2YyA9 IGNzY2hlZDJfdW5pdCh2LT5zY2hlZF91bml0KTsKICAgICAgICAgICAgICAgICBsb2NrID0gdmNw dV9zY2hlZHVsZV9sb2NrKHN2Yy0+dmNwdSk7CiAgICAgICAgICAgICAgICAgLyoKICAgICAgICAg ICAgICAgICAgKiBUb28gc21hbGwgcXVvdGFzIHdvdWxkIGluIHRoZW9yeSBjYXVzZSBhIGxvdCBv ZiBvdmVyaGVhZCwKQEAgLTI5MjksMTQgKzI5MjgsMTQgQEAgY3NjaGVkMl9kb21fY250bCgKICAg ICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiAp CiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBzdmMgPSBjc2NoZWQyX3Zj cHUodik7CisgICAgICAgICAgICAgICAgICAgIHN2YyA9IGNzY2hlZDJfdW5pdCh2LT5zY2hlZF91 bml0KTsKICAgICAgICAgICAgICAgICAgICAgbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9jayhzdmMt PnZjcHUpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIHYtPmlzX3J1bm5pbmcgKQogICAgICAg ICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY3B1 ID0gdi0+cHJvY2Vzc29yOwogICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJf cnVucXVldWVfZGF0YSAqcnFkID0gYzJycWQob3BzLCBjcHUpOwogCi0gICAgICAgICAgICAgICAg ICAgICAgICBBU1NFUlQoY3Vycl9vbl9jcHUoY3B1KSA9PSB2KTsKKyAgICAgICAgICAgICAgICAg ICAgICAgIEFTU0VSVChjdXJyX29uX2NwdShjcHUpLT52Y3B1X2xpc3QgPT0gdik7CiAKICAgICAg ICAgICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICAgICAgICAgKiBXZSBhcmUg dHJpZ2dlcmluZyBhIHJlc2NoZWR1bGUgb24gdGhlIHZDUFUncwpAQCAtMjk3Niw3ICsyOTc1LDcg QEAgY3NjaGVkMl9kb21fY250bCgKICAgICAgICAgICAgIC8qIERpc2FibGUgYnVkZ2V0IGFjY291 bnRpbmcgZm9yIGFsbCB0aGUgdkNQVXMuICovCiAgICAgICAgICAgICBmb3JfZWFjaF92Y3B1ICgg ZCwgdiApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqc3ZjID0gY3NjaGVkMl92Y3B1KHYpOworICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQy X3VuaXQgKnN2YyA9IGNzY2hlZDJfdW5pdCh2LT5zY2hlZF91bml0KTsKICAgICAgICAgICAgICAg ICBzcGlubG9ja190ICpsb2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrKHN2Yy0+dmNwdSk7CiAKICAg ICAgICAgICAgICAgICBzdmMtPmJ1ZGdldCA9IFNUSU1FX01BWDsKQEAgLTMwMTMsOCArMzAxMiw3 IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWQyX2FmZl9jbnRsKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsCiAgICAgICAgICAgICAgICAgIGNvbnN0IGNw dW1hc2tfdCAqaGFyZCwgY29uc3QgY3B1bWFza190ICpzb2Z0KQogewotICAgIHN0cnVjdCB2Y3B1 ICp2ID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YyA9IGNz Y2hlZDJfdmNwdSh2KTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSBjc2NoZWQyX3Vu aXQodW5pdCk7CiAKICAgICBpZiAoICFoYXJkICkKICAgICAgICAgcmV0dXJuOwpAQCAtMzExNCw3 ICszMTEyLDcgQEAgc3RhdGljIHZvaWQKIGNzY2hlZDJfdW5pdF9pbnNlcnQoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKICAgICBzdHJ1Y3Qg dmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3Zj ID0gdW5pdC0+cHJpdjsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSB1bml0LT5wcml2 OwogICAgIHN0cnVjdCBjc2NoZWQyX2RvbSAqIGNvbnN0IHNkb20gPSBzdmMtPnNkb207CiAgICAg c3BpbmxvY2tfdCAqbG9jazsKIApAQCAtMzE0Niw3ICszMTQ0LDcgQEAgY3NjaGVkMl91bml0X2lu c2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0 KQogc3RhdGljIHZvaWQKIGNzY2hlZDJfZnJlZV92ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHZvaWQgKnByaXYpCiB7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjID0gcHJp djsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSBwcml2OwogCiAgICAgeGZyZWUoc3Zj KTsKIH0KQEAgLTMxNTUsNyArMzE1Myw3IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWQyX3VuaXRfcmVt b3ZlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiB7CiAgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBj c2NoZWQyX3ZjcHUgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3ZjcHUodmMpOworICAgIHN0cnVjdCBj c2NoZWQyX3VuaXQgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3VuaXQodW5pdCk7CiAgICAgc3Bpbmxv Y2tfdCAqbG9jazsKIAogICAgIEFTU0VSVCghaXNfaWRsZV92Y3B1KHZjKSk7CkBAIC0zMTc2LDcg KzMxNzQsNyBAQCBjc2NoZWQyX3VuaXRfcmVtb3ZlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAvKiBIb3cgbG9uZyBzaG91bGQgd2UgbGV0IHRo aXMgdmNwdSBydW4gZm9yPyAqLwogc3RhdGljIHNfdGltZV90CiBjc2NoZWQyX3J1bnRpbWUoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1LAotICAgICAgICAgICAgICAgIHN0cnVj dCBjc2NoZWQyX3ZjcHUgKnNuZXh0LCBzX3RpbWVfdCBub3cpCisgICAgICAgICAgICAgICAgc3Ry dWN0IGNzY2hlZDJfdW5pdCAqc25leHQsIHNfdGltZV90IG5vdykKIHsKICAgICBzX3RpbWVfdCB0 aW1lLCBtaW5fdGltZTsKICAgICBpbnQgcnRfY3JlZGl0OyAvKiBQcm9wb3NlZCBydW50aW1lIG1l YXN1cmVkIGluIGNyZWRpdHMgKi8KQEAgLTMyMjEsNyArMzIxOSw3IEBAIGNzY2hlZDJfcnVudGlt ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUsCiAgICAgICovCiAgICAgaWYg KCAhIGxpc3RfZW1wdHkocnVucSkgKQogICAgIHsKLSAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqc3dhaXQgPSBydW5xX2VsZW0ocnVucS0+bmV4dCk7CisgICAgICAgIHN0cnVjdCBjc2NoZWQy X3VuaXQgKnN3YWl0ID0gcnVucV9lbGVtKHJ1bnEtPm5leHQpOwogCiAgICAgICAgIGlmICggISBp c19pZGxlX3ZjcHUoc3dhaXQtPnZjcHUpCiAgICAgICAgICAgICAgJiYgc3dhaXQtPmNyZWRpdCA+ IDAgKQpAQCAtMzI3MiwxNCArMzI3MCwxNCBAQCBjc2NoZWQyX3J1bnRpbWUoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1LAogLyoKICAqIEZpbmQgYSBjYW5kaWRhdGUuCiAgKi8K LXN0YXRpYyBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICoKK3N0YXRpYyBzdHJ1Y3QgY3NjaGVkMl91bml0 ICoKIHJ1bnFfY2FuZGlkYXRlKHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwKLSAg ICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnNjdXJyLAorICAgICAgICAgICAgICAg c3RydWN0IGNzY2hlZDJfdW5pdCAqc2N1cnIsCiAgICAgICAgICAgICAgICBpbnQgY3B1LCBzX3Rp bWVfdCBub3csCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnNraXBwZWQpCiB7CiAgICAg c3RydWN0IGxpc3RfaGVhZCAqaXRlciwgKnRlbXA7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNwdSAq c25leHQgPSBOVUxMOworICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnNuZXh0ID0gTlVMTDsKICAg ICBzdHJ1Y3QgY3NjaGVkMl9wcml2YXRlICpwcnYgPSBjc2NoZWQyX3ByaXYocGVyX2NwdShzY2hl ZHVsZXIsIGNwdSkpOwogICAgIGJvb2wgeWllbGQgPSBmYWxzZSwgc29mdF9hZmZfcHJlZW1wdCA9 IGZhbHNlOwogCkBAIC0zMzYwLDEyICszMzU4LDEyIEBAIHJ1bnFfY2FuZGlkYXRlKHN0cnVjdCBj c2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwKICAgICBpZiAoIHZjcHVfcnVubmFibGUoc2N1cnIt PnZjcHUpICYmICFzb2Z0X2FmZl9wcmVlbXB0ICkKICAgICAgICAgc25leHQgPSBzY3VycjsKICAg ICBlbHNlCi0gICAgICAgIHNuZXh0ID0gY3NjaGVkMl92Y3B1KGlkbGVfdmNwdVtjcHVdKTsKKyAg ICAgICAgc25leHQgPSBjc2NoZWQyX3VuaXQoaWRsZV92Y3B1W2NwdV0tPnNjaGVkX3VuaXQpOwog CiAgY2hlY2tfcnVucToKICAgICBsaXN0X2Zvcl9lYWNoX3NhZmUoIGl0ZXIsIHRlbXAsICZycWQt PnJ1bnEgKQogICAgIHsKLSAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqIHN2YyA9IGxpc3Rf ZW50cnkoaXRlciwgc3RydWN0IGNzY2hlZDJfdmNwdSwgcnVucV9lbGVtKTsKKyAgICAgICAgc3Ry dWN0IGNzY2hlZDJfdW5pdCAqIHN2YyA9IGxpc3RfZW50cnkoaXRlciwgc3RydWN0IGNzY2hlZDJf dW5pdCwgcnVucV9lbGVtKTsKIAogICAgICAgICBpZiAoIHVubGlrZWx5KHRiX2luaXRfZG9uZSkg KQogICAgICAgICB7CkBAIC0zNDY0LDggKzM0NjIsOCBAQCBjc2NoZWQyX3NjaGVkdWxlKAogewog ICAgIGNvbnN0IGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAgICAgc3RydWN0IGNzY2hl ZDJfcnVucXVldWVfZGF0YSAqcnFkOwotICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBjb25zdCBz Y3VyciA9IGNzY2hlZDJfdmNwdShjdXJyZW50KTsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpz bmV4dCA9IE5VTEw7CisgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIGNvbnN0IHNjdXJyID0gY3Nj aGVkMl91bml0KGN1cnJlbnQtPnNjaGVkX3VuaXQpOworICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQg KnNuZXh0ID0gTlVMTDsKICAgICB1bnNpZ25lZCBpbnQgc2tpcHBlZF92Y3B1cyA9IDA7CiAgICAg c3RydWN0IHRhc2tfc2xpY2UgcmV0OwogICAgIGJvb2wgdGlja2xlZDsKQEAgLTM1NDEsNyArMzUz OSw3IEBAIGNzY2hlZDJfc2NoZWR1bGUoCiAgICAgewogICAgICAgICBfX2NsZWFyX2JpdChfX0NT RkxBR192Y3B1X3lpZWxkLCAmc2N1cnItPmZsYWdzKTsKICAgICAgICAgdHJhY2VfdmFyKFRSQ19D U0NIRUQyX1NDSEVEX1RBU0tMRVQsIDEsIDAsIE5VTEwpOwotICAgICAgICBzbmV4dCA9IGNzY2hl ZDJfdmNwdShpZGxlX3ZjcHVbY3B1XSk7CisgICAgICAgIHNuZXh0ID0gY3NjaGVkMl91bml0KGlk bGVfdmNwdVtjcHVdLT5zY2hlZF91bml0KTsKICAgICB9CiAgICAgZWxzZQogICAgICAgICBzbmV4 dCA9IHJ1bnFfY2FuZGlkYXRlKHJxZCwgc2N1cnIsIGNwdSwgbm93LCAmc2tpcHBlZF92Y3B1cyk7 CkBAIC0zNjQ0LDcgKzM2NDIsNyBAQCBjc2NoZWQyX3NjaGVkdWxlKAogfQogCiBzdGF0aWMgdm9p ZAotY3NjaGVkMl9kdW1wX3ZjcHUoc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3Qg Y3NjaGVkMl92Y3B1ICpzdmMpCitjc2NoZWQyX2R1bXBfdmNwdShzdHJ1Y3QgY3NjaGVkMl9wcml2 YXRlICpwcnYsIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YykKIHsKICAgICBwcmludGsoIlslaS4l aV0gZmxhZ3M9JXggY3B1PSVpIiwKICAgICAgICAgICAgIHN2Yy0+dmNwdS0+ZG9tYWluLT5kb21h aW5faWQsCkBAIC0zNjY4LDcgKzM2NjYsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQKIGR1bXBfcGNw dShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUpCiB7CiAgICAgc3RydWN0IGNz Y2hlZDJfcHJpdmF0ZSAqcHJ2ID0gY3NjaGVkMl9wcml2KG9wcyk7Ci0gICAgc3RydWN0IGNzY2hl ZDJfdmNwdSAqc3ZjOworICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YzsKIAogICAgIHByaW50 aygiQ1BVWyUwMmRdIHJ1bnE9JWQsIHNpYmxpbmc9JSpwYiwgY29yZT0lKnBiXG4iLAogICAgICAg ICAgICBjcHUsIGMycihjcHUpLApAQCAtMzY3Niw3ICszNjc0LDcgQEAgZHVtcF9wY3B1KGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICAgICAgICAgQ1BVTUFTS19QUihw ZXJfY3B1KGNwdV9jb3JlX21hc2ssIGNwdSkpKTsKIAogICAgIC8qIGN1cnJlbnQgVkNQVSAobm90 aGluZyB0byBzYXkgaWYgdGhhdCdzIHRoZSBpZGxlIHZjcHUpICovCi0gICAgc3ZjID0gY3NjaGVk Ml92Y3B1KGN1cnJfb25fY3B1KGNwdSkpOworICAgIHN2YyA9IGNzY2hlZDJfdW5pdChjdXJyX29u X2NwdShjcHUpKTsKICAgICBpZiAoIHN2YyAmJiAhaXNfaWRsZV92Y3B1KHN2Yy0+dmNwdSkgKQog ICAgIHsKICAgICAgICAgcHJpbnRrKCJcdHJ1bjogIik7CkBAIC0zNzQ5LDcgKzM3NDcsNyBAQCBj c2NoZWQyX2R1bXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQogCiAgICAgICAgIGZvcl9l YWNoX3ZjcHUoIHNkb20tPmRvbSwgdiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0cnVjdCBj c2NoZWQyX3ZjcHUgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3ZjcHUodik7CisgICAgICAgICAgICBz dHJ1Y3QgY3NjaGVkMl91bml0ICogY29uc3Qgc3ZjID0gY3NjaGVkMl91bml0KHYtPnNjaGVkX3Vu aXQpOwogICAgICAgICAgICAgc3BpbmxvY2tfdCAqbG9jazsKIAogICAgICAgICAgICAgbG9jayA9 IHZjcHVfc2NoZWR1bGVfbG9jayhzdmMtPnZjcHUpOwpAQCAtMzc3OCw3ICszNzc2LDcgQEAgY3Nj aGVkMl9kdW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKICAgICAgICAgcHJpbnRrKCJS VU5ROlxuIik7CiAgICAgICAgIGxpc3RfZm9yX2VhY2goIGl0ZXIsIHJ1bnEgKQogICAgICAgICB7 Ci0gICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMgPSBydW5xX2VsZW0oaXRlcik7 CisgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSBydW5xX2VsZW0oaXRlcik7 CiAKICAgICAgICAgICAgIGlmICggc3ZjICkKICAgICAgICAgICAgIHsKQEAgLTM4ODIsNyArMzg4 MCw3IEBAIGNzY2hlZDJfc3dpdGNoX3NjaGVkKHN0cnVjdCBzY2hlZHVsZXIgKm5ld19vcHMsIHVu c2lnbmVkIGludCBjcHUsCiAgICAgICAgICAgICAgICAgICAgICB2b2lkICpwZGF0YSwgdm9pZCAq dmRhdGEpCiB7CiAgICAgc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2ID0gY3NjaGVkMl9wcml2 KG5ld19vcHMpOwotICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YyA9IHZkYXRhOworICAgIHN0 cnVjdCBjc2NoZWQyX3VuaXQgKnN2YyA9IHZkYXRhOwogICAgIHVuc2lnbmVkIHJxaTsKIAogICAg IEFTU0VSVChwZGF0YSAmJiBzdmMgJiYgaXNfaWRsZV92Y3B1KHN2Yy0+dmNwdSkpOwpkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMgYi94ZW4vY29tbW9uL3NjaGVkX251bGwuYwpp bmRleCBkZDk2MWJjM2NhLi40ZGMwMzU2ZjgwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVk X251bGwuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX251bGwuYwpAQCAtOTMsNyArOTMsNyBAQCBE RUZJTkVfUEVSX0NQVShzdHJ1Y3QgbnVsbF9wY3B1LCBucGMpOwogLyoKICAqIFZpcnR1YWwgQ1BV CiAgKi8KLXN0cnVjdCBudWxsX3ZjcHUgeworc3RydWN0IG51bGxfdW5pdCB7CiAgICAgc3RydWN0 IGxpc3RfaGVhZCB3YWl0cV9lbGVtOwogICAgIHN0cnVjdCB2Y3B1ICp2Y3B1OwogfTsKQEAgLTEx NCw5ICsxMTQsOSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBudWxsX3ByaXZhdGUgKm51bGxfcHJp dihjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAgICAgcmV0dXJuIG9wcy0+c2NoZWRfZGF0 YTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgbnVsbF92Y3B1ICpudWxsX3ZjcHUoY29uc3Qg c3RydWN0IHZjcHUgKnYpCitzdGF0aWMgaW5saW5lIHN0cnVjdCBudWxsX3VuaXQgKm51bGxfdW5p dChjb25zdCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKLSAgICByZXR1cm4gdi0+c2NoZWRf dW5pdC0+cHJpdjsKKyAgICByZXR1cm4gdW5pdC0+cHJpdjsKIH0KIAogc3RhdGljIGlubGluZSBi b29sIHZjcHVfY2hlY2tfYWZmaW5pdHkoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjcHUs CkBAIC0xODksOSArMTg5LDkgQEAgc3RhdGljIHZvaWQgKm51bGxfYWxsb2NfdmRhdGEoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHNjaGVkX3VuaXQgKnVuaXQsIHZvaWQgKmRkKQogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0g dW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YzsKKyAgICBzdHJ1Y3Qg bnVsbF91bml0ICpudmM7CiAKLSAgICBudmMgPSB4emFsbG9jKHN0cnVjdCBudWxsX3ZjcHUpOwor ICAgIG52YyA9IHh6YWxsb2Moc3RydWN0IG51bGxfdW5pdCk7CiAgICAgaWYgKCBudmMgPT0gTlVM TCApCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC0yMDUsNyArMjA1LDcgQEAgc3RhdGljIHZv aWQgKm51bGxfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogCiBzdGF0 aWMgdm9pZCBudWxsX2ZyZWVfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lk ICpwcml2KQogewotICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YyA9IHByaXY7CisgICAgc3RydWN0 IG51bGxfdW5pdCAqbnZjID0gcHJpdjsKIAogICAgIHhmcmVlKG52Yyk7CiB9CkBAIC0zNjIsOSAr MzYyLDkgQEAgc3RhdGljIGJvb2wgdmNwdV9kZWFzc2lnbihzdHJ1Y3QgbnVsbF9wcml2YXRlICpw cnYsIHN0cnVjdCB2Y3B1ICp2KQogewogICAgIHVuc2lnbmVkIGludCBiczsKICAgICB1bnNpZ25l ZCBpbnQgY3B1ID0gdi0+cHJvY2Vzc29yOwotICAgIHN0cnVjdCBudWxsX3ZjcHUgKnd2YzsKKyAg ICBzdHJ1Y3QgbnVsbF91bml0ICp3dmM7CiAKLSAgICBBU1NFUlQobGlzdF9lbXB0eSgmbnVsbF92 Y3B1KHYpLT53YWl0cV9lbGVtKSk7CisgICAgQVNTRVJUKGxpc3RfZW1wdHkoJm51bGxfdW5pdCh2 LT5zY2hlZF91bml0KS0+d2FpdHFfZWxlbSkpOwogICAgIEFTU0VSVChwZXJfY3B1KG5wYywgdi0+ cHJvY2Vzc29yKS52Y3B1ID09IHYpOwogICAgIEFTU0VSVCghY3B1bWFza190ZXN0X2NwdSh2LT5w cm9jZXNzb3IsICZwcnYtPmNwdXNfZnJlZSkpOwogCkBAIC00MjEsNyArNDIxLDcgQEAgc3RhdGlj IHNwaW5sb2NrX3QgKm51bGxfc3dpdGNoX3NjaGVkKHN0cnVjdCBzY2hlZHVsZXIgKm5ld19vcHMs CiB7CiAgICAgc3RydWN0IHNjaGVkdWxlX2RhdGEgKnNkID0gJnBlcl9jcHUoc2NoZWR1bGVfZGF0 YSwgY3B1KTsKICAgICBzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnYgPSBudWxsX3ByaXYobmV3X29w cyk7Ci0gICAgc3RydWN0IG51bGxfdmNwdSAqbnZjID0gdmRhdGE7CisgICAgc3RydWN0IG51bGxf dW5pdCAqbnZjID0gdmRhdGE7CiAKICAgICBBU1NFUlQobnZjICYmIGlzX2lkbGVfdmNwdShudmMt PnZjcHUpKTsKIApAQCAtNDQ0LDcgKzQ0NCw3IEBAIHN0YXRpYyB2b2lkIG51bGxfdW5pdF9pbnNl cnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0g dW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJp dihvcHMpOwotICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YyA9IG51bGxfdmNwdSh2KTsKKyAgICBz dHJ1Y3QgbnVsbF91bml0ICpudmMgPSBudWxsX3VuaXQodW5pdCk7CiAgICAgdW5zaWduZWQgaW50 IGNwdTsKICAgICBzcGlubG9ja190ICpsb2NrOwogCkBAIC01MDgsNyArNTA4LDcgQEAgc3RhdGlj IHZvaWQgbnVsbF91bml0X3JlbW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiB7CiAg ICAgc3RydWN0IHZjcHUgKnYgPSB1bml0LT52Y3B1X2xpc3Q7CiAgICAgc3RydWN0IG51bGxfcHJp dmF0ZSAqcHJ2ID0gbnVsbF9wcml2KG9wcyk7Ci0gICAgc3RydWN0IG51bGxfdmNwdSAqbnZjID0g bnVsbF92Y3B1KHYpOworICAgIHN0cnVjdCBudWxsX3VuaXQgKm52YyA9IG51bGxfdW5pdCh1bml0 KTsKICAgICBzcGlubG9ja190ICpsb2NrOwogCiAgICAgQVNTRVJUKCFpc19pZGxlX3ZjcHUodikp OwpAQCAtNTQ2LDEyICs1NDYsMTIgQEAgc3RhdGljIHZvaWQgbnVsbF91bml0X3dha2UoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLAogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gdW5pdC0+dmNw dV9saXN0OwogICAgIHN0cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihvcHMpOwot ICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YyA9IG51bGxfdmNwdSh2KTsKKyAgICBzdHJ1Y3QgbnVs bF91bml0ICpudmMgPSBudWxsX3VuaXQodW5pdCk7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHYt PnByb2Nlc3NvcjsKIAogICAgIEFTU0VSVCghaXNfaWRsZV92Y3B1KHYpKTsKIAotICAgIGlmICgg dW5saWtlbHkoY3Vycl9vbl9jcHUoY3B1KSA9PSB2KSApCisgICAgaWYgKCB1bmxpa2VseShjdXJy X29uX2NwdShjcHUpID09IHVuaXQpICkKICAgICB7CiAgICAgICAgIFNDSEVEX1NUQVRfQ1JBTkso dmNwdV93YWtlX3J1bm5pbmcpOwogICAgICAgICByZXR1cm47CkBAIC02MzEsNyArNjMxLDcgQEAg c3RhdGljIHZvaWQgbnVsbF91bml0X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywK ICAgICAgKi8KICAgICBpZiAoIHVubGlrZWx5KCFpc192Y3B1X29ubGluZSh2KSkgKQogICAgIHsK LSAgICAgICAgc3RydWN0IG51bGxfdmNwdSAqbnZjID0gbnVsbF92Y3B1KHYpOworICAgICAgICBz dHJ1Y3QgbnVsbF91bml0ICpudmMgPSBudWxsX3VuaXQodW5pdCk7CiAKICAgICAgICAgaWYgKCB1 bmxpa2VseSghbGlzdF9lbXB0eSgmbnZjLT53YWl0cV9lbGVtKSkgKQogICAgICAgICB7CkBAIC02 NDQsNyArNjQ0LDcgQEAgc3RhdGljIHZvaWQgbnVsbF91bml0X3NsZWVwKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywKICAgICB9CiAKICAgICAvKiBJZiB2IGlzIG5vdCBhc3NpZ25lZCB0byBh IHBDUFUsIG9yIGlzIG5vdCBydW5uaW5nLCBubyBuZWVkIHRvIGJvdGhlciAqLwotICAgIGlmICgg bGlrZWx5KCF0aWNrbGVkICYmIGN1cnJfb25fY3B1KGNwdSkgPT0gdikgKQorICAgIGlmICggbGlr ZWx5KCF0aWNrbGVkICYmIGN1cnJfb25fY3B1KGNwdSkgPT0gdW5pdCkgKQogICAgICAgICBjcHVf cmFpc2Vfc29mdGlycShjcHUsIFNDSEVEVUxFX1NPRlRJUlEpOwogCiAgICAgU0NIRURfU1RBVF9D UkFOSyh2Y3B1X3NsZWVwKTsKQEAgLTY2Miw3ICs2NjIsNyBAQCBzdGF0aWMgdm9pZCBudWxsX3Vu aXRfbWlncmF0ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiB7CiAgICAgc3RydWN0IHZj cHUgKnYgPSB1bml0LT52Y3B1X2xpc3Q7CiAgICAgc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2ID0g bnVsbF9wcml2KG9wcyk7Ci0gICAgc3RydWN0IG51bGxfdmNwdSAqbnZjID0gbnVsbF92Y3B1KHYp OworICAgIHN0cnVjdCBudWxsX3VuaXQgKm52YyA9IG51bGxfdW5pdCh1bml0KTsKIAogICAgIEFT U0VSVCghaXNfaWRsZV92Y3B1KHYpKTsKIApAQCAtNzU4LDcgKzc1OCw3IEBAIHN0YXRpYyB2b2lk IG51bGxfdW5pdF9taWdyYXRlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKICNpZm5kZWYg TkRFQlVHCiBzdGF0aWMgaW5saW5lIHZvaWQgbnVsbF92Y3B1X2NoZWNrKHN0cnVjdCB2Y3B1ICp2 KQogewotICAgIHN0cnVjdCBudWxsX3ZjcHUgKiBjb25zdCBudmMgPSBudWxsX3ZjcHUodik7Cisg ICAgc3RydWN0IG51bGxfdW5pdCAqIGNvbnN0IG52YyA9IG51bGxfdW5pdCh2LT5zY2hlZF91bml0 KTsKICAgICBzdHJ1Y3QgbnVsbF9kb20gKiBjb25zdCBuZG9tID0gdi0+ZG9tYWluLT5zY2hlZF9w cml2OwogCiAgICAgQlVHX09OKG52Yy0+dmNwdSAhPSB2KTsKQEAgLTc4OCw3ICs3ODgsNyBAQCBz dGF0aWMgc3RydWN0IHRhc2tfc2xpY2UgbnVsbF9zY2hlZHVsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsCiAgICAgdW5zaWduZWQgaW50IGJzOwogICAgIGNvbnN0IHVuc2lnbmVkIGludCBj cHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAgICAgc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2ID0g bnVsbF9wcml2KG9wcyk7Ci0gICAgc3RydWN0IG51bGxfdmNwdSAqd3ZjOworICAgIHN0cnVjdCBu dWxsX3VuaXQgKnd2YzsKICAgICBzdHJ1Y3QgdGFza19zbGljZSByZXQ7CiAKICAgICBTQ0hFRF9T VEFUX0NSQU5LKHNjaGVkdWxlKTsKQEAgLTg3NCw3ICs4NzQsNyBAQCBzdGF0aWMgc3RydWN0IHRh c2tfc2xpY2UgbnVsbF9zY2hlZHVsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiAgICAg cmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGR1bXBfdmNwdShzdHJ1Y3QgbnVs bF9wcml2YXRlICpwcnYsIHN0cnVjdCBudWxsX3ZjcHUgKm52YykKK3N0YXRpYyBpbmxpbmUgdm9p ZCBkdW1wX3ZjcHUoc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgbnVsbF91bml0ICpu dmMpCiB7CiAgICAgcHJpbnRrKCJbJWkuJWldIHBjcHU9JWQiLCBudmMtPnZjcHUtPmRvbWFpbi0+ ZG9tYWluX2lkLAogICAgICAgICAgICAgbnZjLT52Y3B1LT52Y3B1X2lkLCBsaXN0X2VtcHR5KCZu dmMtPndhaXRxX2VsZW0pID8KQEAgLTg4NCw3ICs4ODQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQg ZHVtcF92Y3B1KHN0cnVjdCBudWxsX3ByaXZhdGUgKnBydiwgc3RydWN0IG51bGxfdmNwdSAqbnZj KQogc3RhdGljIHZvaWQgbnVsbF9kdW1wX3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBpbnQgY3B1KQogewogICAgIHN0cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihv cHMpOwotICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YzsKKyAgICBzdHJ1Y3QgbnVsbF91bml0ICpu dmM7CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogCkBA IC04OTgsNyArODk4LDcgQEAgc3RhdGljIHZvaWQgbnVsbF9kdW1wX3BjcHUoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1KQogICAgIHByaW50aygiXG4iKTsKIAogICAgIC8qIGN1 cnJlbnQgVkNQVSAobm90aGluZyB0byBzYXkgaWYgdGhhdCdzIHRoZSBpZGxlIHZjcHUpICovCi0g ICAgbnZjID0gbnVsbF92Y3B1KGN1cnJfb25fY3B1KGNwdSkpOworICAgIG52YyA9IG51bGxfdW5p dChjdXJyX29uX2NwdShjcHUpKTsKICAgICBpZiAoIG52YyAmJiAhaXNfaWRsZV92Y3B1KG52Yy0+ dmNwdSkgKQogICAgIHsKICAgICAgICAgcHJpbnRrKCJcdHJ1bjogIik7CkBAIC05MzIsNyArOTMy LDcgQEAgc3RhdGljIHZvaWQgbnVsbF9kdW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykK ICAgICAgICAgcHJpbnRrKCJcdERvbWFpbjogJWRcbiIsIG5kb20tPmRvbS0+ZG9tYWluX2lkKTsK ICAgICAgICAgZm9yX2VhY2hfdmNwdSggbmRvbS0+ZG9tLCB2ICkKICAgICAgICAgewotICAgICAg ICAgICAgc3RydWN0IG51bGxfdmNwdSAqIGNvbnN0IG52YyA9IG51bGxfdmNwdSh2KTsKKyAgICAg ICAgICAgIHN0cnVjdCBudWxsX3VuaXQgKiBjb25zdCBudmMgPSBudWxsX3VuaXQodi0+c2NoZWRf dW5pdCk7CiAgICAgICAgICAgICBzcGlubG9ja190ICpsb2NrOwogCiAgICAgICAgICAgICBsb2Nr ID0gdmNwdV9zY2hlZHVsZV9sb2NrKG52Yy0+dmNwdSk7CkBAIC05NTAsNyArOTUwLDcgQEAgc3Rh dGljIHZvaWQgbnVsbF9kdW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKICAgICBzcGlu X2xvY2soJnBydi0+d2FpdHFfbG9jayk7CiAgICAgbGlzdF9mb3JfZWFjaCggaXRlciwgJnBydi0+ d2FpdHEgKQogICAgIHsKLSAgICAgICAgc3RydWN0IG51bGxfdmNwdSAqbnZjID0gbGlzdF9lbnRy eShpdGVyLCBzdHJ1Y3QgbnVsbF92Y3B1LCB3YWl0cV9lbGVtKTsKKyAgICAgICAgc3RydWN0IG51 bGxfdW5pdCAqbnZjID0gbGlzdF9lbnRyeShpdGVyLCBzdHJ1Y3QgbnVsbF91bml0LCB3YWl0cV9l bGVtKTsKIAogICAgICAgICBpZiAoIGxvb3ArKyAhPSAwICkKICAgICAgICAgICAgIHByaW50aygi LCAiKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hlbi9jb21tb24vc2No ZWRfcnQuYwppbmRleCA2ZTk0MjRhNDYxLi4wNmY2MzE3NmVlIDEwMDY0NAotLS0gYS94ZW4vY29t bW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBAIC0xOTUsNyArMTk1 LDcgQEAgc3RydWN0IHJ0X3ByaXZhdGUgewogLyoKICAqIFZpcnR1YWwgQ1BVCiAgKi8KLXN0cnVj dCBydF92Y3B1IHsKK3N0cnVjdCBydF91bml0IHsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkIHFfZWxl bTsgICAgIC8qIG9uIHRoZSBydW5xL2RlcGxldGVkcSBsaXN0ICovCiAgICAgc3RydWN0IGxpc3Rf aGVhZCByZXBscV9lbGVtOyAvKiBvbiB0aGUgcmVwbGVuaXNobWVudCBldmVudHMgbGlzdCAqLwog CkBAIC0yMzMsOSArMjMzLDkgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnRfcHJpdmF0ZSAqcnRf cHJpdihjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAgICAgcmV0dXJuIG9wcy0+c2NoZWRf ZGF0YTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgcnRfdmNwdSAqcnRfdmNwdShjb25zdCBz dHJ1Y3QgdmNwdSAqdmNwdSkKK3N0YXRpYyBpbmxpbmUgc3RydWN0IHJ0X3VuaXQgKnJ0X3VuaXQo Y29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7Ci0gICAgcmV0dXJuIHZjcHUtPnNjaGVk X3VuaXQtPnByaXY7CisgICAgcmV0dXJuIHVuaXQtPnByaXY7CiB9CiAKIHN0YXRpYyBpbmxpbmUg c3RydWN0IGxpc3RfaGVhZCAqcnRfcnVucShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCkBA IC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgbGlzdF9oZWFkICpydF9yZXBs cShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAgICAgcmV0dXJuICZydF9wcml2KG9wcykt PnJlcGxxOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgaGFzX2V4dHJhdGltZShjb25zdCBzdHJ1 Y3QgcnRfdmNwdSAqc3ZjKQorc3RhdGljIGlubGluZSBib29sIGhhc19leHRyYXRpbWUoY29uc3Qg c3RydWN0IHJ0X3VuaXQgKnN2YykKIHsKICAgICByZXR1cm4gc3ZjLT5mbGFncyAmIFJURFNfZXh0 cmF0aW1lOwogfQpAQCAtMjYzLDI1ICsyNjMsMjUgQEAgc3RhdGljIGlubGluZSBib29sIGhhc19l eHRyYXRpbWUoY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAqIGFuZCB0aGUgcmVwbGVuaXNo bWVudCBldmVudHMgcXVldWUuCiAgKi8KIHN0YXRpYyBpbnQKLXZjcHVfb25fcShjb25zdCBzdHJ1 Y3QgcnRfdmNwdSAqc3ZjKQordmNwdV9vbl9xKGNvbnN0IHN0cnVjdCBydF91bml0ICpzdmMpCiB7 CiAgICByZXR1cm4gIWxpc3RfZW1wdHkoJnN2Yy0+cV9lbGVtKTsKIH0KIAotc3RhdGljIHN0cnVj dCBydF92Y3B1ICoKK3N0YXRpYyBzdHJ1Y3QgcnRfdW5pdCAqCiBxX2VsZW0oc3RydWN0IGxpc3Rf aGVhZCAqZWxlbSkKIHsKLSAgICByZXR1cm4gbGlzdF9lbnRyeShlbGVtLCBzdHJ1Y3QgcnRfdmNw dSwgcV9lbGVtKTsKKyAgICByZXR1cm4gbGlzdF9lbnRyeShlbGVtLCBzdHJ1Y3QgcnRfdW5pdCwg cV9lbGVtKTsKIH0KIAotc3RhdGljIHN0cnVjdCBydF92Y3B1ICoKK3N0YXRpYyBzdHJ1Y3QgcnRf dW5pdCAqCiByZXBscV9lbGVtKHN0cnVjdCBsaXN0X2hlYWQgKmVsZW0pCiB7Ci0gICAgcmV0dXJu IGxpc3RfZW50cnkoZWxlbSwgc3RydWN0IHJ0X3ZjcHUsIHJlcGxxX2VsZW0pOworICAgIHJldHVy biBsaXN0X2VudHJ5KGVsZW0sIHN0cnVjdCBydF91bml0LCByZXBscV9lbGVtKTsKIH0KIAogc3Rh dGljIGludAotdmNwdV9vbl9yZXBscShjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQordmNwdV9v bl9yZXBscShjb25zdCBzdHJ1Y3QgcnRfdW5pdCAqc3ZjKQogewogICAgIHJldHVybiAhbGlzdF9l bXB0eSgmc3ZjLT5yZXBscV9lbGVtKTsKIH0KQEAgLTI5MSw3ICsyOTEsNyBAQCB2Y3B1X29uX3Jl cGxxKGNvbnN0IHN0cnVjdCBydF92Y3B1ICpzdmMpCiAgKiBPdGhlcndpc2UsIHJldHVybiB2YWx1 ZSA8IDAKICAqLwogc3RhdGljIHNfdGltZV90Ci1jb21wYXJlX3ZjcHVfcHJpb3JpdHkoY29uc3Qg c3RydWN0IHJ0X3ZjcHUgKnYxLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqdjIpCitjb21wYXJlX3Zj cHVfcHJpb3JpdHkoY29uc3Qgc3RydWN0IHJ0X3VuaXQgKnYxLCBjb25zdCBzdHJ1Y3QgcnRfdW5p dCAqdjIpCiB7CiAgICAgaW50IHByaW8gPSB2Mi0+cHJpb3JpdHlfbGV2ZWwgLSB2MS0+cHJpb3Jp dHlfbGV2ZWw7CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBjb21wYXJlX3ZjcHVfcHJpb3JpdHkoY29u c3Qgc3RydWN0IHJ0X3ZjcHUgKnYxLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqdjIpCiAgKiBEZWJ1 ZyByZWxhdGVkIGNvZGUsIGR1bXAgdmNwdS9jcHUgaW5mb3JtYXRpb24KICAqLwogc3RhdGljIHZv aWQKLXJ0X2R1bXBfdmNwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0IHN0cnVj dCBydF92Y3B1ICpzdmMpCitydF9kdW1wX3ZjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBjb25zdCBzdHJ1Y3QgcnRfdW5pdCAqc3ZjKQogewogICAgIGNwdW1hc2tfdCAqY3B1cG9vbF9t YXNrLCAqbWFzazsKIApAQCAtMzUxLDEzICszNTEsMTMgQEAgc3RhdGljIHZvaWQKIHJ0X2R1bXBf cGNwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUpCiB7CiAgICAgc3RydWN0 IHJ0X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYob3BzKTsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqc3Zj OworICAgIHN0cnVjdCBydF91bml0ICpzdmM7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKIAog ICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKICAgICBwcmludGsoIkNQ VVslMDJkXVxuIiwgY3B1KTsKICAgICAvKiBjdXJyZW50IFZDUFUgKG5vdGhpbmcgdG8gc2F5IGlm IHRoYXQncyB0aGUgaWRsZSB2Y3B1KS4gKi8KLSAgICBzdmMgPSBydF92Y3B1KGN1cnJfb25fY3B1 KGNwdSkpOworICAgIHN2YyA9IHJ0X3VuaXQoY3Vycl9vbl9jcHUoY3B1KSk7CiAgICAgaWYgKCBz dmMgJiYgIWlzX2lkbGVfdmNwdShzdmMtPnZjcHUpICkKICAgICB7CiAgICAgICAgIHJ0X2R1bXBf dmNwdShvcHMsIHN2Yyk7CkBAIC0zNzAsNyArMzcwLDcgQEAgcnRfZHVtcChjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMpCiB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcnVucSwgKmRlcGxldGVk cSwgKnJlcGxxLCAqaXRlcjsKICAgICBzdHJ1Y3QgcnRfcHJpdmF0ZSAqcHJ2ID0gcnRfcHJpdihv cHMpOwotICAgIHN0cnVjdCBydF92Y3B1ICpzdmM7CisgICAgc3RydWN0IHJ0X3VuaXQgKnN2YzsK ICAgICBzdHJ1Y3QgcnRfZG9tICpzZG9tOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKQEAg LTQxNCw3ICs0MTQsNyBAQCBydF9kdW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKIAog ICAgICAgICBmb3JfZWFjaF92Y3B1ICggc2RvbS0+ZG9tLCB2ICkKICAgICAgICAgewotICAgICAg ICAgICAgc3ZjID0gcnRfdmNwdSh2KTsKKyAgICAgICAgICAgIHN2YyA9IHJ0X3VuaXQodi0+c2No ZWRfdW5pdCk7CiAgICAgICAgICAgICBydF9kdW1wX3ZjcHUob3BzLCBzdmMpOwogICAgICAgICB9 CiAgICAgfQpAQCAtNDI4LDcgKzQyOCw3IEBAIHJ0X2R1bXAoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzKQogICogaXQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byB0aGUgZGVhZGxpbmUgb2YgdGhl IGN1cnJlbnQgcGVyaW9kCiAgKi8KIHN0YXRpYyB2b2lkCi1ydF91cGRhdGVfZGVhZGxpbmUoc190 aW1lX3Qgbm93LCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQorcnRfdXBkYXRlX2RlYWRsaW5lKHNfdGlt ZV90IG5vdywgc3RydWN0IHJ0X3VuaXQgKnN2YykKIHsKICAgICBBU1NFUlQobm93ID49IHN2Yy0+ Y3VyX2RlYWRsaW5lKTsKICAgICBBU1NFUlQoc3ZjLT5wZXJpb2QgIT0gMCk7CkBAIC00OTksOCAr NDk5LDggQEAgZGVhZGxpbmVfcXVldWVfcmVtb3ZlKHN0cnVjdCBsaXN0X2hlYWQgKnF1ZXVlLCBz dHJ1Y3QgbGlzdF9oZWFkICplbGVtKQogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wKLWRlYWRsaW5l X3F1ZXVlX2luc2VydChzdHJ1Y3QgcnRfdmNwdSAqICgqcWVsZW0pKHN0cnVjdCBsaXN0X2hlYWQg KiksCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0X3ZjcHUgKnN2Yywgc3RydWN0IGxp c3RfaGVhZCAqZWxlbSwKK2RlYWRsaW5lX3F1ZXVlX2luc2VydChzdHJ1Y3QgcnRfdW5pdCAqICgq cWVsZW0pKHN0cnVjdCBsaXN0X2hlYWQgKiksCisgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHJ0X3VuaXQgKnN2Yywgc3RydWN0IGxpc3RfaGVhZCAqZWxlbSwKICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpxdWV1ZSkKIHsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpp dGVyOwpAQCAtNTA4LDcgKzUwOCw3IEBAIGRlYWRsaW5lX3F1ZXVlX2luc2VydChzdHJ1Y3QgcnRf dmNwdSAqICgqcWVsZW0pKHN0cnVjdCBsaXN0X2hlYWQgKiksCiAKICAgICBsaXN0X2Zvcl9lYWNo ICggaXRlciwgcXVldWUgKQogICAgIHsKLSAgICAgICAgc3RydWN0IHJ0X3ZjcHUgKiBpdGVyX3N2 YyA9ICgqcWVsZW0pKGl0ZXIpOworICAgICAgICBzdHJ1Y3QgcnRfdW5pdCAqIGl0ZXJfc3ZjID0g KCpxZWxlbSkoaXRlcik7CiAgICAgICAgIGlmICggY29tcGFyZV92Y3B1X3ByaW9yaXR5KHN2Yywg aXRlcl9zdmMpID4gMCApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcG9zKys7CkBAIC01 MjIsMTQgKzUyMiwxNCBAQCBkZWFkbGluZV9xdWV1ZV9pbnNlcnQoc3RydWN0IHJ0X3ZjcHUgKiAo KnFlbGVtKShzdHJ1Y3QgbGlzdF9oZWFkICopLAogICBkZWFkbGluZV9xdWV1ZV9pbnNlcnQoJnJl cGxxX2VsZW0sICMjX19WQV9BUkdTX18pCiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotcV9yZW1vdmUo c3RydWN0IHJ0X3ZjcHUgKnN2YykKK3FfcmVtb3ZlKHN0cnVjdCBydF91bml0ICpzdmMpCiB7CiAg ICAgQVNTRVJUKCB2Y3B1X29uX3Eoc3ZjKSApOwogICAgIGxpc3RfZGVsX2luaXQoJnN2Yy0+cV9l bGVtKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCi1yZXBscV9yZW1vdmUoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQorcmVwbHFfcmVtb3ZlKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3VuaXQgKnN2YykKIHsKICAgICBzdHJ1 Y3QgcnRfcHJpdmF0ZSAqcHJ2ID0gcnRfcHJpdihvcHMpOwogICAgIHN0cnVjdCBsaXN0X2hlYWQg KnJlcGxxID0gcnRfcmVwbHEob3BzKTsKQEAgLTU0Niw3ICs1NDYsNyBAQCByZXBscV9yZW1vdmUo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQogICAgICAg ICAgKi8KICAgICAgICAgaWYgKCAhbGlzdF9lbXB0eShyZXBscSkgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBzdHJ1Y3QgcnRfdmNwdSAqc3ZjX25leHQgPSByZXBscV9lbGVtKHJlcGxxLT5uZXh0 KTsKKyAgICAgICAgICAgIHN0cnVjdCBydF91bml0ICpzdmNfbmV4dCA9IHJlcGxxX2VsZW0ocmVw bHEtPm5leHQpOwogICAgICAgICAgICAgc2V0X3RpbWVyKCZwcnYtPnJlcGxfdGltZXIsIHN2Y19u ZXh0LT5jdXJfZGVhZGxpbmUpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKQEAgLTU2MCw3ICs1 NjAsNyBAQCByZXBscV9yZW1vdmUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qg cnRfdmNwdSAqc3ZjKQogICogSW5zZXJ0IHN2YyB3aXRob3V0IGJ1ZGdldCBpbiBEZXBsZXRlZFEg dW5zb3J0ZWQ7CiAgKi8KIHN0YXRpYyB2b2lkCi1ydW5xX2luc2VydChjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMpCitydW5xX2luc2VydChjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF91bml0ICpzdmMpCiB7CiAgICAgc3RydWN0IHJ0 X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYob3BzKTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpydW5x ID0gcnRfcnVucShvcHMpOwpAQCAtNTc4LDcgKzU3OCw3IEBAIHJ1bnFfaW5zZXJ0KGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2YykKIH0KIAogc3RhdGljIHZv aWQKLXJlcGxxX2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92 Y3B1ICpzdmMpCityZXBscV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3QgcnRfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBsaXN0X2hlYWQgKnJlcGxxID0gcnRfcmVw bHEob3BzKTsKICAgICBzdHJ1Y3QgcnRfcHJpdmF0ZSAqcHJ2ID0gcnRfcHJpdihvcHMpOwpAQCAt NjAwLDEwICs2MDAsMTAgQEAgcmVwbHFfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAqIGNoYW5nZWQuCiAgKi8KIHN0YXRpYyB2b2lkCi1y ZXBscV9yZWluc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1 ICpzdmMpCityZXBscV9yZWluc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVj dCBydF91bml0ICpzdmMpCiB7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcmVwbHEgPSBydF9yZXBs cShvcHMpOwotICAgIHN0cnVjdCBydF92Y3B1ICpyZWFybV9zdmMgPSBzdmM7CisgICAgc3RydWN0 IHJ0X3VuaXQgKnJlYXJtX3N2YyA9IHN2YzsKICAgICBib29sX3QgcmVhcm0gPSAwOwogCiAgICAg QVNTRVJUKCB2Y3B1X29uX3JlcGxxKHN2YykgKTsKQEAgLTczNCw3ICs3MzQsNyBAQCBydF9zd2l0 Y2hfc2NoZWQoc3RydWN0IHNjaGVkdWxlciAqbmV3X29wcywgdW5zaWduZWQgaW50IGNwdSwKICAg ICAgICAgICAgICAgICB2b2lkICpwZGF0YSwgdm9pZCAqdmRhdGEpCiB7CiAgICAgc3RydWN0IHJ0 X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYobmV3X29wcyk7Ci0gICAgc3RydWN0IHJ0X3ZjcHUgKnN2 YyA9IHZkYXRhOworICAgIHN0cnVjdCBydF91bml0ICpzdmMgPSB2ZGF0YTsKIAogICAgIEFTU0VS VCghcGRhdGEgJiYgc3ZjICYmIGlzX2lkbGVfdmNwdShzdmMtPnZjcHUpKTsKIApAQCAtODQxLDEw ICs4NDEsMTAgQEAgc3RhdGljIHZvaWQgKgogcnRfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwgdm9pZCAqZGQpCiB7CiAgICAg c3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBydF92Y3B1ICpz dmM7CisgICAgc3RydWN0IHJ0X3VuaXQgKnN2YzsKIAogICAgIC8qIEFsbG9jYXRlIHBlci1WQ1BV IGluZm8gKi8KLSAgICBzdmMgPSB4emFsbG9jKHN0cnVjdCBydF92Y3B1KTsKKyAgICBzdmMgPSB4 emFsbG9jKHN0cnVjdCBydF91bml0KTsKICAgICBpZiAoIHN2YyA9PSBOVUxMICkKICAgICAgICAg cmV0dXJuIE5VTEw7CiAKQEAgLTg2OSw3ICs4NjksNyBAQCBydF9hbGxvY192ZGF0YShjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0LCB2b2lkICpkZCkK IHN0YXRpYyB2b2lkCiBydF9mcmVlX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywg dm9pZCAqcHJpdikKIHsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqc3ZjID0gcHJpdjsKKyAgICBzdHJ1 Y3QgcnRfdW5pdCAqc3ZjID0gcHJpdjsKIAogICAgIHhmcmVlKHN2Yyk7CiB9CkBAIC04ODUsNyAr ODg1LDcgQEAgc3RhdGljIHZvaWQKIHJ0X3VuaXRfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnZj ID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBydF92Y3B1ICpzdmMgPSBydF92Y3B1KHZj KTsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqc3ZjID0gcnRfdW5pdCh1bml0KTsKICAgICBzX3RpbWVf dCBub3c7CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKIApAQCAtOTE0LDEzICs5MTQsMTMgQEAgcnRf dW5pdF9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5p dCAqdW5pdCkKIH0KIAogLyoKLSAqIFJlbW92ZSBydF92Y3B1IHN2YyBmcm9tIHRoZSBvbGQgc2No ZWR1bGVyIGluIHNvdXJjZSBjcHVwb29sLgorICogUmVtb3ZlIHJ0X3VuaXQgc3ZjIGZyb20gdGhl IG9sZCBzY2hlZHVsZXIgaW4gc291cmNlIGNwdXBvb2wuCiAgKi8KIHN0YXRpYyB2b2lkCiBydF91 bml0X3JlbW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0 ICp1bml0KQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBz dHJ1Y3QgcnRfdmNwdSAqIGNvbnN0IHN2YyA9IHJ0X3ZjcHUodmMpOworICAgIHN0cnVjdCBydF91 bml0ICogY29uc3Qgc3ZjID0gcnRfdW5pdCh1bml0KTsKICAgICBzdHJ1Y3QgcnRfZG9tICogY29u c3Qgc2RvbSA9IHN2Yy0+c2RvbTsKICAgICBzcGlubG9ja190ICpsb2NrOwogCkBAIC05NDIsNyAr OTQyLDcgQEAgcnRfdW5pdF9yZW1vdmUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAqIEJ1cm4gYnVkZ2V0IGluIG5hbm9zZWNvbmQgZ3JhbnVs YXJpdHkKICAqLwogc3RhdGljIHZvaWQKLWJ1cm5fYnVkZ2V0KGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2Yywgc190aW1lX3Qgbm93KQorYnVybl9idWRnZXQo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdW5pdCAqc3ZjLCBzX3RpbWVf dCBub3cpCiB7CiAgICAgc190aW1lX3QgZGVsdGE7CiAKQEAgLTEwMDYsMTMgKzEwMDYsMTMgQEAg YnVybl9idWRnZXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAq c3ZjLCBzX3RpbWVfdCBub3cpCiAgKiBSdW5RIGlzIHNvcnRlZC4gUGljayBmaXJzdCBvbmUgd2l0 aGluIGNwdW1hc2suIElmIG5vIG9uZSwgcmV0dXJuIE5VTEwKICAqIGxvY2sgaXMgZ3JhYmJlZCBi ZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uCiAgKi8KLXN0YXRpYyBzdHJ1Y3QgcnRfdmNwdSAq CitzdGF0aWMgc3RydWN0IHJ0X3VuaXQgKgogcnVucV9waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgY29uc3QgY3B1bWFza190ICptYXNrKQogewogICAgIHN0cnVjdCBsaXN0X2hlYWQg KnJ1bnEgPSBydF9ydW5xKG9wcyk7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqaXRlcjsKLSAgICBz dHJ1Y3QgcnRfdmNwdSAqc3ZjID0gTlVMTDsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqaXRlcl9zdmMg PSBOVUxMOworICAgIHN0cnVjdCBydF91bml0ICpzdmMgPSBOVUxMOworICAgIHN0cnVjdCBydF91 bml0ICppdGVyX3N2YyA9IE5VTEw7CiAgICAgY3B1bWFza190IGNwdV9jb21tb247CiAgICAgY3B1 bWFza190ICpvbmxpbmU7CiAKQEAgLTEwNjMsOCArMTA2Myw4IEBAIHJ0X3NjaGVkdWxlKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc190aW1lX3Qgbm93LCBib29sX3QgdGFza2xldF93b3Jr X3NjaGVkCiB7CiAgICAgY29uc3QgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKICAgICBz dHJ1Y3QgcnRfcHJpdmF0ZSAqcHJ2ID0gcnRfcHJpdihvcHMpOwotICAgIHN0cnVjdCBydF92Y3B1 ICpjb25zdCBzY3VyciA9IHJ0X3ZjcHUoY3VycmVudCk7Ci0gICAgc3RydWN0IHJ0X3ZjcHUgKnNu ZXh0ID0gTlVMTDsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqY29uc3Qgc2N1cnIgPSBydF91bml0KGN1 cnJlbnQtPnNjaGVkX3VuaXQpOworICAgIHN0cnVjdCBydF91bml0ICpzbmV4dCA9IE5VTEw7CiAg ICAgc3RydWN0IHRhc2tfc2xpY2UgcmV0ID0geyAubWlncmF0ZWQgPSAwIH07CiAKICAgICAvKiBU UkFDRSAqLwpAQCAtMTA5MCwxMyArMTA5MCwxMyBAQCBydF9zY2hlZHVsZShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsIHNfdGltZV90IG5vdywgYm9vbF90IHRhc2tsZXRfd29ya19zY2hlZAog ICAgIGlmICggdGFza2xldF93b3JrX3NjaGVkdWxlZCApCiAgICAgewogICAgICAgICB0cmFjZV92 YXIoVFJDX1JURFNfU0NIRURfVEFTS0xFVCwgMSwgMCwgIE5VTEwpOwotICAgICAgICBzbmV4dCA9 IHJ0X3ZjcHUoaWRsZV92Y3B1W2NwdV0pOworICAgICAgICBzbmV4dCA9IHJ0X3VuaXQoaWRsZV92 Y3B1W2NwdV0tPnNjaGVkX3VuaXQpOwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICAgICBz bmV4dCA9IHJ1bnFfcGljayhvcHMsIGNwdW1hc2tfb2YoY3B1KSk7CiAgICAgICAgIGlmICggc25l eHQgPT0gTlVMTCApCi0gICAgICAgICAgICBzbmV4dCA9IHJ0X3ZjcHUoaWRsZV92Y3B1W2NwdV0p OworICAgICAgICAgICAgc25leHQgPSBydF91bml0KGlkbGVfdmNwdVtjcHVdLT5zY2hlZF91bml0 KTsKIAogICAgICAgICAvKiBpZiBzY3VyciBoYXMgaGlnaGVyIHByaW9yaXR5IGFuZCBidWRnZXQs IHN0aWxsIHBpY2sgc2N1cnIgKi8KICAgICAgICAgaWYgKCAhaXNfaWRsZV92Y3B1KGN1cnJlbnQp ICYmCkBAIC0xMTQyLDEyICsxMTQyLDEyIEBAIHN0YXRpYyB2b2lkCiBydF91bml0X3NsZWVwKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAg ICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBydF92Y3B1 ICogY29uc3Qgc3ZjID0gcnRfdmNwdSh2Yyk7CisgICAgc3RydWN0IHJ0X3VuaXQgKiBjb25zdCBz dmMgPSBydF91bml0KHVuaXQpOwogCiAgICAgQlVHX09OKCBpc19pZGxlX3ZjcHUodmMpICk7CiAg ICAgU0NIRURfU1RBVF9DUkFOSyh2Y3B1X3NsZWVwKTsKIAotICAgIGlmICggY3Vycl9vbl9jcHUo dmMtPnByb2Nlc3NvcikgPT0gdmMgKQorICAgIGlmICggY3Vycl9vbl9jcHUodmMtPnByb2Nlc3Nv cikgPT0gdW5pdCApCiAgICAgICAgIGNwdV9yYWlzZV9zb2Z0aXJxKHZjLT5wcm9jZXNzb3IsIFND SEVEVUxFX1NPRlRJUlEpOwogICAgIGVsc2UgaWYgKCB2Y3B1X29uX3Eoc3ZjKSApCiAgICAgewpA QCAtMTE3NywxMSArMTE3NywxMSBAQCBydF91bml0X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAgKiBsb2NrIGlzIGdyYWJiZWQgYmVm b3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgogICovCiBzdGF0aWMgdm9pZAotcnVucV90aWNrbGUo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqbmV3KQorcnVucV90 aWNrbGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdW5pdCAqbmV3KQog ewogICAgIHN0cnVjdCBydF9wcml2YXRlICpwcnYgPSBydF9wcml2KG9wcyk7Ci0gICAgc3RydWN0 IHJ0X3ZjcHUgKmxhdGVzdF9kZWFkbGluZV92Y3B1ID0gTlVMTDsgLyogbG93ZXN0IHByaW9yaXR5 ICovCi0gICAgc3RydWN0IHJ0X3ZjcHUgKml0ZXJfc3ZjOworICAgIHN0cnVjdCBydF91bml0ICps YXRlc3RfZGVhZGxpbmVfdmNwdSA9IE5VTEw7IC8qIGxvd2VzdCBwcmlvcml0eSAqLworICAgIHN0 cnVjdCBydF91bml0ICppdGVyX3N2YzsKICAgICBzdHJ1Y3QgdmNwdSAqaXRlcl92YzsKICAgICBp bnQgY3B1ID0gMCwgY3B1X3RvX3RpY2tsZSA9IDA7CiAgICAgY3B1bWFza190IG5vdF90aWNrbGVk OwpAQCAtMTIwMiwxNCArMTIwMiwxNCBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpuZXcpCiAgICAgY3B1ID0gY3B1bWFza190ZXN0X29y X2N5Y2xlKG5ldy0+dmNwdS0+cHJvY2Vzc29yLCAmbm90X3RpY2tsZWQpOwogICAgIHdoaWxlICgg Y3B1IT0gbnJfY3B1X2lkcyApCiAgICAgewotICAgICAgICBpdGVyX3ZjID0gY3Vycl9vbl9jcHUo Y3B1KTsKKyAgICAgICAgaXRlcl92YyA9IGN1cnJfb25fY3B1KGNwdSktPnZjcHVfbGlzdDsKICAg ICAgICAgaWYgKCBpc19pZGxlX3ZjcHUoaXRlcl92YykgKQogICAgICAgICB7CiAgICAgICAgICAg ICBTQ0hFRF9TVEFUX0NSQU5LKHRpY2tsZWRfaWRsZV9jcHUpOwogICAgICAgICAgICAgY3B1X3Rv X3RpY2tsZSA9IGNwdTsKICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICB9Ci0gICAgICAg IGl0ZXJfc3ZjID0gcnRfdmNwdShpdGVyX3ZjKTsKKyAgICAgICAgaXRlcl9zdmMgPSBydF91bml0 KGl0ZXJfdmMtPnNjaGVkX3VuaXQpOwogICAgICAgICBpZiAoIGxhdGVzdF9kZWFkbGluZV92Y3B1 ID09IE5VTEwgfHwKICAgICAgICAgICAgICBjb21wYXJlX3ZjcHVfcHJpb3JpdHkoaXRlcl9zdmMs IGxhdGVzdF9kZWFkbGluZV92Y3B1KSA8IDAgKQogICAgICAgICAgICAgbGF0ZXN0X2RlYWRsaW5l X3ZjcHUgPSBpdGVyX3N2YzsKQEAgLTEyNTgsMTMgKzEyNTgsMTMgQEAgc3RhdGljIHZvaWQKIHJ0 X3VuaXRfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0 ICp1bml0KQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBz dHJ1Y3QgcnRfdmNwdSAqIGNvbnN0IHN2YyA9IHJ0X3ZjcHUodmMpOworICAgIHN0cnVjdCBydF91 bml0ICogY29uc3Qgc3ZjID0gcnRfdW5pdCh1bml0KTsKICAgICBzX3RpbWVfdCBub3c7CiAgICAg Ym9vbF90IG1pc3NlZDsKIAogICAgIEJVR19PTiggaXNfaWRsZV92Y3B1KHZjKSApOwogCi0gICAg aWYgKCB1bmxpa2VseShjdXJyX29uX2NwdSh2Yy0+cHJvY2Vzc29yKSA9PSB2YykgKQorICAgIGlm ICggdW5saWtlbHkoY3Vycl9vbl9jcHUodmMtPnByb2Nlc3NvcikgPT0gdW5pdCkgKQogICAgIHsK ICAgICAgICAgU0NIRURfU1RBVF9DUkFOSyh2Y3B1X3dha2VfcnVubmluZyk7CiAgICAgICAgIHJl dHVybjsKQEAgLTEzMjksNyArMTMyOSw3IEBAIHN0YXRpYyB2b2lkCiBydF9jb250ZXh0X3NhdmVk KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7 CiAgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBydF92 Y3B1ICpzdmMgPSBydF92Y3B1KHZjKTsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqc3ZjID0gcnRfdW5p dCh1bml0KTsKICAgICBzcGlubG9ja190ICpsb2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2 Yyk7CiAKICAgICBfX2NsZWFyX2JpdChfX1JURFNfc2NoZWR1bGVkLCAmc3ZjLT5mbGFncyk7CkBA IC0xMzYwLDcgKzEzNjAsNyBAQCBydF9kb21fY250bCgKICAgICBzdHJ1Y3QgeGVuX2RvbWN0bF9z Y2hlZHVsZXJfb3AgKm9wKQogewogICAgIHN0cnVjdCBydF9wcml2YXRlICpwcnYgPSBydF9wcml2 KG9wcyk7Ci0gICAgc3RydWN0IHJ0X3ZjcHUgKnN2YzsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqc3Zj OwogICAgIHN0cnVjdCB2Y3B1ICp2OwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgaW50 IHJjID0gMDsKQEAgLTEzODQsNyArMTM4NCw3IEBAIHJ0X2RvbV9jbnRsKAogICAgICAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAgICAgICAgIGZvcl9lYWNoX3ZjcHUg KCBkLCB2ICkKICAgICAgICAgewotICAgICAgICAgICAgc3ZjID0gcnRfdmNwdSh2KTsKKyAgICAg ICAgICAgIHN2YyA9IHJ0X3VuaXQodi0+c2NoZWRfdW5pdCk7CiAgICAgICAgICAgICBzdmMtPnBl cmlvZCA9IE1JQ1JPU0VDUyhvcC0+dS5ydGRzLnBlcmlvZCk7IC8qIHRyYW5zZmVyIHRvIG5hbm9z ZWMgKi8KICAgICAgICAgICAgIHN2Yy0+YnVkZ2V0ID0gTUlDUk9TRUNTKG9wLT51LnJ0ZHMuYnVk Z2V0KTsKICAgICAgICAgfQpAQCAtMTQxMCw3ICsxNDEwLDcgQEAgcnRfZG9tX2NudGwoCiAgICAg ICAgICAgICBpZiAoIG9wLT5jbWQgPT0gWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZvICkK ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5s b2NrLCBmbGFncyk7Ci0gICAgICAgICAgICAgICAgc3ZjID0gcnRfdmNwdShkLT52Y3B1W2xvY2Fs X3NjaGVkLnZjcHVpZF0pOworICAgICAgICAgICAgICAgIHN2YyA9IHJ0X3VuaXQoZC0+dmNwdVts b2NhbF9zY2hlZC52Y3B1aWRdLT5zY2hlZF91bml0KTsKICAgICAgICAgICAgICAgICBsb2NhbF9z Y2hlZC51LnJ0ZHMuYnVkZ2V0ID0gc3ZjLT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7CiAgICAgICAg ICAgICAgICAgbG9jYWxfc2NoZWQudS5ydGRzLnBlcmlvZCA9IHN2Yy0+cGVyaW9kIC8gTUlDUk9T RUNTKDEpOwogICAgICAgICAgICAgICAgIGlmICggaGFzX2V4dHJhdGltZShzdmMpICkKQEAgLTE0 MzgsNyArMTQzOCw3IEBAIHJ0X2RvbV9jbnRsKAogICAgICAgICAgICAgICAgIH0KIAogICAgICAg ICAgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKLSAgICAgICAg ICAgICAgICBzdmMgPSBydF92Y3B1KGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXSk7CisgICAg ICAgICAgICAgICAgc3ZjID0gcnRfdW5pdChkLT52Y3B1W2xvY2FsX3NjaGVkLnZjcHVpZF0tPnNj aGVkX3VuaXQpOwogICAgICAgICAgICAgICAgIHN2Yy0+cGVyaW9kID0gcGVyaW9kOwogICAgICAg ICAgICAgICAgIHN2Yy0+YnVkZ2V0ID0gYnVkZ2V0OwogICAgICAgICAgICAgICAgIGlmICggbG9j YWxfc2NoZWQudS5ydGRzLmZsYWdzICYgWEVOX0RPTUNUTF9TQ0hFRFJUX2V4dHJhICkKQEAgLTE0 NzEsNyArMTQ3MSw3IEBAIHN0YXRpYyB2b2lkIHJlcGxfdGltZXJfaGFuZGxlcih2b2lkICpkYXRh KXsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpyZXBscSA9IHJ0X3JlcGxxKG9wcyk7CiAgICAgc3Ry dWN0IGxpc3RfaGVhZCAqcnVucSA9IHJ0X3J1bnEob3BzKTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFk ICppdGVyLCAqdG1wOwotICAgIHN0cnVjdCBydF92Y3B1ICpzdmM7CisgICAgc3RydWN0IHJ0X3Vu aXQgKnN2YzsKICAgICBMSVNUX0hFQUQodG1wX3JlcGxxKTsKIAogICAgIHNwaW5fbG9ja19pcnEo JnBydi0+bG9jayk7CkBAIC0xNTEzLDEwICsxNTEzLDEwIEBAIHN0YXRpYyB2b2lkIHJlcGxfdGlt ZXJfaGFuZGxlcih2b2lkICpkYXRhKXsKICAgICB7CiAgICAgICAgIHN2YyA9IHJlcGxxX2VsZW0o aXRlcik7CiAKLSAgICAgICAgaWYgKCBjdXJyX29uX2NwdShzdmMtPnZjcHUtPnByb2Nlc3Nvcikg PT0gc3ZjLT52Y3B1ICYmCisgICAgICAgIGlmICggY3Vycl9vbl9jcHUoc3ZjLT52Y3B1LT5wcm9j ZXNzb3IpID09IHN2Yy0+dmNwdS0+c2NoZWRfdW5pdCAmJgogICAgICAgICAgICAgICFsaXN0X2Vt cHR5KHJ1bnEpICkKICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IHJ0X3ZjcHUgKm5leHRf b25fcnVucSA9IHFfZWxlbShydW5xLT5uZXh0KTsKKyAgICAgICAgICAgIHN0cnVjdCBydF91bml0 ICpuZXh0X29uX3J1bnEgPSBxX2VsZW0ocnVucS0+bmV4dCk7CiAKICAgICAgICAgICAgIGlmICgg Y29tcGFyZV92Y3B1X3ByaW9yaXR5KHN2YywgbmV4dF9vbl9ydW5xKSA8IDAgKQogICAgICAgICAg ICAgICAgIHJ1bnFfdGlja2xlKG9wcywgbmV4dF9vbl9ydW5xKTsKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwppbmRleCA5YWQxMWRjNDZk Li40NTM5NGU2YzJlIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVu L2NvbW1vbi9zY2hlZHVsZS5jCkBAIC0zOTIsNyArMzkyLDcgQEAgaW50IHNjaGVkX2luaXRfdmNw dShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHByb2Nlc3NvcikKICAgICAvKiBJZGxlIFZD UFVzIGFyZSBzY2hlZHVsZWQgaW1tZWRpYXRlbHksIHNvIGRvbid0IHB1dCB0aGVtIGluIHJ1bnF1 ZXVlLiAqLwogICAgIGlmICggaXNfaWRsZV9kb21haW4oZCkgKQogICAgIHsKLSAgICAgICAgcGVy X2NwdShzY2hlZHVsZV9kYXRhLCB2LT5wcm9jZXNzb3IpLmN1cnIgPSB2OworICAgICAgICBwZXJf Y3B1KHNjaGVkdWxlX2RhdGEsIHYtPnByb2Nlc3NvcikuY3VyciA9IHVuaXQ7CiAgICAgICAgIHYt PmlzX3J1bm5pbmcgPSAxOwogICAgIH0KICAgICBlbHNlCkBAIC0xNTk5LDcgKzE1OTksNyBAQCBz dGF0aWMgdm9pZCBzY2hlZHVsZSh2b2lkKQogCiAgICAgbmV4dCA9IG5leHRfc2xpY2UudGFzazsK IAotICAgIHNkLT5jdXJyID0gbmV4dDsKKyAgICBzZC0+Y3VyciA9IG5leHQtPnNjaGVkX3VuaXQ7 CiAKICAgICBpZiAoIG5leHRfc2xpY2UudGltZSA+PSAwICkgLyogLXZlIG1lYW5zIG5vIGxpbWl0 ICovCiAgICAgICAgIHNldF90aW1lcigmc2QtPnNfdGltZXIsIG5vdyArIG5leHRfc2xpY2UudGlt ZSk7CkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBzdGF0aWMgaW50IGNwdV9zY2hlZHVsZV91cCh1bnNp Z25lZCBpbnQgY3B1KQogICAgICAqIGFsbG9jYXRlZC4KICAgICAgKi8KIAotICAgIHNkLT5jdXJy ID0gaWRsZV92Y3B1W2NwdV07CisgICAgc2QtPmN1cnIgPSBpZGxlX3ZjcHVbY3B1XS0+c2NoZWRf dW5pdDsKIAogICAgIHNkLT5zY2hlZF9wcml2ID0gTlVMTDsKIApAQCAtMTkwOSw3ICsxOTA5LDcg QEAgdm9pZCBfX2luaXQgc2NoZWR1bGVyX2luaXQodm9pZCkKICAgICBpZGxlX2RvbWFpbi0+bWF4 X3ZjcHVzID0gbnJfY3B1X2lkczsKICAgICBpZiAoIHZjcHVfY3JlYXRlKGlkbGVfZG9tYWluLCAw LCAwKSA9PSBOVUxMICkKICAgICAgICAgQlVHKCk7Ci0gICAgdGhpc19jcHUoc2NoZWR1bGVfZGF0 YSkuY3VyciA9IGlkbGVfdmNwdVswXTsKKyAgICB0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5jdXJy ID0gaWRsZV92Y3B1WzBdLT5zY2hlZF91bml0OwogfQogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveGVuL3NjaGVkLWlmLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaAppbmRleCA4 OGMxZTZkNTA1Li42OWFlZGQyMjEwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQt aWYuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaApAQCAtMzYsNyArMzYsNyBAQCBl eHRlcm4gaW50IHNjaGVkX3JhdGVsaW1pdF91czsKIHN0cnVjdCBzY2hlZHVsZV9kYXRhIHsKICAg ICBzcGlubG9ja190ICAgICAgICAgKnNjaGVkdWxlX2xvY2ssCiAgICAgICAgICAgICAgICAgICAg ICAgIF9sb2NrOwotICAgIHN0cnVjdCB2Y3B1ICAgICAgICAqY3VycjsgICAgICAgICAgIC8qIGN1 cnJlbnQgdGFzayAgICAgICAgICAgICAgICAgICAgKi8KKyAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAg KmN1cnI7ICAgICAgICAgICAvKiBjdXJyZW50IHRhc2sgICAgICAgICAgICAgICAgICAgICovCiAg ICAgdm9pZCAgICAgICAgICAgICAgICpzY2hlZF9wcml2OwogICAgIHN0cnVjdCB0aW1lciAgICAg ICAgc190aW1lcjsgICAgICAgIC8qIHNjaGVkdWxpbmcgdGltZXIgICAgICAgICAgICAgICAgKi8K ICAgICBhdG9taWNfdCAgICAgICAgICAgIHVyZ2VudF9jb3VudDsgICAvKiBob3cgbWFueSB1cmdl bnQgdmNwdXMgICAgICAgICAgICovCi0tIAoyLjE2LjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs