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=-10.0 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 52993C4CEC5 for ; Sat, 14 Sep 2019 08:53:54 +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 1826A20830 for ; Sat, 14 Sep 2019 08:53:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1826A20830 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 1i93oK-00089Z-EU; Sat, 14 Sep 2019 08:53:40 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i93oI-00087N-LM for xen-devel@lists.xenproject.org; Sat, 14 Sep 2019 08:53:38 +0000 X-Inumbo-ID: 0c9130d4-d6cd-11e9-95c1-12813bfff9fa Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 0c9130d4-d6cd-11e9-95c1-12813bfff9fa; Sat, 14 Sep 2019 08:52:58 +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 6A988B65C; Sat, 14 Sep 2019 08:52:56 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Sat, 14 Sep 2019 10:52:10 +0200 Message-Id: <20190914085251.18816-7-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190914085251.18816-1-jgross@suse.com> References: <20190914085251.18816-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v3 06/47] 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 Z2lvbGkgPGRmYWdnaW9saUBzdXNlLmNvbT4KLS0tClYzOgotIHJlbW92ZSBubyBsb25nZXIgbWF0 Y2hpbmcgY29tbWVudCAoSmFuIEJldWxpY2gpCi0tLQogeGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1 My5jIHwgICAyICstCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jICAgfCAxMDUgKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyAgfCAxNjggKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vc2No ZWRfbnVsbC5jICAgICB8ICA0NiArKysrKystLS0tLS0KIHhlbi9jb21tb24vc2NoZWRfcnQuYyAg ICAgICB8IDExOCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL3Nj aGVkdWxlLmMgICAgICAgfCAgIDggKy0tCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaCAgfCAg IDIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMjIyIGluc2VydGlvbnMoKyksIDIyNyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMgYi94ZW4vY29tbW9u L3NjaGVkX2FyaW5jNjUzLmMKaW5kZXggOTc1NGFhYTUwMy4uODU4NWQ5YzRmZSAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfYXJp bmM2NTMuYwpAQCAtNDc1LDcgKzQ3NSw3IEBAIGE2NTNzY2hlZF91bml0X3NsZWVwKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAgICAgICogSWYg dGhlIFZDUFUgYmVpbmcgcHV0IHRvIHNsZWVwIGlzIHRoZSBzYW1lIG9uZSB0aGF0IGlzIGN1cnJl bnRseQogICAgICAqIHJ1bm5pbmcsIHJhaXNlIGEgc29mdGlycSB0byBpbnZva2UgdGhlIHNjaGVk dWxlciB0byBzd2l0Y2ggZG9tYWlucy4KICAgICAgKi8KLSAgICBpZiAoIHBlcl9jcHUoc2NoZWR1 bGVfZGF0YSwgdmMtPnByb2Nlc3NvcikuY3VyciA9PSB2YyApCisgICAgaWYgKCBwZXJfY3B1KHNj aGVkdWxlX2RhdGEsIHZjLT5wcm9jZXNzb3IpLmN1cnIgPT0gdW5pdCApCiAgICAgICAgIGNwdV9y YWlzZV9zb2Z0aXJxKHZjLT5wcm9jZXNzb3IsIFNDSEVEVUxFX1NPRlRJUlEpOwogfQogCmRpZmYg LS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQuYwppbmRleCBiMzRjYzMyY2UwLi5iN2Q0NGVmYzhiIDEwMDY0NAotLS0gYS94ZW4vY29tbW9u L3NjaGVkX2NyZWRpdC5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKQEAgLTgzLDcg KzgzLDcgQEAKICAgICAoKHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqKSgoX29wcyktPnNjaGVkX2Rh dGEpKQogI2RlZmluZSBDU0NIRURfUENQVShfYykgICAgIFwKICAgICAoKHN0cnVjdCBjc2NoZWRf cGNwdSAqKXBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgX2MpLnNjaGVkX3ByaXYpCi0jZGVmaW5lIENT Q0hFRF9WQ1BVKF92Y3B1KSAgKChzdHJ1Y3QgY3NjaGVkX3ZjcHUgKikgKF92Y3B1KS0+c2NoZWRf dW5pdC0+cHJpdikKKyNkZWZpbmUgQ1NDSEVEX1VOSVQodW5pdCkgICAoKHN0cnVjdCBjc2NoZWRf dW5pdCAqKSAodW5pdCktPnByaXYpCiAjZGVmaW5lIENTQ0hFRF9ET00oX2RvbSkgICAgKChzdHJ1 Y3QgY3NjaGVkX2RvbSAqKSAoX2RvbSktPnNjaGVkX3ByaXYpCiAjZGVmaW5lIFJVTlEoX2NwdSkg ICAgICAgICAgKCYoQ1NDSEVEX1BDUFUoX2NwdSktPnJ1bnEpKQogCkBAIC0xNjAsNyArMTYwLDcg QEAgc3RydWN0IGNzY2hlZF9wY3B1IHsKIC8qCiAgKiBWaXJ0dWFsIENQVQogICovCi1zdHJ1Y3Qg Y3NjaGVkX3ZjcHUgeworc3RydWN0IGNzY2hlZF91bml0IHsKICAgICBzdHJ1Y3QgbGlzdF9oZWFk IHJ1bnFfZWxlbTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGFjdGl2ZV92Y3B1X2VsZW07CiAKQEAg LTIzMywxNSArMjMzLDE1IEBAIHN0YXRpYyB2b2lkIGNzY2hlZF90aWNrKHZvaWQgKl9jcHUpOwog c3RhdGljIHZvaWQgY3NjaGVkX2FjY3Qodm9pZCAqZHVtbXkpOwogCiBzdGF0aWMgaW5saW5lIGlu dAotX192Y3B1X29uX3J1bnEoc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMpCitfX3ZjcHVfb25fcnVu cShzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YykKIHsKICAgICByZXR1cm4gIWxpc3RfZW1wdHkoJnN2 Yy0+cnVucV9lbGVtKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKgor c3RhdGljIGlubGluZSBzdHJ1Y3QgY3NjaGVkX3VuaXQgKgogX19ydW5xX2VsZW0oc3RydWN0IGxp c3RfaGVhZCAqZWxlbSkKIHsKLSAgICByZXR1cm4gbGlzdF9lbnRyeShlbGVtLCBzdHJ1Y3QgY3Nj aGVkX3ZjcHUsIHJ1bnFfZWxlbSk7CisgICAgcmV0dXJuIGxpc3RfZW50cnkoZWxlbSwgc3RydWN0 IGNzY2hlZF91bml0LCBydW5xX2VsZW0pOwogfQogCiAvKiBJcyB0aGUgZmlyc3QgZWxlbWVudCBv ZiBjcHUncyBydW5xIChpZiBhbnkpIGNwdSdzIGlkbGUgdmNwdT8gKi8KQEAgLTI3Myw3ICsyNzMs NyBAQCBkZWNfbnJfcnVubmFibGUodW5zaWduZWQgaW50IGNwdSkKIH0KIAogc3RhdGljIGlubGlu ZSB2b2lkCi1fX3J1bnFfaW5zZXJ0KHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjKQorX19ydW5xX2lu c2VydChzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YykKIHsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0g c3ZjLT52Y3B1LT5wcm9jZXNzb3I7CiAgICAgY29uc3Qgc3RydWN0IGxpc3RfaGVhZCAqIGNvbnN0 IHJ1bnEgPSBSVU5RKGNwdSk7CkBAIC0yODMsNyArMjgzLDcgQEAgX19ydW5xX2luc2VydChzdHJ1 Y3QgY3NjaGVkX3ZjcHUgKnN2YykKIAogICAgIGxpc3RfZm9yX2VhY2goIGl0ZXIsIHJ1bnEgKQog ICAgIHsKLSAgICAgICAgY29uc3Qgc3RydWN0IGNzY2hlZF92Y3B1ICogY29uc3QgaXRlcl9zdmMg PSBfX3J1bnFfZWxlbShpdGVyKTsKKyAgICAgICAgY29uc3Qgc3RydWN0IGNzY2hlZF91bml0ICog Y29uc3QgaXRlcl9zdmMgPSBfX3J1bnFfZWxlbShpdGVyKTsKICAgICAgICAgaWYgKCBzdmMtPnBy aSA+IGl0ZXJfc3ZjLT5wcmkgKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzA0LDM0 ICszMDQsMzQgQEAgX19ydW5xX2luc2VydChzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YykKIH0KIAog c3RhdGljIGlubGluZSB2b2lkCi1ydW5xX2luc2VydChzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YykK K3J1bnFfaW5zZXJ0KHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjKQogewogICAgIF9fcnVucV9pbnNl cnQoc3ZjKTsKICAgICBpbmNfbnJfcnVubmFibGUoc3ZjLT52Y3B1LT5wcm9jZXNzb3IpOwogfQog CiBzdGF0aWMgaW5saW5lIHZvaWQKLV9fcnVucV9yZW1vdmUoc3RydWN0IGNzY2hlZF92Y3B1ICpz dmMpCitfX3J1bnFfcmVtb3ZlKHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjKQogewogICAgIEJVR19P TiggIV9fdmNwdV9vbl9ydW5xKHN2YykgKTsKICAgICBsaXN0X2RlbF9pbml0KCZzdmMtPnJ1bnFf ZWxlbSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAotcnVucV9yZW1vdmUoc3RydWN0IGNzY2hl ZF92Y3B1ICpzdmMpCitydW5xX3JlbW92ZShzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YykKIHsKICAg ICBkZWNfbnJfcnVubmFibGUoc3ZjLT52Y3B1LT5wcm9jZXNzb3IpOwogICAgIF9fcnVucV9yZW1v dmUoc3ZjKTsKIH0KIAotc3RhdGljIHZvaWQgYnVybl9jcmVkaXRzKHN0cnVjdCBjc2NoZWRfdmNw dSAqc3ZjLCBzX3RpbWVfdCBub3cpCitzdGF0aWMgdm9pZCBidXJuX2NyZWRpdHMoc3RydWN0IGNz Y2hlZF91bml0ICpzdmMsIHNfdGltZV90IG5vdykKIHsKICAgICBzX3RpbWVfdCBkZWx0YTsKICAg ICB1aW50NjRfdCB2YWw7CiAgICAgdW5zaWduZWQgaW50IGNyZWRpdHM7CiAKICAgICAvKiBBc3Nl cnQgc3ZjIGlzIGN1cnJlbnQgKi8KLSAgICBBU1NFUlQoIHN2YyA9PSBDU0NIRURfVkNQVShjdXJy X29uX2NwdShzdmMtPnZjcHUtPnByb2Nlc3NvcikpICk7CisgICAgQVNTRVJUKCBzdmMgPT0gQ1ND SEVEX1VOSVQoY3Vycl9vbl9jcHUoc3ZjLT52Y3B1LT5wcm9jZXNzb3IpKSApOwogCiAgICAgaWYg KCAoZGVsdGEgPSBub3cgLSBzdmMtPnN0YXJ0X3RpbWUpIDw9IDAgKQogICAgICAgICByZXR1cm47 CkBAIC0zNDksMTAgKzM0OSwxMCBAQCBib29sZWFuX3BhcmFtKCJ0aWNrbGVfb25lX2lkbGVfY3B1 Iiwgb3B0X3RpY2tsZV9vbmVfaWRsZSk7CiAKIERFRklORV9QRVJfQ1BVKHVuc2lnbmVkIGludCwg bGFzdF90aWNrbGVfY3B1KTsKIAotc3RhdGljIGlubGluZSB2b2lkIF9fcnVucV90aWNrbGUoc3Ry dWN0IGNzY2hlZF92Y3B1ICpuZXcpCitzdGF0aWMgaW5saW5lIHZvaWQgX19ydW5xX3RpY2tsZShz dHJ1Y3QgY3NjaGVkX3VuaXQgKm5ldykKIHsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0gbmV3LT52 Y3B1LT5wcm9jZXNzb3I7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICogY29uc3QgY3VyID0gQ1ND SEVEX1ZDUFUoY3Vycl9vbl9jcHUoY3B1KSk7CisgICAgc3RydWN0IGNzY2hlZF91bml0ICogY29u c3QgY3VyID0gQ1NDSEVEX1VOSVQoY3Vycl9vbl9jcHUoY3B1KSk7CiAgICAgc3RydWN0IGNzY2hl ZF9wcml2YXRlICpwcnYgPSBDU0NIRURfUFJJVihwZXJfY3B1KHNjaGVkdWxlciwgY3B1KSk7CiAg ICAgY3B1bWFza190IG1hc2ssIGlkbGVfbWFzaywgKm9ubGluZTsKICAgICBpbnQgYmFsYW5jZV9z dGVwLCBpZGxlcnNfZW1wdHk7CkBAIC02MDcsNyArNjA3LDcgQEAgaW5pdF9wZGF0YShzdHJ1Y3Qg Y3NjaGVkX3ByaXZhdGUgKnBydiwgc3RydWN0IGNzY2hlZF9wY3B1ICpzcGMsIGludCBjcHUpCiAg ICAgc3BjLT5pZGxlX2JpYXMgPSBucl9jcHVfaWRzIC0gMTsKIAogICAgIC8qIFN0YXJ0IG9mZiBp ZGxpbmcuLi4gKi8KLSAgICBCVUdfT04oIWlzX2lkbGVfdmNwdShjdXJyX29uX2NwdShjcHUpKSk7 CisgICAgQlVHX09OKCFpc19pZGxlX3ZjcHUoY3Vycl9vbl9jcHUoY3B1KS0+dmNwdV9saXN0KSk7 CiAgICAgY3B1bWFza19zZXRfY3B1KGNwdSwgcHJ2LT5pZGxlcnMpOwogICAgIHNwYy0+bnJfcnVu bmFibGUgPSAwOwogfQpAQCAtNjMwLDcgKzYzMCw3IEBAIGNzY2hlZF9zd2l0Y2hfc2NoZWQoc3Ry dWN0IHNjaGVkdWxlciAqbmV3X29wcywgdW5zaWduZWQgaW50IGNwdSwKIHsKICAgICBzdHJ1Y3Qg c2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOwogICAgIHN0 cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEX1BSSVYobmV3X29wcyk7Ci0gICAgc3Ry dWN0IGNzY2hlZF92Y3B1ICpzdmMgPSB2ZGF0YTsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2 YyA9IHZkYXRhOwogCiAgICAgQVNTRVJUKHN2YyAmJiBpc19pZGxlX3ZjcHUoc3ZjLT52Y3B1KSk7 CiAKQEAgLTY1Myw3ICs2NTMsNyBAQCBjc2NoZWRfc3dpdGNoX3NjaGVkKHN0cnVjdCBzY2hlZHVs ZXIgKm5ld19vcHMsIHVuc2lnbmVkIGludCBjcHUsCiBzdGF0aWMgaW5saW5lIHZvaWQKIF9fY3Nj aGVkX3ZjcHVfY2hlY2soc3RydWN0IHZjcHUgKnZjKQogewotICAgIHN0cnVjdCBjc2NoZWRfdmNw dSAqIGNvbnN0IHN2YyA9IENTQ0hFRF9WQ1BVKHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQg KiBjb25zdCBzdmMgPSBDU0NIRURfVU5JVCh2Yy0+c2NoZWRfdW5pdCk7CiAgICAgc3RydWN0IGNz Y2hlZF9kb20gKiBjb25zdCBzZG9tID0gc3ZjLT5zZG9tOwogCiAgICAgQlVHX09OKCBzdmMtPnZj cHUgIT0gdmMgKTsKQEAgLTY4Niw3ICs2ODYsNyBAQCBpbnRlZ2VyX3BhcmFtKCJ2Y3B1X21pZ3Jh dGlvbl9kZWxheSIsIHZjcHVfbWlncmF0aW9uX2RlbGF5X3VzKTsKIAogc3RhdGljIGlubGluZSBi b29sCiBfX2NzY2hlZF92Y3B1X2lzX2NhY2hlX2hvdChjb25zdCBzdHJ1Y3QgY3NjaGVkX3ByaXZh dGUgKnBydiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBjc2NoZWRf dmNwdSAqc3ZjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGNzY2hl ZF91bml0ICpzdmMpCiB7CiAgICAgYm9vbCBob3QgPSBwcnYtPnZjcHVfbWlncl9kZWxheSAmJgog ICAgICAgICAgICAgICAgKE5PVygpIC0gc3ZjLT5sYXN0X3NjaGVkX3RpbWUpIDwgcHJ2LT52Y3B1 X21pZ3JfZGVsYXk7CkBAIC03MDEsNyArNzAxLDcgQEAgc3RhdGljIGlubGluZSBpbnQKIF9fY3Nj aGVkX3ZjcHVfaXNfbWlncmF0ZWFibGUoY29uc3Qgc3RydWN0IGNzY2hlZF9wcml2YXRlICpwcnYs IHN0cnVjdCB2Y3B1ICp2YywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc3Rf Y3B1LCBjcHVtYXNrX3QgKm1hc2spCiB7Ci0gICAgY29uc3Qgc3RydWN0IGNzY2hlZF92Y3B1ICpz dmMgPSBDU0NIRURfVkNQVSh2Yyk7CisgICAgY29uc3Qgc3RydWN0IGNzY2hlZF91bml0ICpzdmMg PSBDU0NIRURfVU5JVCh2Yy0+c2NoZWRfdW5pdCk7CiAgICAgLyoKICAgICAgKiBEb24ndCBwaWNr IHVwIHdvcmsgdGhhdCdzIGhvdCBvbiBwZWVyIFBDUFUsIG9yIHRoYXQgY2FuJ3QgKG9yCiAgICAg ICogd291bGQgcHJlZmVyIG5vdCB0bykgcnVuIG9uIGNwdS4KQEAgLTg1Nyw3ICs4NTcsNyBAQCBz dGF0aWMgc3RydWN0IHNjaGVkX3Jlc291cmNlICoKIGNzY2hlZF9yZXNfcGljayhjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewogICAg IHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1Y3QgY3NjaGVkX3Zj cHUgKnN2YyA9IENTQ0hFRF9WQ1BVKHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YyA9 IENTQ0hFRF9VTklUKHVuaXQpOwogCiAgICAgLyoKICAgICAgKiBXZSBoYXZlIGJlZW4gY2FsbGVk IGJ5IHZjcHVfbWlncmF0ZSgpIChpbiBzY2hlZHVsZS5jKSwgYXMgcGFydApAQCAtODcxLDcgKzg3 MSw3IEBAIGNzY2hlZF9yZXNfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0 IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKLV9fY3Nj aGVkX3ZjcHVfYWNjdF9zdGFydChzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiwgc3RydWN0IGNz Y2hlZF92Y3B1ICpzdmMpCitfX2NzY2hlZF92Y3B1X2FjY3Rfc3RhcnQoc3RydWN0IGNzY2hlZF9w cml2YXRlICpwcnYsIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBjc2No ZWRfZG9tICogY29uc3Qgc2RvbSA9IHN2Yy0+c2RvbTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdz OwpAQCAtOTAxLDcgKzkwMSw3IEBAIF9fY3NjaGVkX3ZjcHVfYWNjdF9zdGFydChzdHJ1Y3QgY3Nj aGVkX3ByaXZhdGUgKnBydiwgc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMpCiAKIHN0YXRpYyBpbmxp bmUgdm9pZAogX19jc2NoZWRfdmNwdV9hY2N0X3N0b3BfbG9ja2VkKHN0cnVjdCBjc2NoZWRfcHJp dmF0ZSAqcHJ2LAotICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjKQorICAgIHN0cnVjdCBjc2No ZWRfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBjc2NoZWRfZG9tICogY29uc3Qgc2RvbSA9IHN2 Yy0+c2RvbTsKIApAQCAtOTI2LDcgKzkyNiw3IEBAIF9fY3NjaGVkX3ZjcHVfYWNjdF9zdG9wX2xv Y2tlZChzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiwKIHN0YXRpYyB2b2lkCiBjc2NoZWRfdmNw dV9hY2N0KHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2LCB1bnNpZ25lZCBpbnQgY3B1KQogewot ICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqIGNvbnN0IHN2YyA9IENTQ0hFRF9WQ1BVKGN1cnJlbnQp OworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqIGNvbnN0IHN2YyA9IENTQ0hFRF9VTklUKGN1cnJl bnQtPnNjaGVkX3VuaXQpOwogICAgIGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcyA9IHBlcl9j cHUoc2NoZWR1bGVyLCBjcHUpOwogCiAgICAgQVNTRVJUKCBjdXJyZW50LT5wcm9jZXNzb3IgPT0g Y3B1ICk7CkBAIC05OTUsMTAgKzk5NSwxMCBAQCBjc2NoZWRfYWxsb2NfdmRhdGEoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwKICAgICAgICAgICAg ICAgICAgICB2b2lkICpkZCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xp c3Q7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICpzdmM7CisgICAgc3RydWN0IGNzY2hlZF91bml0 ICpzdmM7CiAKICAgICAvKiBBbGxvY2F0ZSBwZXItVkNQVSBpbmZvICovCi0gICAgc3ZjID0geHph bGxvYyhzdHJ1Y3QgY3NjaGVkX3ZjcHUpOworICAgIHN2YyA9IHh6YWxsb2Moc3RydWN0IGNzY2hl ZF91bml0KTsKICAgICBpZiAoIHN2YyA9PSBOVUxMICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAK QEAgLTEwMTcsNyArMTAxNyw3IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWRfdW5pdF9pbnNlcnQoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKICAg ICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNzY2hlZF92 Y3B1ICpzdmMgPSB1bml0LT5wcml2OworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjID0gdW5p dC0+cHJpdjsKICAgICBzcGlubG9ja190ICpsb2NrOwogCiAgICAgQlVHX09OKCBpc19pZGxlX3Zj cHUodmMpICk7CkBAIC0xMDQzLDcgKzEwNDMsNyBAQCBjc2NoZWRfdW5pdF9pbnNlcnQoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHN0YXRpYyB2 b2lkCiBjc2NoZWRfZnJlZV92ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQg KnByaXYpCiB7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMgPSBwcml2OworICAgIHN0cnVj dCBjc2NoZWRfdW5pdCAqc3ZjID0gcHJpdjsKIAogICAgIEJVR19PTiggIWxpc3RfZW1wdHkoJnN2 Yy0+cnVucV9lbGVtKSApOwogCkBAIC0xMDU0LDggKzEwNTQsNyBAQCBzdGF0aWMgdm9pZAogY3Nj aGVkX3VuaXRfcmVtb3ZlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVk X3VuaXQgKnVuaXQpCiB7CiAgICAgc3RydWN0IGNzY2hlZF9wcml2YXRlICpwcnYgPSBDU0NIRURf UFJJVihvcHMpOwotICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBz dHJ1Y3QgY3NjaGVkX3ZjcHUgKiBjb25zdCBzdmMgPSBDU0NIRURfVkNQVSh2Yyk7CisgICAgc3Ry dWN0IGNzY2hlZF91bml0ICogY29uc3Qgc3ZjID0gQ1NDSEVEX1VOSVQodW5pdCk7CiAgICAgc3Ry dWN0IGNzY2hlZF9kb20gKiBjb25zdCBzZG9tID0gc3ZjLT5zZG9tOwogCiAgICAgU0NIRURfU1RB VF9DUkFOSyh2Y3B1X3JlbW92ZSk7CkBAIC0xMDgyLDE0ICsxMDgxLDE0IEBAIHN0YXRpYyB2b2lk CiBjc2NoZWRfdW5pdF9zbGVlcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBz Y2hlZF91bml0ICp1bml0KQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlz dDsKLSAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKiBjb25zdCBzdmMgPSBDU0NIRURfVkNQVSh2Yyk7 CisgICAgc3RydWN0IGNzY2hlZF91bml0ICogY29uc3Qgc3ZjID0gQ1NDSEVEX1VOSVQodW5pdCk7 CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHZjLT5wcm9jZXNzb3I7CiAKICAgICBTQ0hFRF9TVEFU X0NSQU5LKHZjcHVfc2xlZXApOwogCiAgICAgQlVHX09OKCBpc19pZGxlX3ZjcHUodmMpICk7CiAK LSAgICBpZiAoIGN1cnJfb25fY3B1KGNwdSkgPT0gdmMgKQorICAgIGlmICggY3Vycl9vbl9jcHUo Y3B1KSA9PSB1bml0ICkKICAgICB7CiAgICAgICAgIC8qCiAgICAgICAgICAqIFdlIGFyZSBhYm91 dCB0byB0aWNrbGUgY3B1LCBzbyB3ZSBzaG91bGQgY2xlYXIgaXRzIGJpdCBpbiBpZGxlcnMuCkBA IC0xMTA3LDEyICsxMTA2LDEyIEBAIHN0YXRpYyB2b2lkCiBjc2NoZWRfdW5pdF93YWtlKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAg c3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBjc2NoZWRfdmNw dSAqIGNvbnN0IHN2YyA9IENTQ0hFRF9WQ1BVKHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQg KiBjb25zdCBzdmMgPSBDU0NIRURfVU5JVCh1bml0KTsKICAgICBib29sX3QgbWlncmF0aW5nOwog CiAgICAgQlVHX09OKCBpc19pZGxlX3ZjcHUodmMpICk7CiAKLSAgICBpZiAoIHVubGlrZWx5KGN1 cnJfb25fY3B1KHZjLT5wcm9jZXNzb3IpID09IHZjKSApCisgICAgaWYgKCB1bmxpa2VseShjdXJy X29uX2NwdSh2Yy0+cHJvY2Vzc29yKSA9PSB1bml0KSApCiAgICAgewogICAgICAgICBTQ0hFRF9T VEFUX0NSQU5LKHZjcHVfd2FrZV9ydW5uaW5nKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE2OCw4 ICsxMTY3LDcgQEAgY3NjaGVkX3VuaXRfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogc3RhdGljIHZvaWQKIGNzY2hlZF91bml0X3lpZWxk KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7 Ci0gICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBjc2No ZWRfdmNwdSAqIGNvbnN0IHN2YyA9IENTQ0hFRF9WQ1BVKHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVk X3VuaXQgKiBjb25zdCBzdmMgPSBDU0NIRURfVU5JVCh1bml0KTsKIAogICAgIC8qIExldCB0aGUg c2NoZWR1bGVyIGtub3cgdGhhdCB0aGlzIHZjcHUgaXMgdHJ5aW5nIHRvIHlpZWxkICovCiAgICAg c2V0X2JpdChDU0NIRURfRkxBR19WQ1BVX1lJRUxELCAmc3ZjLT5mbGFncyk7CkBAIC0xMjI0LDgg KzEyMjIsNyBAQCBzdGF0aWMgdm9pZAogY3NjaGVkX2FmZl9jbnRsKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsCiAgICAgICAgICAgICAgICAgY29u c3QgY3B1bWFza190ICpoYXJkLCBjb25zdCBjcHVtYXNrX3QgKnNvZnQpCiB7Ci0gICAgc3RydWN0 IHZjcHUgKnYgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICpzdmMg PSBDU0NIRURfVkNQVSh2KTsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YyA9IENTQ0hFRF9V TklUKHVuaXQpOwogCiAgICAgaWYgKCAhaGFyZCApCiAgICAgICAgIHJldHVybjsKQEAgLTEzMjgs NyArMTMyNSw3IEBAIGNzY2hlZF9ydW5xX3NvcnQoc3RydWN0IGNzY2hlZF9wcml2YXRlICpwcnYs IHVuc2lnbmVkIGludCBjcHUpCiB7CiAgICAgc3RydWN0IGNzY2hlZF9wY3B1ICogY29uc3Qgc3Bj ID0gQ1NDSEVEX1BDUFUoY3B1KTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpydW5xLCAqZWxlbSwg Km5leHQsICpsYXN0X3VuZGVyOwotICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjX2VsZW07Cisg ICAgc3RydWN0IGNzY2hlZF91bml0ICpzdmNfZWxlbTsKICAgICBzcGlubG9ja190ICpsb2NrOwog ICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgaW50IHNvcnRfZXBvY2g7CkBAIC0xMzc0LDcg KzEzNzEsNyBAQCBjc2NoZWRfYWNjdCh2b2lkKiBkdW1teSkKICAgICB1bnNpZ25lZCBsb25nIGZs YWdzOwogICAgIHN0cnVjdCBsaXN0X2hlYWQgKml0ZXJfdmNwdSwgKm5leHRfdmNwdTsKICAgICBz dHJ1Y3QgbGlzdF9oZWFkICppdGVyX3Nkb20sICpuZXh0X3Nkb207Ci0gICAgc3RydWN0IGNzY2hl ZF92Y3B1ICpzdmM7CisgICAgc3RydWN0IGNzY2hlZF91bml0ICpzdmM7CiAgICAgc3RydWN0IGNz Y2hlZF9kb20gKnNkb207CiAgICAgdWludDMyX3QgY3JlZGl0X3RvdGFsOwogICAgIHVpbnQzMl90 IHdlaWdodF90b3RhbDsKQEAgLTE0OTcsNyArMTQ5NCw3IEBAIGNzY2hlZF9hY2N0KHZvaWQqIGR1 bW15KQogCiAgICAgICAgIGxpc3RfZm9yX2VhY2hfc2FmZSggaXRlcl92Y3B1LCBuZXh0X3ZjcHUs ICZzZG9tLT5hY3RpdmVfdmNwdSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN2YyA9IGxpc3Rf ZW50cnkoaXRlcl92Y3B1LCBzdHJ1Y3QgY3NjaGVkX3ZjcHUsIGFjdGl2ZV92Y3B1X2VsZW0pOwor ICAgICAgICAgICAgc3ZjID0gbGlzdF9lbnRyeShpdGVyX3ZjcHUsIHN0cnVjdCBjc2NoZWRfdW5p dCwgYWN0aXZlX3ZjcHVfZWxlbSk7CiAgICAgICAgICAgICBCVUdfT04oIHNkb20gIT0gc3ZjLT5z ZG9tICk7CiAKICAgICAgICAgICAgIC8qIEluY3JlbWVudCBjcmVkaXQgKi8KQEAgLTE2MDEsMTIg KzE1OTgsMTIgQEAgY3NjaGVkX3RpY2sodm9pZCAqX2NwdSkKICAgICBzZXRfdGltZXIoJnNwYy0+ dGlja2VyLCBOT1coKSArIE1JQ1JPU0VDUyhwcnYtPnRpY2tfcGVyaW9kX3VzKSApOwogfQogCi1z dGF0aWMgc3RydWN0IGNzY2hlZF92Y3B1ICoKK3N0YXRpYyBzdHJ1Y3QgY3NjaGVkX3VuaXQgKgog Y3NjaGVkX3J1bnFfc3RlYWwoaW50IHBlZXJfY3B1LCBpbnQgY3B1LCBpbnQgcHJpLCBpbnQgYmFs YW5jZV9zdGVwKQogewogICAgIGNvbnN0IHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqIGNvbnN0IHBy diA9IENTQ0hFRF9QUklWKHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpKTsKICAgICBjb25zdCBzdHJ1 Y3QgY3NjaGVkX3BjcHUgKiBjb25zdCBwZWVyX3BjcHUgPSBDU0NIRURfUENQVShwZWVyX2NwdSk7 Ci0gICAgc3RydWN0IGNzY2hlZF92Y3B1ICpzcGVlcjsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQg KnNwZWVyOwogICAgIHN0cnVjdCBsaXN0X2hlYWQgKml0ZXI7CiAgICAgc3RydWN0IHZjcHUgKnZj OwogCkBAIC0xNjE2LDcgKzE2MTMsNyBAQCBjc2NoZWRfcnVucV9zdGVhbChpbnQgcGVlcl9jcHUs IGludCBjcHUsIGludCBwcmksIGludCBiYWxhbmNlX3N0ZXApCiAgICAgICogRG9uJ3Qgc3RlYWwg ZnJvbSBhbiBpZGxlIENQVSdzIHJ1bnEgYmVjYXVzZSBpdCdzIGFib3V0IHRvCiAgICAgICogcGlj ayB1cCB3b3JrIGZyb20gaXQgaXRzZWxmLgogICAgICAqLwotICAgIGlmICggdW5saWtlbHkoaXNf aWRsZV92Y3B1KGN1cnJfb25fY3B1KHBlZXJfY3B1KSkpICkKKyAgICBpZiAoIHVubGlrZWx5KGlz X2lkbGVfdmNwdShjdXJyX29uX2NwdShwZWVyX2NwdSktPnZjcHVfbGlzdCkpICkKICAgICAgICAg Z290byBvdXQ7CiAKICAgICBsaXN0X2Zvcl9lYWNoKCBpdGVyLCAmcGVlcl9wY3B1LT5ydW5xICkK QEAgLTE2NzgsMTIgKzE2NzUsMTIgQEAgY3NjaGVkX3J1bnFfc3RlYWwoaW50IHBlZXJfY3B1LCBp bnQgY3B1LCBpbnQgcHJpLCBpbnQgYmFsYW5jZV9zdGVwKQogICAgIHJldHVybiBOVUxMOwogfQog Ci1zdGF0aWMgc3RydWN0IGNzY2hlZF92Y3B1ICoKK3N0YXRpYyBzdHJ1Y3QgY3NjaGVkX3VuaXQg KgogY3NjaGVkX2xvYWRfYmFsYW5jZShzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiwgaW50IGNw dSwKLSAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnNuZXh0LCBib29sX3QgKnN0b2xlbikKKyAgICBz dHJ1Y3QgY3NjaGVkX3VuaXQgKnNuZXh0LCBib29sX3QgKnN0b2xlbikKIHsKICAgICBzdHJ1Y3Qg Y3B1cG9vbCAqYyA9IHBlcl9jcHUoY3B1cG9vbCwgY3B1KTsKLSAgICBzdHJ1Y3QgY3NjaGVkX3Zj cHUgKnNwZWVyOworICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3BlZXI7CiAgICAgY3B1bWFza190 IHdvcmtlcnM7CiAgICAgY3B1bWFza190ICpvbmxpbmU7CiAgICAgaW50IHBlZXJfY3B1LCBmaXJz dF9jcHUsIHBlZXJfbm9kZSwgYnN0ZXA7CkBAIC0xODMyLDkgKzE4MjksOSBAQCBjc2NoZWRfc2No ZWR1bGUoCiB7CiAgICAgY29uc3QgaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKICAgICBz dHJ1Y3QgbGlzdF9oZWFkICogY29uc3QgcnVucSA9IFJVTlEoY3B1KTsKLSAgICBzdHJ1Y3QgY3Nj aGVkX3ZjcHUgKiBjb25zdCBzY3VyciA9IENTQ0hFRF9WQ1BVKGN1cnJlbnQpOworICAgIHN0cnVj dCBjc2NoZWRfdW5pdCAqIGNvbnN0IHNjdXJyID0gQ1NDSEVEX1VOSVQoY3VycmVudC0+c2NoZWRf dW5pdCk7CiAgICAgc3RydWN0IGNzY2hlZF9wcml2YXRlICpwcnYgPSBDU0NIRURfUFJJVihvcHMp OwotICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqc25leHQ7CisgICAgc3RydWN0IGNzY2hlZF91bml0 ICpzbmV4dDsKICAgICBzdHJ1Y3QgdGFza19zbGljZSByZXQ7CiAgICAgc190aW1lX3QgcnVudGlt ZSwgdHNsaWNlOwogCkBAIC0xOTUxLDcgKzE5NDgsNyBAQCBjc2NoZWRfc2NoZWR1bGUoCiAgICAg aWYgKCB0YXNrbGV0X3dvcmtfc2NoZWR1bGVkICkKICAgICB7CiAgICAgICAgIFRSQUNFXzBEKFRS Q19DU0NIRURfU0NIRURfVEFTS0xFVCk7Ci0gICAgICAgIHNuZXh0ID0gQ1NDSEVEX1ZDUFUoaWRs ZV92Y3B1W2NwdV0pOworICAgICAgICBzbmV4dCA9IENTQ0hFRF9VTklUKGlkbGVfdmNwdVtjcHVd LT5zY2hlZF91bml0KTsKICAgICAgICAgc25leHQtPnByaSA9IENTQ0hFRF9QUklfVFNfQk9PU1Q7 CiAgICAgfQogCkBAIC0yMDAzLDcgKzIwMDAsNyBAQCBvdXQ6CiB9CiAKIHN0YXRpYyB2b2lkCi1j c2NoZWRfZHVtcF92Y3B1KHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjKQorY3NjaGVkX2R1bXBfdmNw dShzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YykKIHsKICAgICBzdHJ1Y3QgY3NjaGVkX2RvbSAqIGNv bnN0IHNkb20gPSBzdmMtPnNkb207CiAKQEAgLTIwMzksNyArMjAzNiw3IEBAIGNzY2hlZF9kdW1w X3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1KQogICAgIHN0cnVjdCBs aXN0X2hlYWQgKnJ1bnEsICppdGVyOwogICAgIHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2ID0g Q1NDSEVEX1BSSVYob3BzKTsKICAgICBzdHJ1Y3QgY3NjaGVkX3BjcHUgKnNwYzsKLSAgICBzdHJ1 Y3QgY3NjaGVkX3ZjcHUgKnN2YzsKKyAgICBzdHJ1Y3QgY3NjaGVkX3VuaXQgKnN2YzsKICAgICBz cGlubG9ja190ICpsb2NrOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgaW50IGxvb3A7 CkBAIC0yMDYzLDcgKzIwNjAsNyBAQCBjc2NoZWRfZHVtcF9wY3B1KGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICAgICAgICAgQ1BVTUFTS19QUihwZXJfY3B1KGNwdV9j b3JlX21hc2ssIGNwdSkpKTsKIAogICAgIC8qIGN1cnJlbnQgVkNQVSAobm90aGluZyB0byBzYXkg aWYgdGhhdCdzIHRoZSBpZGxlIHZjcHUpLiAqLwotICAgIHN2YyA9IENTQ0hFRF9WQ1BVKGN1cnJf b25fY3B1KGNwdSkpOworICAgIHN2YyA9IENTQ0hFRF9VTklUKGN1cnJfb25fY3B1KGNwdSkpOwog ICAgIGlmICggc3ZjICYmICFpc19pZGxlX3ZjcHUoc3ZjLT52Y3B1KSApCiAgICAgewogICAgICAg ICBwcmludGsoIlx0cnVuOiAiKTsKQEAgLTIxMzIsMTAgKzIxMjksMTAgQEAgY3NjaGVkX2R1bXAo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQogCiAgICAgICAgIGxpc3RfZm9yX2VhY2goIGl0 ZXJfc3ZjLCAmc2RvbS0+YWN0aXZlX3ZjcHUgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdHJ1 Y3QgY3NjaGVkX3ZjcHUgKnN2YzsKKyAgICAgICAgICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3Zj OwogICAgICAgICAgICAgc3BpbmxvY2tfdCAqbG9jazsKIAotICAgICAgICAgICAgc3ZjID0gbGlz dF9lbnRyeShpdGVyX3N2Yywgc3RydWN0IGNzY2hlZF92Y3B1LCBhY3RpdmVfdmNwdV9lbGVtKTsK KyAgICAgICAgICAgIHN2YyA9IGxpc3RfZW50cnkoaXRlcl9zdmMsIHN0cnVjdCBjc2NoZWRfdW5p dCwgYWN0aXZlX3ZjcHVfZWxlbSk7CiAgICAgICAgICAgICBsb2NrID0gdmNwdV9zY2hlZHVsZV9s b2NrKHN2Yy0+dmNwdSk7CiAKICAgICAgICAgICAgIHByaW50aygiXHQlM2Q6ICIsICsrbG9vcCk7 CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyBiL3hlbi9jb21tb24vc2No ZWRfY3JlZGl0Mi5jCmluZGV4IGNlYTRhMTEwODcuLjQ5ODJmMWVmMzYgMTAwNjQ0Ci0tLSBhL3hl bi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5j CkBAIC0xNzYsNyArMTc2LDcgQEAKICAqICAgICBsb2FkIGJhbGFuY2luZzsKICAqICArIHNlcmlh bGl6ZXMgcnVucXVldWUgb3BlcmF0aW9ucyAocmVtb3ZpbmcgYW5kIGluc2VydGluZyB2Y3B1cyk7 CiAgKiAgKyBwcm90ZWN0cyBydW5xdWV1ZS13aWRlIGRhdGEgaW4gY3NjaGVkMl9ydW5xdWV1ZV9k YXRhOwotICogICsgcHJvdGVjdHMgdmNwdSBwYXJhbWV0ZXJzIGluIGNzY2hlZDJfdmNwdSBmb3Ig dGhlIHZjcHUgaW4gdGhlCisgKiAgKyBwcm90ZWN0cyB2Y3B1IHBhcmFtZXRlcnMgaW4gY3NjaGVk Ml91bml0IGZvciB0aGUgdmNwdSBpbiB0aGUKICAqICAgIHJ1bnF1ZXVlLgogICoKICAqIC0gUHJp dmF0ZSBzY2hlZHVsZXIgbG9jawpAQCAtNTEyLDcgKzUxMiw3IEBAIHN0cnVjdCBjc2NoZWQyX3Bj cHUgewogLyoKICAqIFZpcnR1YWwgQ1BVCiAgKi8KLXN0cnVjdCBjc2NoZWQyX3ZjcHUgeworc3Ry dWN0IGNzY2hlZDJfdW5pdCB7CiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpzZG9tOyAgICAgICAg ICAvKiBVcC1wb2ludGVyIHRvIGRvbWFpbiAgICAgICAgICAgICAgICAqLwogICAgIHN0cnVjdCB2 Y3B1ICp2Y3B1OyAgICAgICAgICAgICAgICAgLyogVXAtcG9pbnRlciwgdG8gdmNwdSAgICAgICAg ICAgICAgICAgKi8KICAgICBzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQ7IC8qIFVw LXBvaW50ZXIgdG8gdGhlIHJ1bnF1ZXVlICAgICAgICAgICovCkBAIC01NzEsOSArNTcxLDkgQEAg c3RhdGljIGlubGluZSBzdHJ1Y3QgY3NjaGVkMl9wY3B1ICpjc2NoZWQyX3BjcHUodW5zaWduZWQg aW50IGNwdSkKICAgICByZXR1cm4gcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkX3By aXY7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hlZDJfdmNwdSAqY3NjaGVkMl92Y3B1 KGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIGlubGluZSBzdHJ1Y3QgY3NjaGVkMl91bml0 ICpjc2NoZWQyX3VuaXQoY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7Ci0gICAgcmV0 dXJuIHYtPnNjaGVkX3VuaXQtPnByaXY7CisgICAgcmV0dXJuIHVuaXQtPnByaXY7CiB9CiAKIHN0 YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hlZDJfZG9tICpjc2NoZWQyX2RvbShjb25zdCBzdHJ1Y3Qg ZG9tYWluICpkKQpAQCAtNTk1LDcgKzU5NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hl ZDJfcnVucXVldWVfZGF0YSAqYzJycWQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogfQog CiAvKiBEb2VzIHRoZSBkb21haW4gb2YgdGhpcyB2Q1BVIGhhdmUgYSBjYXA/ICovCi1zdGF0aWMg aW5saW5lIGJvb2wgaGFzX2NhcChjb25zdCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMpCitzdGF0 aWMgaW5saW5lIGJvb2wgaGFzX2NhcChjb25zdCBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMpCiB7 CiAgICAgcmV0dXJuIHN2Yy0+YnVkZ2V0ICE9IFNUSU1FX01BWDsKIH0KQEAgLTY4OSw3ICs2ODks NyBAQCB2b2lkIHNtdF9pZGxlX21hc2tfY2xlYXIodW5zaWduZWQgaW50IGNwdSwgY3B1bWFza190 ICptYXNrKQogICogT2YgY291cnNlLCAxLCAyIGFuZCAzIG1ha2VzIHNlbnNlIG9ubHkgaWYgc3Zj IGhhcyBhIHNvZnQgYWZmaW5pdHkuIEFsc28KICAqIG5vdGUgdGhhdCBhdCBsZWFzdCA1IGlzIGd1 YXJhbnRlZWQgdG8gX2Fsd2F5c18gcmV0dXJuIGF0IGxlYXN0IG9uZSBwY3B1LgogICovCi1zdGF0 aWMgaW50IGdldF9mYWxsYmFja19jcHUoc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQorc3RhdGlj IGludCBnZXRfZmFsbGJhY2tfY3B1KHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YykKIHsKICAgICBz dHJ1Y3QgdmNwdSAqdiA9IHN2Yy0+dmNwdTsKICAgICB1bnNpZ25lZCBpbnQgYnM7CkBAIC03NzQs NyArNzc0LDcgQEAgc3RhdGljIGludCBnZXRfZmFsbGJhY2tfY3B1KHN0cnVjdCBjc2NoZWQyX3Zj cHUgKnN2YykKICAqIEZJWE1FOiBEbyBwcmUtY2FsY3VsYXRlZCBkaXZpc2lvbj8KICAqLwogc3Rh dGljIHZvaWQgdDJjX3VwZGF0ZShzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsIHNf dGltZV90IHRpbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3Zj cHUgKnN2YykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAq c3ZjKQogewogICAgIHVpbnQ2NF90IHZhbCA9IHRpbWUgKiBycWQtPm1heF93ZWlnaHQgKyBzdmMt PnJlc2lkdWFsOwogCkBAIC03ODIsNyArNzgyLDcgQEAgc3RhdGljIHZvaWQgdDJjX3VwZGF0ZShz dHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsIHNfdGltZV90IHRpbWUsCiAgICAgc3Zj LT5jcmVkaXQgLT0gdmFsOwogfQogCi1zdGF0aWMgc190aW1lX3QgYzJ0KHN0cnVjdCBjc2NoZWQy X3J1bnF1ZXVlX2RhdGEgKnJxZCwgc190aW1lX3QgY3JlZGl0LCBzdHJ1Y3QgY3NjaGVkMl92Y3B1 ICpzdmMpCitzdGF0aWMgc190aW1lX3QgYzJ0KHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEg KnJxZCwgc190aW1lX3QgY3JlZGl0LCBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMpCiB7CiAgICAg cmV0dXJuIGNyZWRpdCAqIHN2Yy0+d2VpZ2h0IC8gcnFkLT5tYXhfd2VpZ2h0OwogfQpAQCAtNzkx LDE0ICs3OTEsMTQgQEAgc3RhdGljIHNfdGltZV90IGMydChzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1 ZV9kYXRhICpycWQsIHNfdGltZV90IGNyZWRpdCwgc3RydWN0IGMKICAqIFJ1bnF1ZXVlIHJlbGF0 ZWQgY29kZS4KICAqLwogCi1zdGF0aWMgaW5saW5lIGludCB2Y3B1X29uX3J1bnEoc3RydWN0IGNz Y2hlZDJfdmNwdSAqc3ZjKQorc3RhdGljIGlubGluZSBpbnQgdmNwdV9vbl9ydW5xKHN0cnVjdCBj c2NoZWQyX3VuaXQgKnN2YykKIHsKICAgICByZXR1cm4gIWxpc3RfZW1wdHkoJnN2Yy0+cnVucV9l bGVtKTsKIH0KIAotc3RhdGljIGlubGluZSBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogcnVucV9lbGVt KHN0cnVjdCBsaXN0X2hlYWQgKmVsZW0pCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjc2NoZWQyX3Vu aXQgKiBydW5xX2VsZW0oc3RydWN0IGxpc3RfaGVhZCAqZWxlbSkKIHsKLSAgICByZXR1cm4gbGlz dF9lbnRyeShlbGVtLCBzdHJ1Y3QgY3NjaGVkMl92Y3B1LCBydW5xX2VsZW0pOworICAgIHJldHVy biBsaXN0X2VudHJ5KGVsZW0sIHN0cnVjdCBjc2NoZWQyX3VuaXQsIHJ1bnFfZWxlbSk7CiB9CiAK IHN0YXRpYyB2b2lkIGFjdGl2YXRlX3J1bnF1ZXVlKHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBy diwgaW50IHJxaSkKQEAgLTkxNiw3ICs5MTYsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfbWF4X3dl aWdodChzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsIGludCBuZXdfd2VpZ2h0LAog CiAgICAgICAgIGxpc3RfZm9yX2VhY2goIGl0ZXIsICZycWQtPnN2YyApCiAgICAgICAgIHsKLSAg ICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBzdmMgPSBsaXN0X2VudHJ5KGl0ZXIsIHN0 cnVjdCBjc2NoZWQyX3ZjcHUsIHJxZF9lbGVtKTsKKyAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQy X3VuaXQgKiBzdmMgPSBsaXN0X2VudHJ5KGl0ZXIsIHN0cnVjdCBjc2NoZWQyX3VuaXQsIHJxZF9l bGVtKTsKIAogICAgICAgICAgICAgaWYgKCBzdmMtPndlaWdodCA+IG1heF93ZWlnaHQgKQogICAg ICAgICAgICAgICAgIG1heF93ZWlnaHQgPSBzdmMtPndlaWdodDsKQEAgLTk0MSw3ICs5NDEsNyBA QCBzdGF0aWMgdm9pZCB1cGRhdGVfbWF4X3dlaWdodChzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9k YXRhICpycWQsIGludCBuZXdfd2VpZ2h0LAogCiAvKiBBZGQgYW5kIHJlbW92ZSBmcm9tIHJ1bnF1 ZXVlIGFzc2lnbm1lbnQgKG5vdCBhY3RpdmUgcnVuIHF1ZXVlKSAqLwogc3RhdGljIHZvaWQKLV9y dW5xX2Fzc2lnbihzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMsIHN0cnVjdCBjc2NoZWQyX3J1bnF1 ZXVlX2RhdGEgKnJxZCkKK19ydW5xX2Fzc2lnbihzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMsIHN0 cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCkKIHsKIAogICAgIHN2Yy0+cnFkID0gcnFk OwpAQCAtOTcxLDcgKzk3MSw3IEBAIF9ydW5xX2Fzc2lnbihzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpz dmMsIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCkKIHN0YXRpYyB2b2lkCiBydW5x X2Fzc2lnbihjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKIHsK LSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMgPSB2Yy0+c2NoZWRfdW5pdC0+cHJpdjsKKyAg ICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSB2Yy0+c2NoZWRfdW5pdC0+cHJpdjsKIAogICAg IEFTU0VSVChzdmMtPnJxZCA9PSBOVUxMKTsKIApAQCAtOTc5LDcgKzk3OSw3IEBAIHJ1bnFfYXNz aWduKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogfQogCiBz dGF0aWMgdm9pZAotX3J1bnFfZGVhc3NpZ24oc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQorX3J1 bnFfZGVhc3NpZ24oc3RydWN0IGNzY2hlZDJfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBjc2No ZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCA9IHN2Yy0+cnFkOwogCkBAIC05OTgsNyArOTk4LDcgQEAg X3J1bnFfZGVhc3NpZ24oc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQogc3RhdGljIHZvaWQKIHJ1 bnFfZGVhc3NpZ24oY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMp CiB7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjID0gdmMtPnNjaGVkX3VuaXQtPnByaXY7 CisgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqc3ZjID0gdmMtPnNjaGVkX3VuaXQtPnByaXY7CiAK ICAgICBBU1NFUlQoc3ZjLT5ycWQgPT0gYzJycWQob3BzLCB2Yy0+cHJvY2Vzc29yKSk7CiAKQEAg LTEyMDAsNyArMTIwMCw3IEBAIHVwZGF0ZV9ydW5xX2xvYWQoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLAogCiBzdGF0aWMgdm9pZAogdXBkYXRlX3N2Y19sb2FkKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMsIGlu dCBjaGFuZ2UsIHNfdGltZV90IG5vdykKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91 bml0ICpzdmMsIGludCBjaGFuZ2UsIHNfdGltZV90IG5vdykKIHsKICAgICBzdHJ1Y3QgY3NjaGVk Ml9wcml2YXRlICpwcnYgPSBjc2NoZWQyX3ByaXYob3BzKTsKICAgICBzX3RpbWVfdCBkZWx0YSwg dmNwdV9sb2FkOwpAQCAtMTI2MCw3ICsxMjYwLDcgQEAgdXBkYXRlX3N2Y19sb2FkKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywKIHN0YXRpYyB2b2lkCiB1cGRhdGVfbG9hZChjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsCiAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9k YXRhICpycWQsCi0gICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMsIGludCBjaGFu Z2UsIHNfdGltZV90IG5vdykKKyAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2Yywg aW50IGNoYW5nZSwgc190aW1lX3Qgbm93KQogewogICAgIHRyYWNlX3ZhcihUUkNfQ1NDSEVEMl9V UERBVEVfTE9BRCwgMSwgMCwgIE5VTEwpOwogCkBAIC0xMjcwLDcgKzEyNzAsNyBAQCB1cGRhdGVf bG9hZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiB9CiAKIHN0YXRpYyB2b2lkCi1ydW5x X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBjc2NoZWQyX3ZjcHUg KnN2YykKK3J1bnFfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNz Y2hlZDJfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBsaXN0X2hlYWQgKml0ZXI7CiAgICAgdW5z aWduZWQgaW50IGNwdSA9IHN2Yy0+dmNwdS0+cHJvY2Vzc29yOwpAQCAtMTI4OSw3ICsxMjg5LDcg QEAgcnVucV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3NjaGVk Ml92Y3B1ICpzdmMpCiAKICAgICBsaXN0X2Zvcl9lYWNoKCBpdGVyLCBydW5xICkKICAgICB7Ci0g ICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBpdGVyX3N2YyA9IHJ1bnFfZWxlbShpdGVyKTsK KyAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIGl0ZXJfc3ZjID0gcnVucV9lbGVtKGl0ZXIp OwogCiAgICAgICAgIGlmICggc3ZjLT5jcmVkaXQgPiBpdGVyX3N2Yy0+Y3JlZGl0ICkKICAgICAg ICAgICAgIGJyZWFrOwpAQCAtMTMxMywxMyArMTMxMywxMyBAQCBydW5xX2luc2VydChjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YykKICAgICB9CiB9 CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBydW5xX3JlbW92ZShzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpz dmMpCitzdGF0aWMgaW5saW5lIHZvaWQgcnVucV9yZW1vdmUoc3RydWN0IGNzY2hlZDJfdW5pdCAq c3ZjKQogewogICAgIEFTU0VSVCh2Y3B1X29uX3J1bnEoc3ZjKSk7CiAgICAgbGlzdF9kZWxfaW5p dCgmc3ZjLT5ydW5xX2VsZW0pOwogfQogCi12b2lkIGJ1cm5fY3JlZGl0cyhzdHJ1Y3QgY3NjaGVk Ml9ydW5xdWV1ZV9kYXRhICpycWQsIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiwgc190aW1lX3QpOwor dm9pZCBidXJuX2NyZWRpdHMoc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkLCBzdHJ1 Y3QgY3NjaGVkMl91bml0ICosIHNfdGltZV90KTsKIAogc3RhdGljIGlubGluZSB2b2lkCiB0aWNr bGVfY3B1KHVuc2lnbmVkIGludCBjcHUsIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJx ZCkKQEAgLTEzMzUsNyArMTMzNSw3IEBAIHRpY2tsZV9jcHUodW5zaWduZWQgaW50IGNwdSwgc3Ry dWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkKQogICogd2hldGhlciBvciBub3QgaXQgYWxy ZWFkeSBydW4gZm9yIG1vcmUgdGhhbiB0aGUgcmF0ZWxpbWl0LCB0byB3aGljaCB3ZQogICogYXBw bHkgc29tZSB0b2xlcmFuY2UpLgogICovCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNfcHJlZW1wdGFi bGUoY29uc3Qgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjLAorc3RhdGljIGlubGluZSBib29sIGlz X3ByZWVtcHRhYmxlKGNvbnN0IHN0cnVjdCBjc2NoZWQyX3VuaXQgKnN2YywKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNfdGltZV90IG5vdywgc190aW1lX3QgcmF0ZWxpbWl0 KQogewogICAgIGlmICggcmF0ZWxpbWl0IDw9IENTQ0hFRDJfUkFURUxJTUlUX1RJQ0tMRV9UT0xF UkFOQ0UgKQpAQCAtMTM2MSwxMCArMTM2MSwxMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNfcHJl ZW1wdGFibGUoY29uc3Qgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjLAogICogV2l0aGluIHRoZSBz YW1lIGNsYXNzLCB0aGUgaGlnaGVzdCBkaWZmZXJlbmNlIG9mIGNyZWRpdC4KICAqLwogc3RhdGlj IHNfdGltZV90IHRpY2tsZV9zY29yZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHNfdGlt ZV90IG5vdywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqbmV3LCB1bnNpZ25lZCBpbnQgY3B1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgY3NjaGVkMl91bml0ICpuZXcsIHVuc2lnbmVkIGludCBjcHUpCiB7CiAgICAgc3RydWN0 IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkID0gYzJycWQob3BzLCBjcHUpOwotICAgIHN0cnVj dCBjc2NoZWQyX3ZjcHUgKiBjdXIgPSBjc2NoZWQyX3ZjcHUoY3Vycl9vbl9jcHUoY3B1KSk7Cisg ICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIGN1ciA9IGNzY2hlZDJfdW5pdChjdXJyX29uX2NwdShj cHUpKTsKICAgICBzdHJ1Y3QgY3NjaGVkMl9wcml2YXRlICpwcnYgPSBjc2NoZWQyX3ByaXYob3Bz KTsKICAgICBzX3RpbWVfdCBzY29yZTsKIApAQCAtMTQzMyw3ICsxNDMzLDcgQEAgc3RhdGljIHNf dGltZV90IHRpY2tsZV9zY29yZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHNfdGltZV90 IG5vdywKICAqIHBpY2sgdXAgc29tZSB3b3JrLCBzbyBpdCB3b3VsZCBiZSB3cm9uZyB0byBjb25z aWRlciBpdCBpZGxlLgogICovCiBzdGF0aWMgdm9pZAotcnVucV90aWNrbGUoY29uc3Qgc3RydWN0 IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpuZXcsIHNfdGltZV90IG5vdykK K3J1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJf dW5pdCAqbmV3LCBzX3RpbWVfdCBub3cpCiB7CiAgICAgaW50IGksIGlwaWQgPSAtMTsKICAgICBz X3RpbWVfdCBtYXggPSAwOwpAQCAtMTU4OCw3ICsxNTg4LDcgQEAgcnVucV90aWNrbGUoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpuZXcsIHNfdGltZV90 IG5vdykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVCghaXNfaWRsZV92Y3B1 KGN1cnJfb25fY3B1KGlwaWQpKSk7CisgICAgQVNTRVJUKCFpc19pZGxlX3ZjcHUoY3Vycl9vbl9j cHUoaXBpZCktPnZjcHVfbGlzdCkpOwogICAgIFNDSEVEX1NUQVRfQ1JBTksodGlja2xlZF9idXN5 X2NwdSk7CiAgdGlja2xlOgogICAgIEJVR19PTihpcGlkID09IC0xKTsKQEAgLTE2MTUsNyArMTYx NSw3IEBAIHJ1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNz Y2hlZDJfdmNwdSAqbmV3LCBzX3RpbWVfdCBub3cpCiAgKiBDcmVkaXQtcmVsYXRlZCBjb2RlCiAg Ki8KIHN0YXRpYyB2b2lkIHJlc2V0X2NyZWRpdChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IGludCBjcHUsIHNfdGltZV90IG5vdywKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg Y3NjaGVkMl92Y3B1ICpzbmV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3Nj aGVkMl91bml0ICpzbmV4dCkKIHsKICAgICBzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpy cWQgPSBjMnJxZChvcHMsIGNwdSk7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqaXRlcjsKQEAgLTE2 NDUsMTAgKzE2NDUsMTAgQEAgc3RhdGljIHZvaWQgcmVzZXRfY3JlZGl0KGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgaW50IGNwdSwgc190aW1lX3Qgbm93LAogICAgIGxpc3RfZm9yX2VhY2go IGl0ZXIsICZycWQtPnN2YyApCiAgICAgewogICAgICAgICB1bnNpZ25lZCBpbnQgc3ZjX2NwdTsK LSAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqIHN2YzsKKyAgICAgICAgc3RydWN0IGNzY2hl ZDJfdW5pdCAqIHN2YzsKICAgICAgICAgaW50IHN0YXJ0X2NyZWRpdDsKIAotICAgICAgICBzdmMg PSBsaXN0X2VudHJ5KGl0ZXIsIHN0cnVjdCBjc2NoZWQyX3ZjcHUsIHJxZF9lbGVtKTsKKyAgICAg ICAgc3ZjID0gbGlzdF9lbnRyeShpdGVyLCBzdHJ1Y3QgY3NjaGVkMl91bml0LCBycWRfZWxlbSk7 CiAgICAgICAgIHN2Y19jcHUgPSBzdmMtPnZjcHUtPnByb2Nlc3NvcjsKIAogICAgICAgICBBU1NF UlQoIWlzX2lkbGVfdmNwdShzdmMtPnZjcHUpKTsKQEAgLTE2NTgsNyArMTY1OCw3IEBAIHN0YXRp YyB2b2lkIHJlc2V0X2NyZWRpdChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUs IHNfdGltZV90IG5vdywKICAgICAgICAgICogSWYgc3ZjIGlzIHJ1bm5pbmcsIGl0IGlzIG91ciBy ZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUsIGhlcmUsCiAgICAgICAgICAqIHRoYXQgdGhlIGNy ZWRpdCBpdCBoYXMgc3BlbnQgc28gZmFyIGdldCBhY2NvdW50ZWQuCiAgICAgICAgICAqLwotICAg ICAgICBpZiAoIHN2Yy0+dmNwdSA9PSBjdXJyX29uX2NwdShzdmNfY3B1KSApCisgICAgICAgIGlm ICggc3ZjLT52Y3B1ID09IGN1cnJfb25fY3B1KHN2Y19jcHUpLT52Y3B1X2xpc3QgKQogICAgICAg ICB7CiAgICAgICAgICAgICBidXJuX2NyZWRpdHMocnFkLCBzdmMsIG5vdyk7CiAgICAgICAgICAg ICAvKgpAQCAtMTcxMCwxMSArMTcxMCwxMSBAQCBzdGF0aWMgdm9pZCByZXNldF9jcmVkaXQoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBpbnQgY3B1LCBzX3RpbWVfdCBub3csCiB9CiAKIHZv aWQgYnVybl9jcmVkaXRzKHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCwKLSAgICAg ICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2Yywgc190aW1lX3Qgbm93KQorICAg ICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqc3ZjLCBzX3RpbWVfdCBub3cpCiB7 CiAgICAgc190aW1lX3QgZGVsdGE7CiAKLSAgICBBU1NFUlQoc3ZjID09IGNzY2hlZDJfdmNwdShj dXJyX29uX2NwdShzdmMtPnZjcHUtPnByb2Nlc3NvcikpKTsKKyAgICBBU1NFUlQoc3ZjID09IGNz Y2hlZDJfdW5pdChjdXJyX29uX2NwdShzdmMtPnZjcHUtPnByb2Nlc3NvcikpKTsKIAogICAgIGlm ICggdW5saWtlbHkoaXNfaWRsZV92Y3B1KHN2Yy0+dmNwdSkpICkKICAgICB7CkBAIC0xNzY0LDcg KzE3NjQsNyBAQCB2b2lkIGJ1cm5fY3JlZGl0cyhzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRh ICpycWQsCiAgKiBCdWRnZXQtcmVsYXRlZCBjb2RlLgogICovCiAKLXN0YXRpYyB2b2lkIHBhcmtf dmNwdShzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMpCitzdGF0aWMgdm9pZCBwYXJrX3ZjcHUoc3Ry dWN0IGNzY2hlZDJfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gc3ZjLT52Y3B1 OwogCkBAIC0xNzkzLDcgKzE3OTMsNyBAQCBzdGF0aWMgdm9pZCBwYXJrX3ZjcHUoc3RydWN0IGNz Y2hlZDJfdmNwdSAqc3ZjKQogICAgIGxpc3RfYWRkKCZzdmMtPnBhcmtlZF9lbGVtLCAmc3ZjLT5z ZG9tLT5wYXJrZWRfdmNwdXMpOwogfQogCi1zdGF0aWMgYm9vbCB2Y3B1X2dyYWJfYnVkZ2V0KHN0 cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YykKK3N0YXRpYyBib29sIHZjcHVfZ3JhYl9idWRnZXQoc3Ry dWN0IGNzY2hlZDJfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBjc2NoZWQyX2RvbSAqc2RvbSA9 IHN2Yy0+c2RvbTsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0gc3ZjLT52Y3B1LT5wcm9jZXNzb3I7 CkBAIC0xODQwLDcgKzE4NDAsNyBAQCBzdGF0aWMgYm9vbCB2Y3B1X2dyYWJfYnVkZ2V0KHN0cnVj dCBjc2NoZWQyX3ZjcHUgKnN2YykKIH0KIAogc3RhdGljIHZvaWQKLXZjcHVfcmV0dXJuX2J1ZGdl dChzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMsIHN0cnVjdCBsaXN0X2hlYWQgKnBhcmtlZCkKK3Zj cHVfcmV0dXJuX2J1ZGdldChzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMsIHN0cnVjdCBsaXN0X2hl YWQgKnBhcmtlZCkKIHsKICAgICBzdHJ1Y3QgY3NjaGVkMl9kb20gKnNkb20gPSBzdmMtPnNkb207 CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHN2Yy0+dmNwdS0+cHJvY2Vzc29yOwpAQCAtMTg4Myw3 ICsxODgzLDcgQEAgdmNwdV9yZXR1cm5fYnVkZ2V0KHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2Yywg c3RydWN0IGxpc3RfaGVhZCAqcGFya2VkKQogc3RhdGljIHZvaWQKIHVucGFya19wYXJrZWRfdmNw dXMoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgbGlzdF9oZWFkICp2Y3B1cykK IHsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMsICp0bXA7CisgICAgc3RydWN0IGNzY2hl ZDJfdW5pdCAqc3ZjLCAqdG1wOwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAKICAgICBsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUoc3ZjLCB0bXAsIHZjcHVzLCBwYXJrZWRfZWxlbSkKQEAgLTIwMDUs NyArMjAwNSw3IEBAIHN0YXRpYyB2b2lkIHJlcGxlbmlzaF9kb21haW5fYnVkZ2V0KHZvaWQqIGRh dGEpCiBzdGF0aWMgaW5saW5lIHZvaWQKIGNzY2hlZDJfdmNwdV9jaGVjayhzdHJ1Y3QgdmNwdSAq dmMpCiB7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdmNw dSh2Yyk7CisgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdW5p dCh2Yy0+c2NoZWRfdW5pdCk7CiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICogY29uc3Qgc2RvbSA9 IHN2Yy0+c2RvbTsKIAogICAgIEJVR19PTiggc3ZjLT52Y3B1ICE9IHZjICk7CkBAIC0yMDMxLDEw ICsyMDMxLDEwIEBAIGNzY2hlZDJfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwKICAgICAgICAgICAgICAgICAgICAgdm9pZCAq ZGQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVj dCBjc2NoZWQyX3ZjcHUgKnN2YzsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmM7CiAKICAg ICAvKiBBbGxvY2F0ZSBwZXItVkNQVSBpbmZvICovCi0gICAgc3ZjID0geHphbGxvYyhzdHJ1Y3Qg Y3NjaGVkMl92Y3B1KTsKKyAgICBzdmMgPSB4emFsbG9jKHN0cnVjdCBjc2NoZWQyX3VuaXQpOwog ICAgIGlmICggc3ZjID09IE5VTEwgKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtMjA3NSwx MiArMjA3NSwxMiBAQCBzdGF0aWMgdm9pZAogY3NjaGVkMl91bml0X3NsZWVwKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgc3RydWN0 IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBj b25zdCBzdmMgPSBjc2NoZWQyX3ZjcHUodmMpOworICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKiBj b25zdCBzdmMgPSBjc2NoZWQyX3VuaXQodW5pdCk7CiAKICAgICBBU1NFUlQoIWlzX2lkbGVfdmNw dSh2YykpOwogICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV9zbGVlcCk7CiAKLSAgICBpZiAoIGN1 cnJfb25fY3B1KHZjLT5wcm9jZXNzb3IpID09IHZjICkKKyAgICBpZiAoIGN1cnJfb25fY3B1KHZj LT5wcm9jZXNzb3IpID09IHVuaXQgKQogICAgIHsKICAgICAgICAgdGlja2xlX2NwdSh2Yy0+cHJv Y2Vzc29yLCBzdmMtPnJxZCk7CiAgICAgfQpAQCAtMjA5OCw3ICsyMDk4LDcgQEAgc3RhdGljIHZv aWQKIGNzY2hlZDJfdW5pdF93YWtlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9s aXN0OwotICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3ZjcHUo dmMpOworICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3VuaXQo dW5pdCk7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHZjLT5wcm9jZXNzb3I7CiAgICAgc190aW1l X3Qgbm93OwogCkBAIC0yMTA2LDcgKzIxMDYsNyBAQCBjc2NoZWQyX3VuaXRfd2FrZShjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogCiAgICAgQVNT RVJUKCFpc19pZGxlX3ZjcHUodmMpKTsKIAotICAgIGlmICggdW5saWtlbHkoY3Vycl9vbl9jcHUo Y3B1KSA9PSB2YykgKQorICAgIGlmICggdW5saWtlbHkoY3Vycl9vbl9jcHUoY3B1KSA9PSB1bml0 KSApCiAgICAgewogICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHZjcHVfd2FrZV9ydW5uaW5nKTsK ICAgICAgICAgZ290byBvdXQ7CkBAIC0yMTUzLDggKzIxNTMsNyBAQCBvdXQ6CiBzdGF0aWMgdm9p ZAogY3NjaGVkMl91bml0X3lpZWxkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0 IHNjaGVkX3VuaXQgKnVuaXQpCiB7Ci0gICAgc3RydWN0IHZjcHUgKnYgPSB1bml0LT52Y3B1X2xp c3Q7Ci0gICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdmNwdSh2 KTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICogY29uc3Qgc3ZjID0gY3NjaGVkMl91bml0KHVu aXQpOwogCiAgICAgX19zZXRfYml0KF9fQ1NGTEFHX3ZjcHVfeWllbGQsICZzdmMtPmZsYWdzKTsK IH0KQEAgLTIxNjMsNyArMjE2Miw3IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWQyX2NvbnRleHRfc2F2 ZWQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkK IHsKICAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IGNz Y2hlZDJfdmNwdSAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdmNwdSh2Yyk7CisgICAgc3RydWN0IGNz Y2hlZDJfdW5pdCAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdW5pdCh1bml0KTsKICAgICBzcGlubG9j a190ICpsb2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2Yyk7CiAgICAgc190aW1lX3Qgbm93 ID0gTk9XKCk7CiAgICAgTElTVF9IRUFEKHdlcmVfcGFya2VkKTsKQEAgLTIyMDksNyArMjIwOCw3 IEBAIGNzY2hlZDJfcmVzX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBz dHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1 X2xpc3Q7CiAgICAgaW50IGksIG1pbl9ycWkgPSAtMSwgbWluX3NfcnFpID0gLTE7CiAgICAgdW5z aWduZWQgaW50IG5ld19jcHUsIGNwdSA9IHZjLT5wcm9jZXNzb3I7Ci0gICAgc3RydWN0IGNzY2hl ZDJfdmNwdSAqc3ZjID0gY3NjaGVkMl92Y3B1KHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0 ICpzdmMgPSBjc2NoZWQyX3VuaXQodW5pdCk7CiAgICAgc190aW1lX3QgbWluX2F2Z2xvYWQgPSBN QVhfTE9BRCwgbWluX3NfYXZnbG9hZCA9IE1BWF9MT0FEOwogICAgIGJvb2wgaGFzX3NvZnQ7CiAK QEAgLTI0MzEsMTUgKzI0MzAsMTUgQEAgY3NjaGVkMl9yZXNfcGljayhjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICpvcHMsIGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogdHlwZWRlZiBzdHJ1 Y3QgewogICAgIC8qIE5COiBNb2RpZmllZCBieSBjb25zaWRlcigpICovCiAgICAgc190aW1lX3Qg bG9hZF9kZWx0YTsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogYmVzdF9wdXNoX3N2YywgKmJl c3RfcHVsbF9zdmM7CisgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIGJlc3RfcHVzaF9zdmMsICpi ZXN0X3B1bGxfc3ZjOwogICAgIC8qIE5COiBSZWFkIGJ5IGNvbnNpZGVyKCkgKi8KICAgICBzdHJ1 Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpscnFkOwogICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1 ZXVlX2RhdGEgKm9ycWQ7ICAgICAgICAgICAgICAgICAgCiB9IGJhbGFuY2Vfc3RhdGVfdDsKIAog c3RhdGljIHZvaWQgY29uc2lkZXIoYmFsYW5jZV9zdGF0ZV90ICpzdCwgCi0gICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpwdXNoX3N2YywKLSAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnB1bGxfc3ZjKQorICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGNzY2hlZDJfdW5pdCAqcHVzaF9zdmMsCisgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgY3NjaGVkMl91bml0ICpwdWxsX3N2YykKIHsKICAgICBzX3RpbWVfdCBsX2xvYWQsIG9fbG9h ZCwgZGVsdGE7CiAKQEAgLTI0NzIsOCArMjQ3MSw4IEBAIHN0YXRpYyB2b2lkIGNvbnNpZGVyKGJh bGFuY2Vfc3RhdGVfdCAqc3QsCiAKIAogc3RhdGljIHZvaWQgbWlncmF0ZShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsCi0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUg KnN2YywgCi0gICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEg KnRycWQsIAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMsCisg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnRycWQsCiAg ICAgICAgICAgICAgICAgICAgIHNfdGltZV90IG5vdykKIHsKICAgICBpbnQgY3B1ID0gc3ZjLT52 Y3B1LT5wcm9jZXNzb3I7CkBAIC0yNTQyLDcgKzI1NDEsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRl KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKICAqICAtIHN2YyBpcyBub3QgYWxyZWFkeSBm bGFnZ2VkIHRvIG1pZ3JhdGUsCiAgKiAgLSBpZiBzdmMgaXMgYWxsb3dlZCB0byBydW4gb24gYXQg bGVhc3Qgb25lIG9mIHRoZSBwY3B1cyBvZiBycWQuCiAgKi8KLXN0YXRpYyBib29sIHZjcHVfaXNf bWlncmF0ZWFibGUoc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjLAorc3RhdGljIGJvb2wgdmNwdV9p c19taWdyYXRlYWJsZShzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkKQogewog ICAgIHN0cnVjdCB2Y3B1ICp2ID0gc3ZjLT52Y3B1OwpAQCAtMjY5Miw3ICsyNjkxLDcgQEAgcmV0 cnk6CiAgICAgLyogUmV1c2UgbG9hZCBkZWx0YSAoYXMgd2UncmUgdHJ5aW5nIHRvIG1pbmltaXpl IGl0KSAqLwogICAgIGxpc3RfZm9yX2VhY2goIHB1c2hfaXRlciwgJnN0LmxycWQtPnN2YyApCiAg ICAgewotICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogcHVzaF9zdmMgPSBsaXN0X2VudHJ5 KHB1c2hfaXRlciwgc3RydWN0IGNzY2hlZDJfdmNwdSwgcnFkX2VsZW0pOworICAgICAgICBzdHJ1 Y3QgY3NjaGVkMl91bml0ICogcHVzaF9zdmMgPSBsaXN0X2VudHJ5KHB1c2hfaXRlciwgc3RydWN0 IGNzY2hlZDJfdW5pdCwgcnFkX2VsZW0pOwogCiAgICAgICAgIHVwZGF0ZV9zdmNfbG9hZChvcHMs IHB1c2hfc3ZjLCAwLCBub3cpOwogCkBAIC0yNzAxLDcgKzI3MDAsNyBAQCByZXRyeToKIAogICAg ICAgICBsaXN0X2Zvcl9lYWNoKCBwdWxsX2l0ZXIsICZzdC5vcnFkLT5zdmMgKQogICAgICAgICB7 Ci0gICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogcHVsbF9zdmMgPSBsaXN0X2VudHJ5 KHB1bGxfaXRlciwgc3RydWN0IGNzY2hlZDJfdmNwdSwgcnFkX2VsZW0pOworICAgICAgICAgICAg c3RydWN0IGNzY2hlZDJfdW5pdCAqIHB1bGxfc3ZjID0gbGlzdF9lbnRyeShwdWxsX2l0ZXIsIHN0 cnVjdCBjc2NoZWQyX3VuaXQsIHJxZF9lbGVtKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg aWYgKCAhaW5uZXJfbG9hZF91cGRhdGVkICkKICAgICAgICAgICAgICAgICB1cGRhdGVfc3ZjX2xv YWQob3BzLCBwdWxsX3N2YywgMCwgbm93KTsKQEAgLTI3MjAsNyArMjcxOSw3IEBAIHJldHJ5Ogog CiAgICAgbGlzdF9mb3JfZWFjaCggcHVsbF9pdGVyLCAmc3Qub3JxZC0+c3ZjICkKICAgICB7Ci0g ICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBwdWxsX3N2YyA9IGxpc3RfZW50cnkocHVsbF9p dGVyLCBzdHJ1Y3QgY3NjaGVkMl92Y3B1LCBycWRfZWxlbSk7CisgICAgICAgIHN0cnVjdCBjc2No ZWQyX3VuaXQgKiBwdWxsX3N2YyA9IGxpc3RfZW50cnkocHVsbF9pdGVyLCBzdHJ1Y3QgY3NjaGVk Ml91bml0LCBycWRfZWxlbSk7CiAgICAgICAgIAogICAgICAgICBpZiAoICF2Y3B1X2lzX21pZ3Jh dGVhYmxlKHB1bGxfc3ZjLCBzdC5scnFkKSApCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTI3 NDcsNyArMjc0Niw3IEBAIGNzY2hlZDJfdW5pdF9taWdyYXRlKAogewogICAgIHN0cnVjdCB2Y3B1 ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gdmMtPmRvbWFp bjsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qgc3ZjID0gY3NjaGVkMl92Y3B1KHZj KTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICogY29uc3Qgc3ZjID0gY3NjaGVkMl91bml0KHVu aXQpOwogICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnRycWQ7CiAgICAgc190aW1l X3Qgbm93ID0gTk9XKCk7CiAKQEAgLTI4NDgsNyArMjg0Nyw3IEBAIGNzY2hlZDJfZG9tX2NudGwo CiAgICAgICAgICAgICAvKiBVcGRhdGUgd2VpZ2h0cyBmb3IgdmNwdXMsIGFuZCBtYXhfd2VpZ2h0 IGZvciBydW5xdWV1ZXMgb24gd2hpY2ggdGhleSByZXNpZGUgKi8KICAgICAgICAgICAgIGZvcl9l YWNoX3ZjcHUgKCBkLCB2ICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzdHJ1Y3Qg Y3NjaGVkMl92Y3B1ICpzdmMgPSBjc2NoZWQyX3ZjcHUodik7CisgICAgICAgICAgICAgICAgc3Ry dWN0IGNzY2hlZDJfdW5pdCAqc3ZjID0gY3NjaGVkMl91bml0KHYtPnNjaGVkX3VuaXQpOwogICAg ICAgICAgICAgICAgIHNwaW5sb2NrX3QgKmxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2soc3ZjLT52 Y3B1KTsKIAogICAgICAgICAgICAgICAgIEFTU0VSVChzdmMtPnJxZCA9PSBjMnJxZChvcHMsIHN2 Yy0+dmNwdS0+cHJvY2Vzc29yKSk7CkBAIC0yODYyLDcgKzI4NjEsNyBAQCBjc2NoZWQyX2RvbV9j bnRsKAogICAgICAgICAvKiBDYXAgKi8KICAgICAgICAgaWYgKCBvcC0+dS5jcmVkaXQyLmNhcCAh PSAwICkKICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjOwor ICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqc3ZjOwogICAgICAgICAgICAgc3Bpbmxv Y2tfdCAqbG9jazsKIAogICAgICAgICAgICAgLyogQ2FwIGlzIG9ubHkgdmFsaWQgaWYgaXQncyBi ZWxvdyAxMDAgKiBucl9vZl92Q1BVUyAqLwpAQCAtMjg4Niw3ICsyODg1LDcgQEAgY3NjaGVkMl9k b21fY250bCgKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQs IHYgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHN2YyA9IGNzY2hlZDJfdmNwdSh2 KTsKKyAgICAgICAgICAgICAgICBzdmMgPSBjc2NoZWQyX3VuaXQodi0+c2NoZWRfdW5pdCk7CiAg ICAgICAgICAgICAgICAgbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9jayhzdmMtPnZjcHUpOwogICAg ICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICogVG9vIHNtYWxsIHF1b3RhcyB3b3Vs ZCBpbiB0aGVvcnkgY2F1c2UgYSBsb3Qgb2Ygb3ZlcmhlYWQsCkBAIC0yOTI5LDE0ICsyOTI4LDE0 IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAg ICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgICAgICAgc3ZjID0gY3NjaGVkMl92Y3B1KHYpOworICAgICAgICAgICAgICAgICAgICBzdmMg PSBjc2NoZWQyX3VuaXQodi0+c2NoZWRfdW5pdCk7CiAgICAgICAgICAgICAgICAgICAgIGxvY2sg PSB2Y3B1X3NjaGVkdWxlX2xvY2soc3ZjLT52Y3B1KTsKICAgICAgICAgICAgICAgICAgICAgaWYg KCB2LT5pc19ydW5uaW5nICkKICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGNwdSA9IHYtPnByb2Nlc3NvcjsKICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZCA9IGMycnFkKG9wcywg Y3B1KTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGN1cnJfb25fY3B1KGNwdSkg PT0gdik7CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoY3Vycl9vbl9jcHUoY3B1KS0+ dmNwdV9saXN0ID09IHYpOwogCiAgICAgICAgICAgICAgICAgICAgICAgICAvKgogICAgICAgICAg ICAgICAgICAgICAgICAgICogV2UgYXJlIHRyaWdnZXJpbmcgYSByZXNjaGVkdWxlIG9uIHRoZSB2 Q1BVJ3MKQEAgLTI5NzYsNyArMjk3NSw3IEBAIGNzY2hlZDJfZG9tX2NudGwoCiAgICAgICAgICAg ICAvKiBEaXNhYmxlIGJ1ZGdldCBhY2NvdW50aW5nIGZvciBhbGwgdGhlIHZDUFVzLiAqLwogICAg ICAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YyA9IGNzY2hlZDJfdmNwdSh2KTsKKyAgICAg ICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSBjc2NoZWQyX3VuaXQodi0+c2No ZWRfdW5pdCk7CiAgICAgICAgICAgICAgICAgc3BpbmxvY2tfdCAqbG9jayA9IHZjcHVfc2NoZWR1 bGVfbG9jayhzdmMtPnZjcHUpOwogCiAgICAgICAgICAgICAgICAgc3ZjLT5idWRnZXQgPSBTVElN RV9NQVg7CkBAIC0zMDEzLDggKzMwMTIsNyBAQCBzdGF0aWMgdm9pZAogY3NjaGVkMl9hZmZfY250 bChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0LAog ICAgICAgICAgICAgICAgICBjb25zdCBjcHVtYXNrX3QgKmhhcmQsIGNvbnN0IGNwdW1hc2tfdCAq c29mdCkKIHsKLSAgICBzdHJ1Y3QgdmNwdSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICpzdmMgPSBjc2NoZWQyX3ZjcHUodik7CisgICAgc3RydWN0IGNzY2hl ZDJfdW5pdCAqc3ZjID0gY3NjaGVkMl91bml0KHVuaXQpOwogCiAgICAgaWYgKCAhaGFyZCApCiAg ICAgICAgIHJldHVybjsKQEAgLTMxMTQsNyArMzExMiw3IEBAIHN0YXRpYyB2b2lkCiBjc2NoZWQy X3VuaXRfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3Vu aXQgKnVuaXQpCiB7CiAgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwotICAg IHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YyA9IHVuaXQtPnByaXY7CisgICAgc3RydWN0IGNzY2hl ZDJfdW5pdCAqc3ZjID0gdW5pdC0+cHJpdjsKICAgICBzdHJ1Y3QgY3NjaGVkMl9kb20gKiBjb25z dCBzZG9tID0gc3ZjLT5zZG9tOwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAKQEAgLTMxNDYsNyAr MzE0NCw3IEBAIGNzY2hlZDJfdW5pdF9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHN0YXRpYyB2b2lkCiBjc2NoZWQyX2ZyZWVfdmRh dGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQogewotICAgIHN0cnVj dCBjc2NoZWQyX3ZjcHUgKnN2YyA9IHByaXY7CisgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqc3Zj ID0gcHJpdjsKIAogICAgIHhmcmVlKHN2Yyk7CiB9CkBAIC0zMTU1LDcgKzMxNTMsNyBAQCBzdGF0 aWMgdm9pZAogY3NjaGVkMl91bml0X3JlbW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQt PnZjcHVfbGlzdDsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qgc3ZjID0gY3NjaGVk Ml92Y3B1KHZjKTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICogY29uc3Qgc3ZjID0gY3NjaGVk Ml91bml0KHVuaXQpOwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAKICAgICBBU1NFUlQoIWlzX2lk bGVfdmNwdSh2YykpOwpAQCAtMzE3Niw3ICszMTc0LDcgQEAgY3NjaGVkMl91bml0X3JlbW92ZShj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogLyog SG93IGxvbmcgc2hvdWxkIHdlIGxldCB0aGlzIHZjcHUgcnVuIGZvcj8gKi8KIHN0YXRpYyBzX3Rp bWVfdAogY3NjaGVkMl9ydW50aW1lKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNw dSwKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzbmV4dCwgc190aW1lX3Qg bm93KQorICAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnNuZXh0LCBzX3RpbWVf dCBub3cpCiB7CiAgICAgc190aW1lX3QgdGltZSwgbWluX3RpbWU7CiAgICAgaW50IHJ0X2NyZWRp dDsgLyogUHJvcG9zZWQgcnVudGltZSBtZWFzdXJlZCBpbiBjcmVkaXRzICovCkBAIC0zMjIxLDcg KzMyMTksNyBAQCBjc2NoZWQyX3J1bnRpbWUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBp bnQgY3B1LAogICAgICAqLwogICAgIGlmICggISBsaXN0X2VtcHR5KHJ1bnEpICkKICAgICB7Ci0g ICAgICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN3YWl0ID0gcnVucV9lbGVtKHJ1bnEtPm5leHQp OworICAgICAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzd2FpdCA9IHJ1bnFfZWxlbShydW5xLT5u ZXh0KTsKIAogICAgICAgICBpZiAoICEgaXNfaWRsZV92Y3B1KHN3YWl0LT52Y3B1KQogICAgICAg ICAgICAgICYmIHN3YWl0LT5jcmVkaXQgPiAwICkKQEAgLTMyNzIsMTQgKzMyNzAsMTQgQEAgY3Nj aGVkMl9ydW50aW1lKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSwKIC8qCiAg KiBGaW5kIGEgY2FuZGlkYXRlLgogICovCi1zdGF0aWMgc3RydWN0IGNzY2hlZDJfdmNwdSAqCitz dGF0aWMgc3RydWN0IGNzY2hlZDJfdW5pdCAqCiBydW5xX2NhbmRpZGF0ZShzdHJ1Y3QgY3NjaGVk Ml9ydW5xdWV1ZV9kYXRhICpycWQsCi0gICAgICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1 ICpzY3VyciwKKyAgICAgICAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKnNjdXJyLAogICAg ICAgICAgICAgICAgaW50IGNwdSwgc190aW1lX3Qgbm93LAogICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50ICpza2lwcGVkKQogewogICAgIHN0cnVjdCBsaXN0X2hlYWQgKml0ZXIsICp0ZW1wOwot ICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnNuZXh0ID0gTlVMTDsKKyAgICBzdHJ1Y3QgY3NjaGVk Ml91bml0ICpzbmV4dCA9IE5VTEw7CiAgICAgc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2ID0g Y3NjaGVkMl9wcml2KHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpKTsKICAgICBib29sIHlpZWxkID0g ZmFsc2UsIHNvZnRfYWZmX3ByZWVtcHQgPSBmYWxzZTsKIApAQCAtMzM2MCwxMiArMzM1OCwxMiBA QCBydW5xX2NhbmRpZGF0ZShzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsCiAgICAg aWYgKCB2Y3B1X3J1bm5hYmxlKHNjdXJyLT52Y3B1KSAmJiAhc29mdF9hZmZfcHJlZW1wdCApCiAg ICAgICAgIHNuZXh0ID0gc2N1cnI7CiAgICAgZWxzZQotICAgICAgICBzbmV4dCA9IGNzY2hlZDJf dmNwdShpZGxlX3ZjcHVbY3B1XSk7CisgICAgICAgIHNuZXh0ID0gY3NjaGVkMl91bml0KGlkbGVf dmNwdVtjcHVdLT5zY2hlZF91bml0KTsKIAogIGNoZWNrX3J1bnE6CiAgICAgbGlzdF9mb3JfZWFj aF9zYWZlKCBpdGVyLCB0ZW1wLCAmcnFkLT5ydW5xICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBj c2NoZWQyX3ZjcHUgKiBzdmMgPSBsaXN0X2VudHJ5KGl0ZXIsIHN0cnVjdCBjc2NoZWQyX3ZjcHUs IHJ1bnFfZWxlbSk7CisgICAgICAgIHN0cnVjdCBjc2NoZWQyX3VuaXQgKiBzdmMgPSBsaXN0X2Vu dHJ5KGl0ZXIsIHN0cnVjdCBjc2NoZWQyX3VuaXQsIHJ1bnFfZWxlbSk7CiAKICAgICAgICAgaWYg KCB1bmxpa2VseSh0Yl9pbml0X2RvbmUpICkKICAgICAgICAgewpAQCAtMzQ2NCw4ICszNDYyLDgg QEAgY3NjaGVkMl9zY2hlZHVsZSgKIHsKICAgICBjb25zdCBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nv cl9pZCgpOwogICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnJxZDsKLSAgICBzdHJ1 Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qgc2N1cnIgPSBjc2NoZWQyX3ZjcHUoY3VycmVudCk7Ci0g ICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc25leHQgPSBOVUxMOworICAgIHN0cnVjdCBjc2NoZWQy X3VuaXQgKiBjb25zdCBzY3VyciA9IGNzY2hlZDJfdW5pdChjdXJyZW50LT5zY2hlZF91bml0KTsK KyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzbmV4dCA9IE5VTEw7CiAgICAgdW5zaWduZWQgaW50 IHNraXBwZWRfdmNwdXMgPSAwOwogICAgIHN0cnVjdCB0YXNrX3NsaWNlIHJldDsKICAgICBib29s IHRpY2tsZWQ7CkBAIC0zNTQxLDcgKzM1MzksNyBAQCBjc2NoZWQyX3NjaGVkdWxlKAogICAgIHsK ICAgICAgICAgX19jbGVhcl9iaXQoX19DU0ZMQUdfdmNwdV95aWVsZCwgJnNjdXJyLT5mbGFncyk7 CiAgICAgICAgIHRyYWNlX3ZhcihUUkNfQ1NDSEVEMl9TQ0hFRF9UQVNLTEVULCAxLCAwLCBOVUxM KTsKLSAgICAgICAgc25leHQgPSBjc2NoZWQyX3ZjcHUoaWRsZV92Y3B1W2NwdV0pOworICAgICAg ICBzbmV4dCA9IGNzY2hlZDJfdW5pdChpZGxlX3ZjcHVbY3B1XS0+c2NoZWRfdW5pdCk7CiAgICAg fQogICAgIGVsc2UKICAgICAgICAgc25leHQgPSBydW5xX2NhbmRpZGF0ZShycWQsIHNjdXJyLCBj cHUsIG5vdywgJnNraXBwZWRfdmNwdXMpOwpAQCAtMzY0NCw3ICszNjQyLDcgQEAgY3NjaGVkMl9z Y2hlZHVsZSgKIH0KIAogc3RhdGljIHZvaWQKLWNzY2hlZDJfZHVtcF92Y3B1KHN0cnVjdCBjc2No ZWQyX3ByaXZhdGUgKnBydiwgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjKQorY3NjaGVkMl9kdW1w X3ZjcHUoc3RydWN0IGNzY2hlZDJfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgY3NjaGVkMl91bml0ICpz dmMpCiB7CiAgICAgcHJpbnRrKCJbJWkuJWldIGZsYWdzPSV4IGNwdT0laSIsCiAgICAgICAgICAg ICBzdmMtPnZjcHUtPmRvbWFpbi0+ZG9tYWluX2lkLApAQCAtMzY2OCw3ICszNjY2LDcgQEAgc3Rh dGljIGlubGluZSB2b2lkCiBkdW1wX3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBp bnQgY3B1KQogewogICAgIHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiA9IGNzY2hlZDJfcHJp dihvcHMpOwotICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKnN2YzsKKyAgICBzdHJ1Y3QgY3NjaGVk Ml91bml0ICpzdmM7CiAKICAgICBwcmludGsoIkNQVVslMDJkXSBydW5xPSVkLCBzaWJsaW5nPSUq cGIsIGNvcmU9JSpwYlxuIiwKICAgICAgICAgICAgY3B1LCBjMnIoY3B1KSwKQEAgLTM2NzYsNyAr MzY3NCw3IEBAIGR1bXBfcGNwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGludCBjcHUp CiAgICAgICAgICAgIENQVU1BU0tfUFIocGVyX2NwdShjcHVfY29yZV9tYXNrLCBjcHUpKSk7CiAK ICAgICAvKiBjdXJyZW50IFZDUFUgKG5vdGhpbmcgdG8gc2F5IGlmIHRoYXQncyB0aGUgaWRsZSB2 Y3B1KSAqLwotICAgIHN2YyA9IGNzY2hlZDJfdmNwdShjdXJyX29uX2NwdShjcHUpKTsKKyAgICBz dmMgPSBjc2NoZWQyX3VuaXQoY3Vycl9vbl9jcHUoY3B1KSk7CiAgICAgaWYgKCBzdmMgJiYgIWlz X2lkbGVfdmNwdShzdmMtPnZjcHUpICkKICAgICB7CiAgICAgICAgIHByaW50aygiXHRydW46ICIp OwpAQCAtMzc0OSw3ICszNzQ3LDcgQEAgY3NjaGVkMl9kdW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcykKIAogICAgICAgICBmb3JfZWFjaF92Y3B1KCBzZG9tLT5kb20sIHYgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qgc3ZjID0gY3NjaGVk Ml92Y3B1KHYpOworICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5pdCAqIGNvbnN0IHN2YyA9 IGNzY2hlZDJfdW5pdCh2LT5zY2hlZF91bml0KTsKICAgICAgICAgICAgIHNwaW5sb2NrX3QgKmxv Y2s7CiAKICAgICAgICAgICAgIGxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2soc3ZjLT52Y3B1KTsK QEAgLTM3NzgsNyArMzc3Niw3IEBAIGNzY2hlZDJfZHVtcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMpCiAgICAgICAgIHByaW50aygiUlVOUTpcbiIpOwogICAgICAgICBsaXN0X2Zvcl9lYWNo KCBpdGVyLCBydW5xICkKICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdmNw dSAqc3ZjID0gcnVucV9lbGVtKGl0ZXIpOworICAgICAgICAgICAgc3RydWN0IGNzY2hlZDJfdW5p dCAqc3ZjID0gcnVucV9lbGVtKGl0ZXIpOwogCiAgICAgICAgICAgICBpZiAoIHN2YyApCiAgICAg ICAgICAgICB7CkBAIC0zODgyLDcgKzM4ODAsNyBAQCBjc2NoZWQyX3N3aXRjaF9zY2hlZChzdHJ1 Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogICAgICAgICAgICAgICAg ICAgICAgdm9pZCAqcGRhdGEsIHZvaWQgKnZkYXRhKQogewogICAgIHN0cnVjdCBjc2NoZWQyX3By aXZhdGUgKnBydiA9IGNzY2hlZDJfcHJpdihuZXdfb3BzKTsKLSAgICBzdHJ1Y3QgY3NjaGVkMl92 Y3B1ICpzdmMgPSB2ZGF0YTsKKyAgICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSB2ZGF0YTsK ICAgICB1bnNpZ25lZCBycWk7CiAKICAgICBBU1NFUlQocGRhdGEgJiYgc3ZjICYmIGlzX2lkbGVf dmNwdShzdmMtPnZjcHUpKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfbnVsbC5jIGIv eGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKaW5kZXggM2JiM2E1MzQ1Mi4uZDdkMGU3N2NiNSAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9u dWxsLmMKQEAgLTkzLDcgKzkzLDcgQEAgREVGSU5FX1BFUl9DUFUoc3RydWN0IG51bGxfcGNwdSwg bnBjKTsKIC8qCiAgKiBWaXJ0dWFsIENQVQogICovCi1zdHJ1Y3QgbnVsbF92Y3B1IHsKK3N0cnVj dCBudWxsX3VuaXQgewogICAgIHN0cnVjdCBsaXN0X2hlYWQgd2FpdHFfZWxlbTsKICAgICBzdHJ1 Y3QgdmNwdSAqdmNwdTsKIH07CkBAIC0xMTQsOSArMTE0LDkgQEAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgbnVsbF9wcml2YXRlICpudWxsX3ByaXYoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQog ICAgIHJldHVybiBvcHMtPnNjaGVkX2RhdGE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IG51 bGxfdmNwdSAqbnVsbF92Y3B1KGNvbnN0IHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIGlubGluZSBz dHJ1Y3QgbnVsbF91bml0ICpudWxsX3VuaXQoY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiB7Ci0gICAgcmV0dXJuIHYtPnNjaGVkX3VuaXQtPnByaXY7CisgICAgcmV0dXJuIHVuaXQtPnBy aXY7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCB2Y3B1X2NoZWNrX2FmZmluaXR5KHN0cnVjdCB2 Y3B1ICp2LCB1bnNpZ25lZCBpbnQgY3B1LApAQCAtMTg5LDkgKzE4OSw5IEBAIHN0YXRpYyB2b2lk ICpudWxsX2FsbG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0LCB2b2lkICpkZCkK IHsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1Y3QgbnVs bF92Y3B1ICpudmM7CisgICAgc3RydWN0IG51bGxfdW5pdCAqbnZjOwogCi0gICAgbnZjID0geHph bGxvYyhzdHJ1Y3QgbnVsbF92Y3B1KTsKKyAgICBudmMgPSB4emFsbG9jKHN0cnVjdCBudWxsX3Vu aXQpOwogICAgIGlmICggbnZjID09IE5VTEwgKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAt MjA1LDcgKzIwNSw3IEBAIHN0YXRpYyB2b2lkICpudWxsX2FsbG9jX3ZkYXRhKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywKIAogc3RhdGljIHZvaWQgbnVsbF9mcmVlX3ZkYXRhKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcHJpdikKIHsKLSAgICBzdHJ1Y3QgbnVsbF92Y3B1 ICpudmMgPSBwcml2OworICAgIHN0cnVjdCBudWxsX3VuaXQgKm52YyA9IHByaXY7CiAKICAgICB4 ZnJlZShudmMpOwogfQpAQCAtMzYyLDkgKzM2Miw5IEBAIHN0YXRpYyBib29sIHZjcHVfZGVhc3Np Z24oc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICB1bnNp Z25lZCBpbnQgYnM7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHYtPnByb2Nlc3NvcjsKLSAgICBz dHJ1Y3QgbnVsbF92Y3B1ICp3dmM7CisgICAgc3RydWN0IG51bGxfdW5pdCAqd3ZjOwogCi0gICAg QVNTRVJUKGxpc3RfZW1wdHkoJm51bGxfdmNwdSh2KS0+d2FpdHFfZWxlbSkpOworICAgIEFTU0VS VChsaXN0X2VtcHR5KCZudWxsX3VuaXQodi0+c2NoZWRfdW5pdCktPndhaXRxX2VsZW0pKTsKICAg ICBBU1NFUlQocGVyX2NwdShucGMsIHYtPnByb2Nlc3NvcikudmNwdSA9PSB2KTsKICAgICBBU1NF UlQoIWNwdW1hc2tfdGVzdF9jcHUodi0+cHJvY2Vzc29yLCAmcHJ2LT5jcHVzX2ZyZWUpKTsKIApA QCAtNDIxLDcgKzQyMSw3IEBAIHN0YXRpYyBzcGlubG9ja190ICpudWxsX3N3aXRjaF9zY2hlZChz dHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLAogewogICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpz ZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7CiAgICAgc3RydWN0IG51bGxfcHJpdmF0 ZSAqcHJ2ID0gbnVsbF9wcml2KG5ld19vcHMpOwotICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YyA9 IHZkYXRhOworICAgIHN0cnVjdCBudWxsX3VuaXQgKm52YyA9IHZkYXRhOwogCiAgICAgQVNTRVJU KG52YyAmJiBpc19pZGxlX3ZjcHUobnZjLT52Y3B1KSk7CiAKQEAgLTQ0NCw3ICs0NDQsNyBAQCBz dGF0aWMgdm9pZCBudWxsX3VuaXRfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywK IHsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgbnVs bF9wcml2YXRlICpwcnYgPSBudWxsX3ByaXYob3BzKTsKLSAgICBzdHJ1Y3QgbnVsbF92Y3B1ICpu dmMgPSBudWxsX3ZjcHUodik7CisgICAgc3RydWN0IG51bGxfdW5pdCAqbnZjID0gbnVsbF91bml0 KHVuaXQpOwogICAgIHVuc2lnbmVkIGludCBjcHU7CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKIApA QCAtNTA4LDcgKzUwOCw3IEBAIHN0YXRpYyB2b2lkIG51bGxfdW5pdF9yZW1vdmUoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLAogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gdW5pdC0+dmNwdV9s aXN0OwogICAgIHN0cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihvcHMpOwotICAg IHN0cnVjdCBudWxsX3ZjcHUgKm52YyA9IG51bGxfdmNwdSh2KTsKKyAgICBzdHJ1Y3QgbnVsbF91 bml0ICpudmMgPSBudWxsX3VuaXQodW5pdCk7CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKIAogICAg IEFTU0VSVCghaXNfaWRsZV92Y3B1KHYpKTsKQEAgLTU0NiwxMiArNTQ2LDEyIEBAIHN0YXRpYyB2 b2lkIG51bGxfdW5pdF93YWtlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKIHsKICAgICBz dHJ1Y3QgdmNwdSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgbnVsbF9wcml2YXRl ICpwcnYgPSBudWxsX3ByaXYob3BzKTsKLSAgICBzdHJ1Y3QgbnVsbF92Y3B1ICpudmMgPSBudWxs X3ZjcHUodik7CisgICAgc3RydWN0IG51bGxfdW5pdCAqbnZjID0gbnVsbF91bml0KHVuaXQpOwog ICAgIHVuc2lnbmVkIGludCBjcHUgPSB2LT5wcm9jZXNzb3I7CiAKICAgICBBU1NFUlQoIWlzX2lk bGVfdmNwdSh2KSk7CiAKLSAgICBpZiAoIHVubGlrZWx5KGN1cnJfb25fY3B1KGNwdSkgPT0gdikg KQorICAgIGlmICggdW5saWtlbHkoY3Vycl9vbl9jcHUoY3B1KSA9PSB1bml0KSApCiAgICAgewog ICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHZjcHVfd2FrZV9ydW5uaW5nKTsKICAgICAgICAgcmV0 dXJuOwpAQCAtNjMxLDcgKzYzMSw3IEBAIHN0YXRpYyB2b2lkIG51bGxfdW5pdF9zbGVlcChjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiAgICAgICovCiAgICAgaWYgKCB1bmxpa2VseSghaXNf dmNwdV9vbmxpbmUodikpICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBudWxsX3ZjcHUgKm52YyA9 IG51bGxfdmNwdSh2KTsKKyAgICAgICAgc3RydWN0IG51bGxfdW5pdCAqbnZjID0gbnVsbF91bml0 KHVuaXQpOwogCiAgICAgICAgIGlmICggdW5saWtlbHkoIWxpc3RfZW1wdHkoJm52Yy0+d2FpdHFf ZWxlbSkpICkKICAgICAgICAgewpAQCAtNjQ0LDcgKzY0NCw3IEBAIHN0YXRpYyB2b2lkIG51bGxf dW5pdF9zbGVlcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiAgICAgfQogCiAgICAgLyog SWYgdiBpcyBub3QgYXNzaWduZWQgdG8gYSBwQ1BVLCBvciBpcyBub3QgcnVubmluZywgbm8gbmVl ZCB0byBib3RoZXIgKi8KLSAgICBpZiAoIGxpa2VseSghdGlja2xlZCAmJiBjdXJyX29uX2NwdShj cHUpID09IHYpICkKKyAgICBpZiAoIGxpa2VseSghdGlja2xlZCAmJiBjdXJyX29uX2NwdShjcHUp ID09IHVuaXQpICkKICAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEoY3B1LCBTQ0hFRFVMRV9TT0ZU SVJRKTsKIAogICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV9zbGVlcCk7CkBAIC02NjIsNyArNjYy LDcgQEAgc3RhdGljIHZvaWQgbnVsbF91bml0X21pZ3JhdGUoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLAogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0 cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihvcHMpOwotICAgIHN0cnVjdCBudWxs X3ZjcHUgKm52YyA9IG51bGxfdmNwdSh2KTsKKyAgICBzdHJ1Y3QgbnVsbF91bml0ICpudmMgPSBu dWxsX3VuaXQodW5pdCk7CiAKICAgICBBU1NFUlQoIWlzX2lkbGVfdmNwdSh2KSk7CiAKQEAgLTc1 OCw3ICs3NTgsNyBAQCBzdGF0aWMgdm9pZCBudWxsX3VuaXRfbWlncmF0ZShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsCiAjaWZuZGVmIE5ERUJVRwogc3RhdGljIGlubGluZSB2b2lkIG51bGxf dmNwdV9jaGVjayhzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBzdHJ1Y3QgbnVsbF92Y3B1ICogY29u c3QgbnZjID0gbnVsbF92Y3B1KHYpOworICAgIHN0cnVjdCBudWxsX3VuaXQgKiBjb25zdCBudmMg PSBudWxsX3VuaXQodi0+c2NoZWRfdW5pdCk7CiAgICAgc3RydWN0IG51bGxfZG9tICogY29uc3Qg bmRvbSA9IHYtPmRvbWFpbi0+c2NoZWRfcHJpdjsKIAogICAgIEJVR19PTihudmMtPnZjcHUgIT0g dik7CkBAIC03ODgsNyArNzg4LDcgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3NsaWNlIG51bGxfc2No ZWR1bGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogICAgIHVuc2lnbmVkIGludCBiczsK ICAgICBjb25zdCB1bnNpZ25lZCBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwogICAgIHN0 cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihvcHMpOwotICAgIHN0cnVjdCBudWxs X3ZjcHUgKnd2YzsKKyAgICBzdHJ1Y3QgbnVsbF91bml0ICp3dmM7CiAgICAgc3RydWN0IHRhc2tf c2xpY2UgcmV0OwogCiAgICAgU0NIRURfU1RBVF9DUkFOSyhzY2hlZHVsZSk7CkBAIC04NzQsNyAr ODc0LDcgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3NsaWNlIG51bGxfc2NoZWR1bGUoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLAogICAgIHJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUg dm9pZCBkdW1wX3ZjcHUoc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2LCBzdHJ1Y3QgbnVsbF92Y3B1 ICpudmMpCitzdGF0aWMgaW5saW5lIHZvaWQgZHVtcF92Y3B1KHN0cnVjdCBudWxsX3ByaXZhdGUg KnBydiwgc3RydWN0IG51bGxfdW5pdCAqbnZjKQogewogICAgIHByaW50aygiWyVpLiVpXSBwY3B1 PSVkIiwgbnZjLT52Y3B1LT5kb21haW4tPmRvbWFpbl9pZCwKICAgICAgICAgICAgIG52Yy0+dmNw dS0+dmNwdV9pZCwgbGlzdF9lbXB0eSgmbnZjLT53YWl0cV9lbGVtKSA/CkBAIC04ODQsNyArODg0 LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGR1bXBfdmNwdShzdHJ1Y3QgbnVsbF9wcml2YXRlICpw cnYsIHN0cnVjdCBudWxsX3ZjcHUgKm52YykKIHN0YXRpYyB2b2lkIG51bGxfZHVtcF9wY3B1KGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKIHsKICAgICBzdHJ1Y3QgbnVsbF9w cml2YXRlICpwcnYgPSBudWxsX3ByaXYob3BzKTsKLSAgICBzdHJ1Y3QgbnVsbF92Y3B1ICpudmM7 CisgICAgc3RydWN0IG51bGxfdW5pdCAqbnZjOwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAgICAg dW5zaWduZWQgbG9uZyBmbGFnczsKIApAQCAtODk4LDcgKzg5OCw3IEBAIHN0YXRpYyB2b2lkIG51 bGxfZHVtcF9wY3B1KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgaW50IGNwdSkKICAgICBw cmludGsoIlxuIik7CiAKICAgICAvKiBjdXJyZW50IFZDUFUgKG5vdGhpbmcgdG8gc2F5IGlmIHRo YXQncyB0aGUgaWRsZSB2Y3B1KSAqLwotICAgIG52YyA9IG51bGxfdmNwdShjdXJyX29uX2NwdShj cHUpKTsKKyAgICBudmMgPSBudWxsX3VuaXQoY3Vycl9vbl9jcHUoY3B1KSk7CiAgICAgaWYgKCBu dmMgJiYgIWlzX2lkbGVfdmNwdShudmMtPnZjcHUpICkKICAgICB7CiAgICAgICAgIHByaW50aygi XHRydW46ICIpOwpAQCAtOTMyLDcgKzkzMiw3IEBAIHN0YXRpYyB2b2lkIG51bGxfZHVtcChjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAgICAgICAgIHByaW50aygiXHREb21haW46ICVkXG4i LCBuZG9tLT5kb20tPmRvbWFpbl9pZCk7CiAgICAgICAgIGZvcl9lYWNoX3ZjcHUoIG5kb20tPmRv bSwgdiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0cnVjdCBudWxsX3ZjcHUgKiBjb25zdCBu dmMgPSBudWxsX3ZjcHUodik7CisgICAgICAgICAgICBzdHJ1Y3QgbnVsbF91bml0ICogY29uc3Qg bnZjID0gbnVsbF91bml0KHYtPnNjaGVkX3VuaXQpOwogICAgICAgICAgICAgc3BpbmxvY2tfdCAq bG9jazsKIAogICAgICAgICAgICAgbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9jayhudmMtPnZjcHUp OwpAQCAtOTUwLDcgKzk1MCw3IEBAIHN0YXRpYyB2b2lkIG51bGxfZHVtcChjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMpCiAgICAgc3Bpbl9sb2NrKCZwcnYtPndhaXRxX2xvY2spOwogICAgIGxp c3RfZm9yX2VhY2goIGl0ZXIsICZwcnYtPndhaXRxICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBu dWxsX3ZjcHUgKm52YyA9IGxpc3RfZW50cnkoaXRlciwgc3RydWN0IG51bGxfdmNwdSwgd2FpdHFf ZWxlbSk7CisgICAgICAgIHN0cnVjdCBudWxsX3VuaXQgKm52YyA9IGxpc3RfZW50cnkoaXRlciwg c3RydWN0IG51bGxfdW5pdCwgd2FpdHFfZWxlbSk7CiAKICAgICAgICAgaWYgKCBsb29wKysgIT0g MCApCiAgICAgICAgICAgICBwcmludGsoIiwgIik7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3Nj aGVkX3J0LmMgYi94ZW4vY29tbW9uL3NjaGVkX3J0LmMKaW5kZXggZjMwMzI3MTM5OS4uMTE1ZTRk YTI0ZCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9ydC5jCisrKyBiL3hlbi9jb21tb24v c2NoZWRfcnQuYwpAQCAtMTk1LDcgKzE5NSw3IEBAIHN0cnVjdCBydF9wcml2YXRlIHsKIC8qCiAg KiBWaXJ0dWFsIENQVQogICovCi1zdHJ1Y3QgcnRfdmNwdSB7CitzdHJ1Y3QgcnRfdW5pdCB7CiAg ICAgc3RydWN0IGxpc3RfaGVhZCBxX2VsZW07ICAgICAvKiBvbiB0aGUgcnVucS9kZXBsZXRlZHEg bGlzdCAqLwogICAgIHN0cnVjdCBsaXN0X2hlYWQgcmVwbHFfZWxlbTsgLyogb24gdGhlIHJlcGxl bmlzaG1lbnQgZXZlbnRzIGxpc3QgKi8KIApAQCAtMjMzLDkgKzIzMyw5IEBAIHN0YXRpYyBpbmxp bmUgc3RydWN0IHJ0X3ByaXZhdGUgKnJ0X3ByaXYoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz KQogICAgIHJldHVybiBvcHMtPnNjaGVkX2RhdGE7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0 IHJ0X3ZjcHUgKnJ0X3ZjcHUoY29uc3Qgc3RydWN0IHZjcHUgKnZjcHUpCitzdGF0aWMgaW5saW5l IHN0cnVjdCBydF91bml0ICpydF91bml0KGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQog ewotICAgIHJldHVybiB2Y3B1LT5zY2hlZF91bml0LT5wcml2OworICAgIHJldHVybiB1bml0LT5w cml2OwogfQogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBsaXN0X2hlYWQgKnJ0X3J1bnEoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzKQpAQCAtMjUzLDcgKzI1Myw3IEBAIHN0YXRpYyBpbmxpbmUg c3RydWN0IGxpc3RfaGVhZCAqcnRfcmVwbHEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQog ICAgIHJldHVybiAmcnRfcHJpdihvcHMpLT5yZXBscTsKIH0KIAotc3RhdGljIGlubGluZSBib29s IGhhc19leHRyYXRpbWUoY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnN2YykKK3N0YXRpYyBpbmxpbmUg Ym9vbCBoYXNfZXh0cmF0aW1lKGNvbnN0IHN0cnVjdCBydF91bml0ICpzdmMpCiB7CiAgICAgcmV0 dXJuIHN2Yy0+ZmxhZ3MgJiBSVERTX2V4dHJhdGltZTsKIH0KQEAgLTI2MywyNSArMjYzLDI1IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBoYXNfZXh0cmF0aW1lKGNvbnN0IHN0cnVjdCBydF92Y3B1ICpz dmMpCiAgKiBhbmQgdGhlIHJlcGxlbmlzaG1lbnQgZXZlbnRzIHF1ZXVlLgogICovCiBzdGF0aWMg aW50Ci12Y3B1X29uX3EoY29uc3Qgc3RydWN0IHJ0X3ZjcHUgKnN2YykKK3ZjcHVfb25fcShjb25z dCBzdHJ1Y3QgcnRfdW5pdCAqc3ZjKQogewogICAgcmV0dXJuICFsaXN0X2VtcHR5KCZzdmMtPnFf ZWxlbSk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcnRfdmNwdSAqCitzdGF0aWMgc3RydWN0IHJ0X3Vu aXQgKgogcV9lbGVtKHN0cnVjdCBsaXN0X2hlYWQgKmVsZW0pCiB7Ci0gICAgcmV0dXJuIGxpc3Rf ZW50cnkoZWxlbSwgc3RydWN0IHJ0X3ZjcHUsIHFfZWxlbSk7CisgICAgcmV0dXJuIGxpc3RfZW50 cnkoZWxlbSwgc3RydWN0IHJ0X3VuaXQsIHFfZWxlbSk7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgcnRf dmNwdSAqCitzdGF0aWMgc3RydWN0IHJ0X3VuaXQgKgogcmVwbHFfZWxlbShzdHJ1Y3QgbGlzdF9o ZWFkICplbGVtKQogewotICAgIHJldHVybiBsaXN0X2VudHJ5KGVsZW0sIHN0cnVjdCBydF92Y3B1 LCByZXBscV9lbGVtKTsKKyAgICByZXR1cm4gbGlzdF9lbnRyeShlbGVtLCBzdHJ1Y3QgcnRfdW5p dCwgcmVwbHFfZWxlbSk7CiB9CiAKIHN0YXRpYyBpbnQKLXZjcHVfb25fcmVwbHEoY29uc3Qgc3Ry dWN0IHJ0X3ZjcHUgKnN2YykKK3ZjcHVfb25fcmVwbHEoY29uc3Qgc3RydWN0IHJ0X3VuaXQgKnN2 YykKIHsKICAgICByZXR1cm4gIWxpc3RfZW1wdHkoJnN2Yy0+cmVwbHFfZWxlbSk7CiB9CkBAIC0y OTEsNyArMjkxLDcgQEAgdmNwdV9vbl9yZXBscShjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQog ICogT3RoZXJ3aXNlLCByZXR1cm4gdmFsdWUgPCAwCiAgKi8KIHN0YXRpYyBzX3RpbWVfdAotY29t cGFyZV92Y3B1X3ByaW9yaXR5KGNvbnN0IHN0cnVjdCBydF92Y3B1ICp2MSwgY29uc3Qgc3RydWN0 IHJ0X3ZjcHUgKnYyKQorY29tcGFyZV92Y3B1X3ByaW9yaXR5KGNvbnN0IHN0cnVjdCBydF91bml0 ICp2MSwgY29uc3Qgc3RydWN0IHJ0X3VuaXQgKnYyKQogewogICAgIGludCBwcmlvID0gdjItPnBy aW9yaXR5X2xldmVsIC0gdjEtPnByaW9yaXR5X2xldmVsOwogCkBAIC0zMDUsNyArMzA1LDcgQEAg Y29tcGFyZV92Y3B1X3ByaW9yaXR5KGNvbnN0IHN0cnVjdCBydF92Y3B1ICp2MSwgY29uc3Qgc3Ry dWN0IHJ0X3ZjcHUgKnYyKQogICogRGVidWcgcmVsYXRlZCBjb2RlLCBkdW1wIHZjcHUvY3B1IGlu Zm9ybWF0aW9uCiAgKi8KIHN0YXRpYyB2b2lkCi1ydF9kdW1wX3ZjcHUoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBjb25zdCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQorcnRfZHVtcF92Y3B1KGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29uc3Qgc3RydWN0IHJ0X3VuaXQgKnN2YykKIHsK ICAgICBjcHVtYXNrX3QgKmNwdXBvb2xfbWFzaywgKm1hc2s7CiAKQEAgLTM1MSwxMyArMzUxLDEz IEBAIHN0YXRpYyB2b2lkCiBydF9kdW1wX3BjcHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBpbnQgY3B1KQogewogICAgIHN0cnVjdCBydF9wcml2YXRlICpwcnYgPSBydF9wcml2KG9wcyk7 Ci0gICAgc3RydWN0IHJ0X3ZjcHUgKnN2YzsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqc3ZjOwogICAg IHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2Nr LCBmbGFncyk7CiAgICAgcHJpbnRrKCJDUFVbJTAyZF1cbiIsIGNwdSk7CiAgICAgLyogY3VycmVu dCBWQ1BVIChub3RoaW5nIHRvIHNheSBpZiB0aGF0J3MgdGhlIGlkbGUgdmNwdSkuICovCi0gICAg c3ZjID0gcnRfdmNwdShjdXJyX29uX2NwdShjcHUpKTsKKyAgICBzdmMgPSBydF91bml0KGN1cnJf b25fY3B1KGNwdSkpOwogICAgIGlmICggc3ZjICYmICFpc19pZGxlX3ZjcHUoc3ZjLT52Y3B1KSAp CiAgICAgewogICAgICAgICBydF9kdW1wX3ZjcHUob3BzLCBzdmMpOwpAQCAtMzcwLDcgKzM3MCw3 IEBAIHJ0X2R1bXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzKQogewogICAgIHN0cnVjdCBs aXN0X2hlYWQgKnJ1bnEsICpkZXBsZXRlZHEsICpyZXBscSwgKml0ZXI7CiAgICAgc3RydWN0IHJ0 X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYob3BzKTsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqc3ZjOwor ICAgIHN0cnVjdCBydF91bml0ICpzdmM7CiAgICAgc3RydWN0IHJ0X2RvbSAqc2RvbTsKICAgICB1 bnNpZ25lZCBsb25nIGZsYWdzOwogCkBAIC00MTQsNyArNDE0LDcgQEAgcnRfZHVtcChjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAKICAgICAgICAgZm9yX2VhY2hfdmNwdSAoIHNkb20tPmRv bSwgdiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN2YyA9IHJ0X3ZjcHUodik7CisgICAgICAg ICAgICBzdmMgPSBydF91bml0KHYtPnNjaGVkX3VuaXQpOwogICAgICAgICAgICAgcnRfZHVtcF92 Y3B1KG9wcywgc3ZjKTsKICAgICAgICAgfQogICAgIH0KQEAgLTQyOCw3ICs0MjgsNyBAQCBydF9k dW1wKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcykKICAqIGl0IG5lZWRzIHRvIGJlIHVwZGF0 ZWQgdG8gdGhlIGRlYWRsaW5lIG9mIHRoZSBjdXJyZW50IHBlcmlvZAogICovCiBzdGF0aWMgdm9p ZAotcnRfdXBkYXRlX2RlYWRsaW5lKHNfdGltZV90IG5vdywgc3RydWN0IHJ0X3ZjcHUgKnN2YykK K3J0X3VwZGF0ZV9kZWFkbGluZShzX3RpbWVfdCBub3csIHN0cnVjdCBydF91bml0ICpzdmMpCiB7 CiAgICAgQVNTRVJUKG5vdyA+PSBzdmMtPmN1cl9kZWFkbGluZSk7CiAgICAgQVNTRVJUKHN2Yy0+ cGVyaW9kICE9IDApOwpAQCAtNDk5LDggKzQ5OSw4IEBAIGRlYWRsaW5lX3F1ZXVlX3JlbW92ZShz dHJ1Y3QgbGlzdF9oZWFkICpxdWV1ZSwgc3RydWN0IGxpc3RfaGVhZCAqZWxlbSkKIH0KIAogc3Rh dGljIGlubGluZSBib29sCi1kZWFkbGluZV9xdWV1ZV9pbnNlcnQoc3RydWN0IHJ0X3ZjcHUgKiAo KnFlbGVtKShzdHJ1Y3QgbGlzdF9oZWFkICopLAotICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBydF92Y3B1ICpzdmMsIHN0cnVjdCBsaXN0X2hlYWQgKmVsZW0sCitkZWFkbGluZV9xdWV1ZV9p bnNlcnQoc3RydWN0IHJ0X3VuaXQgKiAoKnFlbGVtKShzdHJ1Y3QgbGlzdF9oZWFkICopLAorICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydF91bml0ICpzdmMsIHN0cnVjdCBsaXN0X2hlYWQg KmVsZW0sCiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCAqcXVldWUpCiB7 CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqaXRlcjsKQEAgLTUwOCw3ICs1MDgsNyBAQCBkZWFkbGlu ZV9xdWV1ZV9pbnNlcnQoc3RydWN0IHJ0X3ZjcHUgKiAoKnFlbGVtKShzdHJ1Y3QgbGlzdF9oZWFk ICopLAogCiAgICAgbGlzdF9mb3JfZWFjaCAoIGl0ZXIsIHF1ZXVlICkKICAgICB7Ci0gICAgICAg IHN0cnVjdCBydF92Y3B1ICogaXRlcl9zdmMgPSAoKnFlbGVtKShpdGVyKTsKKyAgICAgICAgc3Ry dWN0IHJ0X3VuaXQgKiBpdGVyX3N2YyA9ICgqcWVsZW0pKGl0ZXIpOwogICAgICAgICBpZiAoIGNv bXBhcmVfdmNwdV9wcmlvcml0eShzdmMsIGl0ZXJfc3ZjKSA+IDAgKQogICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgIHBvcysrOwpAQCAtNTIyLDE0ICs1MjIsMTQgQEAgZGVhZGxpbmVfcXVldWVf aW5zZXJ0KHN0cnVjdCBydF92Y3B1ICogKCpxZWxlbSkoc3RydWN0IGxpc3RfaGVhZCAqKSwKICAg ZGVhZGxpbmVfcXVldWVfaW5zZXJ0KCZyZXBscV9lbGVtLCAjI19fVkFfQVJHU19fKQogCiBzdGF0 aWMgaW5saW5lIHZvaWQKLXFfcmVtb3ZlKHN0cnVjdCBydF92Y3B1ICpzdmMpCitxX3JlbW92ZShz dHJ1Y3QgcnRfdW5pdCAqc3ZjKQogewogICAgIEFTU0VSVCggdmNwdV9vbl9xKHN2YykgKTsKICAg ICBsaXN0X2RlbF9pbml0KCZzdmMtPnFfZWxlbSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZAot cmVwbHFfcmVtb3ZlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUg KnN2YykKK3JlcGxxX3JlbW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBy dF91bml0ICpzdmMpCiB7CiAgICAgc3RydWN0IHJ0X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYob3Bz KTsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpyZXBscSA9IHJ0X3JlcGxxKG9wcyk7CkBAIC01NDYs NyArNTQ2LDcgQEAgcmVwbHFfcmVtb3ZlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHJ0X3ZjcHUgKnN2YykKICAgICAgICAgICovCiAgICAgICAgIGlmICggIWxpc3RfZW1wdHko cmVwbHEpICkKICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IHJ0X3ZjcHUgKnN2Y19uZXh0 ID0gcmVwbHFfZWxlbShyZXBscS0+bmV4dCk7CisgICAgICAgICAgICBzdHJ1Y3QgcnRfdW5pdCAq c3ZjX25leHQgPSByZXBscV9lbGVtKHJlcGxxLT5uZXh0KTsKICAgICAgICAgICAgIHNldF90aW1l cigmcHJ2LT5yZXBsX3RpbWVyLCBzdmNfbmV4dC0+Y3VyX2RlYWRsaW5lKTsKICAgICAgICAgfQog ICAgICAgICBlbHNlCkBAIC01NjAsNyArNTYwLDcgQEAgcmVwbHFfcmVtb3ZlKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAqIEluc2VydCBzdmMgd2l0 aG91dCBidWRnZXQgaW4gRGVwbGV0ZWRRIHVuc29ydGVkOwogICovCiBzdGF0aWMgdm9pZAotcnVu cV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqc3Zj KQorcnVucV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdW5p dCAqc3ZjKQogewogICAgIHN0cnVjdCBydF9wcml2YXRlICpwcnYgPSBydF9wcml2KG9wcyk7CiAg ICAgc3RydWN0IGxpc3RfaGVhZCAqcnVucSA9IHJ0X3J1bnEob3BzKTsKQEAgLTU3OCw3ICs1Nzgs NyBAQCBydW5xX2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92 Y3B1ICpzdmMpCiB9CiAKIHN0YXRpYyB2b2lkCi1yZXBscV9pbnNlcnQoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQorcmVwbHFfaW5zZXJ0KGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3VuaXQgKnN2YykKIHsKICAgICBzdHJ1Y3Qg bGlzdF9oZWFkICpyZXBscSA9IHJ0X3JlcGxxKG9wcyk7CiAgICAgc3RydWN0IHJ0X3ByaXZhdGUg KnBydiA9IHJ0X3ByaXYob3BzKTsKQEAgLTYwMCwxMCArNjAwLDEwIEBAIHJlcGxxX2luc2VydChj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMpCiAgKiBjaGFu Z2VkLgogICovCiBzdGF0aWMgdm9pZAotcmVwbHFfcmVpbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqc3ZjKQorcmVwbHFfcmVpbnNlcnQoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdW5pdCAqc3ZjKQogewogICAgIHN0cnVjdCBs aXN0X2hlYWQgKnJlcGxxID0gcnRfcmVwbHEob3BzKTsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqcmVh cm1fc3ZjID0gc3ZjOworICAgIHN0cnVjdCBydF91bml0ICpyZWFybV9zdmMgPSBzdmM7CiAgICAg Ym9vbF90IHJlYXJtID0gMDsKIAogICAgIEFTU0VSVCggdmNwdV9vbl9yZXBscShzdmMpICk7CkBA IC03MzQsNyArNzM0LDcgQEAgcnRfc3dpdGNoX3NjaGVkKHN0cnVjdCBzY2hlZHVsZXIgKm5ld19v cHMsIHVuc2lnbmVkIGludCBjcHUsCiAgICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQg KnZkYXRhKQogewogICAgIHN0cnVjdCBydF9wcml2YXRlICpwcnYgPSBydF9wcml2KG5ld19vcHMp OwotICAgIHN0cnVjdCBydF92Y3B1ICpzdmMgPSB2ZGF0YTsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAq c3ZjID0gdmRhdGE7CiAKICAgICBBU1NFUlQoIXBkYXRhICYmIHN2YyAmJiBpc19pZGxlX3ZjcHUo c3ZjLT52Y3B1KSk7CiAKQEAgLTg0MSwxMCArODQxLDEwIEBAIHN0YXRpYyB2b2lkICoKIHJ0X2Fs bG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQg KnVuaXQsIHZvaWQgKmRkKQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlz dDsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqc3ZjOworICAgIHN0cnVjdCBydF91bml0ICpzdmM7CiAK ICAgICAvKiBBbGxvY2F0ZSBwZXItVkNQVSBpbmZvICovCi0gICAgc3ZjID0geHphbGxvYyhzdHJ1 Y3QgcnRfdmNwdSk7CisgICAgc3ZjID0geHphbGxvYyhzdHJ1Y3QgcnRfdW5pdCk7CiAgICAgaWYg KCBzdmMgPT0gTlVMTCApCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC04NjksNyArODY5LDcg QEAgcnRfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2No ZWRfdW5pdCAqdW5pdCwgdm9pZCAqZGQpCiBzdGF0aWMgdm9pZAogcnRfZnJlZV92ZGF0YShjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQgKnByaXYpCiB7Ci0gICAgc3RydWN0IHJ0X3Zj cHUgKnN2YyA9IHByaXY7CisgICAgc3RydWN0IHJ0X3VuaXQgKnN2YyA9IHByaXY7CiAKICAgICB4 ZnJlZShzdmMpOwogfQpAQCAtODg1LDcgKzg4NSw3IEBAIHN0YXRpYyB2b2lkCiBydF91bml0X2lu c2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0 KQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKLSAgICBzdHJ1Y3Qg cnRfdmNwdSAqc3ZjID0gcnRfdmNwdSh2Yyk7CisgICAgc3RydWN0IHJ0X3VuaXQgKnN2YyA9IHJ0 X3VuaXQodW5pdCk7CiAgICAgc190aW1lX3Qgbm93OwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAK QEAgLTkxNCwxMyArOTE0LDEzIEBAIHJ0X3VuaXRfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB9CiAKIC8qCi0gKiBSZW1vdmUgcnRf dmNwdSBzdmMgZnJvbSB0aGUgb2xkIHNjaGVkdWxlciBpbiBzb3VyY2UgY3B1cG9vbC4KKyAqIFJl bW92ZSBydF91bml0IHN2YyBmcm9tIHRoZSBvbGQgc2NoZWR1bGVyIGluIHNvdXJjZSBjcHVwb29s LgogICovCiBzdGF0aWMgdm9pZAogcnRfdW5pdF9yZW1vdmUoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdmMg PSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IHJ0X3ZjcHUgKiBjb25zdCBzdmMgPSBydF92 Y3B1KHZjKTsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqIGNvbnN0IHN2YyA9IHJ0X3VuaXQodW5pdCk7 CiAgICAgc3RydWN0IHJ0X2RvbSAqIGNvbnN0IHNkb20gPSBzdmMtPnNkb207CiAgICAgc3Bpbmxv Y2tfdCAqbG9jazsKIApAQCAtOTQyLDcgKzk0Miw3IEBAIHJ0X3VuaXRfcmVtb3ZlKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAgKiBCdXJuIGJ1 ZGdldCBpbiBuYW5vc2Vjb25kIGdyYW51bGFyaXR5CiAgKi8KIHN0YXRpYyB2b2lkCi1idXJuX2J1 ZGdldChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBydF92Y3B1ICpzdmMsIHNf dGltZV90IG5vdykKK2J1cm5fYnVkZ2V0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHJ0X3VuaXQgKnN2Yywgc190aW1lX3Qgbm93KQogewogICAgIHNfdGltZV90IGRlbHRhOwog CkBAIC0xMDA2LDEzICsxMDA2LDEzIEBAIGJ1cm5fYnVkZ2V0KGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2Yywgc190aW1lX3Qgbm93KQogICogUnVuUSBpcyBz b3J0ZWQuIFBpY2sgZmlyc3Qgb25lIHdpdGhpbiBjcHVtYXNrLiBJZiBubyBvbmUsIHJldHVybiBO VUxMCiAgKiBsb2NrIGlzIGdyYWJiZWQgYmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbgogICov Ci1zdGF0aWMgc3RydWN0IHJ0X3ZjcHUgKgorc3RhdGljIHN0cnVjdCBydF91bml0ICoKIHJ1bnFf cGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0IGNwdW1hc2tfdCAqbWFzaykK IHsKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICpydW5xID0gcnRfcnVucShvcHMpOwogICAgIHN0cnVj dCBsaXN0X2hlYWQgKml0ZXI7Ci0gICAgc3RydWN0IHJ0X3ZjcHUgKnN2YyA9IE5VTEw7Ci0gICAg c3RydWN0IHJ0X3ZjcHUgKml0ZXJfc3ZjID0gTlVMTDsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqc3Zj ID0gTlVMTDsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqaXRlcl9zdmMgPSBOVUxMOwogICAgIGNwdW1h c2tfdCBjcHVfY29tbW9uOwogICAgIGNwdW1hc2tfdCAqb25saW5lOwogCkBAIC0xMDYzLDggKzEw NjMsOCBAQCBydF9zY2hlZHVsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHNfdGltZV90 IG5vdywgYm9vbF90IHRhc2tsZXRfd29ya19zY2hlZAogewogICAgIGNvbnN0IGludCBjcHUgPSBz bXBfcHJvY2Vzc29yX2lkKCk7CiAgICAgc3RydWN0IHJ0X3ByaXZhdGUgKnBydiA9IHJ0X3ByaXYo b3BzKTsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqY29uc3Qgc2N1cnIgPSBydF92Y3B1KGN1cnJlbnQp OwotICAgIHN0cnVjdCBydF92Y3B1ICpzbmV4dCA9IE5VTEw7CisgICAgc3RydWN0IHJ0X3VuaXQg KmNvbnN0IHNjdXJyID0gcnRfdW5pdChjdXJyZW50LT5zY2hlZF91bml0KTsKKyAgICBzdHJ1Y3Qg cnRfdW5pdCAqc25leHQgPSBOVUxMOwogICAgIHN0cnVjdCB0YXNrX3NsaWNlIHJldCA9IHsgLm1p Z3JhdGVkID0gMCB9OwogCiAgICAgLyogVFJBQ0UgKi8KQEAgLTEwOTAsMTMgKzEwOTAsMTMgQEAg cnRfc2NoZWR1bGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzX3RpbWVfdCBub3csIGJv b2xfdCB0YXNrbGV0X3dvcmtfc2NoZWQKICAgICBpZiAoIHRhc2tsZXRfd29ya19zY2hlZHVsZWQg KQogICAgIHsKICAgICAgICAgdHJhY2VfdmFyKFRSQ19SVERTX1NDSEVEX1RBU0tMRVQsIDEsIDAs ICBOVUxMKTsKLSAgICAgICAgc25leHQgPSBydF92Y3B1KGlkbGVfdmNwdVtjcHVdKTsKKyAgICAg ICAgc25leHQgPSBydF91bml0KGlkbGVfdmNwdVtjcHVdLT5zY2hlZF91bml0KTsKICAgICB9CiAg ICAgZWxzZQogICAgIHsKICAgICAgICAgc25leHQgPSBydW5xX3BpY2sob3BzLCBjcHVtYXNrX29m KGNwdSkpOwogICAgICAgICBpZiAoIHNuZXh0ID09IE5VTEwgKQotICAgICAgICAgICAgc25leHQg PSBydF92Y3B1KGlkbGVfdmNwdVtjcHVdKTsKKyAgICAgICAgICAgIHNuZXh0ID0gcnRfdW5pdChp ZGxlX3ZjcHVbY3B1XS0+c2NoZWRfdW5pdCk7CiAKICAgICAgICAgLyogaWYgc2N1cnIgaGFzIGhp Z2hlciBwcmlvcml0eSBhbmQgYnVkZ2V0LCBzdGlsbCBwaWNrIHNjdXJyICovCiAgICAgICAgIGlm ICggIWlzX2lkbGVfdmNwdShjdXJyZW50KSAmJgpAQCAtMTE0MiwxMiArMTE0MiwxMiBAQCBzdGF0 aWMgdm9pZAogcnRfdW5pdF9zbGVlcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVj dCBzY2hlZF91bml0ICp1bml0KQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVf bGlzdDsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqIGNvbnN0IHN2YyA9IHJ0X3ZjcHUodmMpOworICAg IHN0cnVjdCBydF91bml0ICogY29uc3Qgc3ZjID0gcnRfdW5pdCh1bml0KTsKIAogICAgIEJVR19P TiggaXNfaWRsZV92Y3B1KHZjKSApOwogICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV9zbGVlcCk7 CiAKLSAgICBpZiAoIGN1cnJfb25fY3B1KHZjLT5wcm9jZXNzb3IpID09IHZjICkKKyAgICBpZiAo IGN1cnJfb25fY3B1KHZjLT5wcm9jZXNzb3IpID09IHVuaXQgKQogICAgICAgICBjcHVfcmFpc2Vf c29mdGlycSh2Yy0+cHJvY2Vzc29yLCBTQ0hFRFVMRV9TT0ZUSVJRKTsKICAgICBlbHNlIGlmICgg dmNwdV9vbl9xKHN2YykgKQogICAgIHsKQEAgLTExNzcsMTEgKzExNzcsMTEgQEAgcnRfdW5pdF9z bGVlcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0 KQogICogbG9jayBpcyBncmFiYmVkIGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24KICAqLwog c3RhdGljIHZvaWQKLXJ1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHJ0X3ZjcHUgKm5ldykKK3J1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgc3RydWN0IHJ0X3VuaXQgKm5ldykKIHsKICAgICBzdHJ1Y3QgcnRfcHJpdmF0ZSAqcHJ2ID0g cnRfcHJpdihvcHMpOwotICAgIHN0cnVjdCBydF92Y3B1ICpsYXRlc3RfZGVhZGxpbmVfdmNwdSA9 IE5VTEw7IC8qIGxvd2VzdCBwcmlvcml0eSAqLwotICAgIHN0cnVjdCBydF92Y3B1ICppdGVyX3N2 YzsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqbGF0ZXN0X2RlYWRsaW5lX3ZjcHUgPSBOVUxMOyAvKiBs b3dlc3QgcHJpb3JpdHkgKi8KKyAgICBzdHJ1Y3QgcnRfdW5pdCAqaXRlcl9zdmM7CiAgICAgc3Ry dWN0IHZjcHUgKml0ZXJfdmM7CiAgICAgaW50IGNwdSA9IDAsIGNwdV90b190aWNrbGUgPSAwOwog ICAgIGNwdW1hc2tfdCBub3RfdGlja2xlZDsKQEAgLTEyMDIsMTQgKzEyMDIsMTQgQEAgcnVucV90 aWNrbGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgcnRfdmNwdSAqbmV3KQog ICAgIGNwdSA9IGNwdW1hc2tfdGVzdF9vcl9jeWNsZShuZXctPnZjcHUtPnByb2Nlc3NvciwgJm5v dF90aWNrbGVkKTsKICAgICB3aGlsZSAoIGNwdSE9IG5yX2NwdV9pZHMgKQogICAgIHsKLSAgICAg ICAgaXRlcl92YyA9IGN1cnJfb25fY3B1KGNwdSk7CisgICAgICAgIGl0ZXJfdmMgPSBjdXJyX29u X2NwdShjcHUpLT52Y3B1X2xpc3Q7CiAgICAgICAgIGlmICggaXNfaWRsZV92Y3B1KGl0ZXJfdmMp ICkKICAgICAgICAgewogICAgICAgICAgICAgU0NIRURfU1RBVF9DUkFOSyh0aWNrbGVkX2lkbGVf Y3B1KTsKICAgICAgICAgICAgIGNwdV90b190aWNrbGUgPSBjcHU7CiAgICAgICAgICAgICBnb3Rv IG91dDsKICAgICAgICAgfQotICAgICAgICBpdGVyX3N2YyA9IHJ0X3ZjcHUoaXRlcl92Yyk7Cisg ICAgICAgIGl0ZXJfc3ZjID0gcnRfdW5pdChpdGVyX3ZjLT5zY2hlZF91bml0KTsKICAgICAgICAg aWYgKCBsYXRlc3RfZGVhZGxpbmVfdmNwdSA9PSBOVUxMIHx8CiAgICAgICAgICAgICAgY29tcGFy ZV92Y3B1X3ByaW9yaXR5KGl0ZXJfc3ZjLCBsYXRlc3RfZGVhZGxpbmVfdmNwdSkgPCAwICkKICAg ICAgICAgICAgIGxhdGVzdF9kZWFkbGluZV92Y3B1ID0gaXRlcl9zdmM7CkBAIC0xMjU4LDEzICsx MjU4LDEzIEBAIHN0YXRpYyB2b2lkCiBydF91bml0X3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdmMg PSB1bml0LT52Y3B1X2xpc3Q7Ci0gICAgc3RydWN0IHJ0X3ZjcHUgKiBjb25zdCBzdmMgPSBydF92 Y3B1KHZjKTsKKyAgICBzdHJ1Y3QgcnRfdW5pdCAqIGNvbnN0IHN2YyA9IHJ0X3VuaXQodW5pdCk7 CiAgICAgc190aW1lX3Qgbm93OwogICAgIGJvb2xfdCBtaXNzZWQ7CiAKICAgICBCVUdfT04oIGlz X2lkbGVfdmNwdSh2YykgKTsKIAotICAgIGlmICggdW5saWtlbHkoY3Vycl9vbl9jcHUodmMtPnBy b2Nlc3NvcikgPT0gdmMpICkKKyAgICBpZiAoIHVubGlrZWx5KGN1cnJfb25fY3B1KHZjLT5wcm9j ZXNzb3IpID09IHVuaXQpICkKICAgICB7CiAgICAgICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV93 YWtlX3J1bm5pbmcpOwogICAgICAgICByZXR1cm47CkBAIC0xMzI5LDcgKzEzMjksNyBAQCBzdGF0 aWMgdm9pZAogcnRfY29udGV4dF9zYXZlZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0 cnVjdCBzY2hlZF91bml0ICp1bml0KQogewogICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZj cHVfbGlzdDsKLSAgICBzdHJ1Y3QgcnRfdmNwdSAqc3ZjID0gcnRfdmNwdSh2Yyk7CisgICAgc3Ry dWN0IHJ0X3VuaXQgKnN2YyA9IHJ0X3VuaXQodW5pdCk7CiAgICAgc3BpbmxvY2tfdCAqbG9jayA9 IHZjcHVfc2NoZWR1bGVfbG9ja19pcnEodmMpOwogCiAgICAgX19jbGVhcl9iaXQoX19SVERTX3Nj aGVkdWxlZCwgJnN2Yy0+ZmxhZ3MpOwpAQCAtMTM2MCw3ICsxMzYwLDcgQEAgcnRfZG9tX2NudGwo CiAgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWR1bGVyX29wICpvcCkKIHsKICAgICBzdHJ1Y3Qg cnRfcHJpdmF0ZSAqcHJ2ID0gcnRfcHJpdihvcHMpOwotICAgIHN0cnVjdCBydF92Y3B1ICpzdmM7 CisgICAgc3RydWN0IHJ0X3VuaXQgKnN2YzsKICAgICBzdHJ1Y3QgdmNwdSAqdjsKICAgICB1bnNp Z25lZCBsb25nIGZsYWdzOwogICAgIGludCByYyA9IDA7CkBAIC0xMzg0LDcgKzEzODQsNyBAQCBy dF9kb21fY250bCgKICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3Mp OwogICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgICAgIHsKLSAgICAgICAgICAg IHN2YyA9IHJ0X3ZjcHUodik7CisgICAgICAgICAgICBzdmMgPSBydF91bml0KHYtPnNjaGVkX3Vu aXQpOwogICAgICAgICAgICAgc3ZjLT5wZXJpb2QgPSBNSUNST1NFQ1Mob3AtPnUucnRkcy5wZXJp b2QpOyAvKiB0cmFuc2ZlciB0byBuYW5vc2VjICovCiAgICAgICAgICAgICBzdmMtPmJ1ZGdldCA9 IE1JQ1JPU0VDUyhvcC0+dS5ydGRzLmJ1ZGdldCk7CiAgICAgICAgIH0KQEAgLTE0MTAsNyArMTQx MCw3IEBAIHJ0X2RvbV9jbnRsKAogICAgICAgICAgICAgaWYgKCBvcC0+Y21kID09IFhFTl9ET01D VExfU0NIRURPUF9nZXR2Y3B1aW5mbyApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg c3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywgZmxhZ3MpOwotICAgICAgICAgICAgICAgIHN2 YyA9IHJ0X3ZjcHUoZC0+dmNwdVtsb2NhbF9zY2hlZC52Y3B1aWRdKTsKKyAgICAgICAgICAgICAg ICBzdmMgPSBydF91bml0KGQtPnZjcHVbbG9jYWxfc2NoZWQudmNwdWlkXS0+c2NoZWRfdW5pdCk7 CiAgICAgICAgICAgICAgICAgbG9jYWxfc2NoZWQudS5ydGRzLmJ1ZGdldCA9IHN2Yy0+YnVkZ2V0 IC8gTUlDUk9TRUNTKDEpOwogICAgICAgICAgICAgICAgIGxvY2FsX3NjaGVkLnUucnRkcy5wZXJp b2QgPSBzdmMtPnBlcmlvZCAvIE1JQ1JPU0VDUygxKTsKICAgICAgICAgICAgICAgICBpZiAoIGhh c19leHRyYXRpbWUoc3ZjKSApCkBAIC0xNDM4LDcgKzE0MzgsNyBAQCBydF9kb21fY250bCgKICAg ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2 LT5sb2NrLCBmbGFncyk7Ci0gICAgICAgICAgICAgICAgc3ZjID0gcnRfdmNwdShkLT52Y3B1W2xv Y2FsX3NjaGVkLnZjcHVpZF0pOworICAgICAgICAgICAgICAgIHN2YyA9IHJ0X3VuaXQoZC0+dmNw dVtsb2NhbF9zY2hlZC52Y3B1aWRdLT5zY2hlZF91bml0KTsKICAgICAgICAgICAgICAgICBzdmMt PnBlcmlvZCA9IHBlcmlvZDsKICAgICAgICAgICAgICAgICBzdmMtPmJ1ZGdldCA9IGJ1ZGdldDsK ICAgICAgICAgICAgICAgICBpZiAoIGxvY2FsX3NjaGVkLnUucnRkcy5mbGFncyAmIFhFTl9ET01D VExfU0NIRURSVF9leHRyYSApCkBAIC0xNDcxLDcgKzE0NzEsNyBAQCBzdGF0aWMgdm9pZCByZXBs X3RpbWVyX2hhbmRsZXIodm9pZCAqZGF0YSl7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqcmVwbHEg PSBydF9yZXBscShvcHMpOwogICAgIHN0cnVjdCBsaXN0X2hlYWQgKnJ1bnEgPSBydF9ydW5xKG9w cyk7CiAgICAgc3RydWN0IGxpc3RfaGVhZCAqaXRlciwgKnRtcDsKLSAgICBzdHJ1Y3QgcnRfdmNw dSAqc3ZjOworICAgIHN0cnVjdCBydF91bml0ICpzdmM7CiAgICAgTElTVF9IRUFEKHRtcF9yZXBs cSk7CiAKICAgICBzcGluX2xvY2tfaXJxKCZwcnYtPmxvY2spOwpAQCAtMTUxMywxMCArMTUxMywx MCBAQCBzdGF0aWMgdm9pZCByZXBsX3RpbWVyX2hhbmRsZXIodm9pZCAqZGF0YSl7CiAgICAgewog ICAgICAgICBzdmMgPSByZXBscV9lbGVtKGl0ZXIpOwogCi0gICAgICAgIGlmICggY3Vycl9vbl9j cHUoc3ZjLT52Y3B1LT5wcm9jZXNzb3IpID09IHN2Yy0+dmNwdSAmJgorICAgICAgICBpZiAoIGN1 cnJfb25fY3B1KHN2Yy0+dmNwdS0+cHJvY2Vzc29yKSA9PSBzdmMtPnZjcHUtPnNjaGVkX3VuaXQg JiYKICAgICAgICAgICAgICAhbGlzdF9lbXB0eShydW5xKSApCiAgICAgICAgIHsKLSAgICAgICAg ICAgIHN0cnVjdCBydF92Y3B1ICpuZXh0X29uX3J1bnEgPSBxX2VsZW0ocnVucS0+bmV4dCk7Cisg ICAgICAgICAgICBzdHJ1Y3QgcnRfdW5pdCAqbmV4dF9vbl9ydW5xID0gcV9lbGVtKHJ1bnEtPm5l eHQpOwogCiAgICAgICAgICAgICBpZiAoIGNvbXBhcmVfdmNwdV9wcmlvcml0eShzdmMsIG5leHRf b25fcnVucSkgPCAwICkKICAgICAgICAgICAgICAgICBydW5xX3RpY2tsZShvcHMsIG5leHRfb25f cnVucSk7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMgYi94ZW4vY29tbW9uL3Nj aGVkdWxlLmMKaW5kZXggYjdjZGMxNWJkMS4uODY1YzUwYjM3OCAxMDA2NDQKLS0tIGEveGVuL2Nv bW1vbi9zY2hlZHVsZS5jCisrKyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwpAQCAtMzkzLDcgKzM5 Myw3IEBAIGludCBzY2hlZF9pbml0X3ZjcHUoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBw cm9jZXNzb3IpCiAgICAgLyogSWRsZSBWQ1BVcyBhcmUgc2NoZWR1bGVkIGltbWVkaWF0ZWx5LCBz byBkb24ndCBwdXQgdGhlbSBpbiBydW5xdWV1ZS4gKi8KICAgICBpZiAoIGlzX2lkbGVfZG9tYWlu KGQpICkKICAgICB7Ci0gICAgICAgIHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgdi0+cHJvY2Vzc29y KS5jdXJyID0gdjsKKyAgICAgICAgcGVyX2NwdShzY2hlZHVsZV9kYXRhLCB2LT5wcm9jZXNzb3Ip LmN1cnIgPSB1bml0OwogICAgICAgICB2LT5pc19ydW5uaW5nID0gMTsKICAgICB9CiAgICAgZWxz ZQpAQCAtMTYwNiw3ICsxNjA2LDcgQEAgc3RhdGljIHZvaWQgc2NoZWR1bGUodm9pZCkKIAogICAg IG5leHQgPSBuZXh0X3NsaWNlLnRhc2s7CiAKLSAgICBzZC0+Y3VyciA9IG5leHQ7CisgICAgc2Qt PmN1cnIgPSBuZXh0LT5zY2hlZF91bml0OwogCiAgICAgaWYgKCBuZXh0X3NsaWNlLnRpbWUgPj0g MCApIC8qIC12ZSBtZWFucyBubyBsaW1pdCAqLwogICAgICAgICBzZXRfdGltZXIoJnNkLT5zX3Rp bWVyLCBub3cgKyBuZXh0X3NsaWNlLnRpbWUpOwpAQCAtMTc0OCw3ICsxNzQ4LDcgQEAgc3RhdGlj IGludCBjcHVfc2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKICAgICAgKiBhbGxvY2F0ZWQu CiAgICAgICovCiAKLSAgICBzZC0+Y3VyciA9IGlkbGVfdmNwdVtjcHVdOworICAgIHNkLT5jdXJy ID0gaWRsZV92Y3B1W2NwdV0tPnNjaGVkX3VuaXQ7CiAKICAgICBzZC0+c2NoZWRfcHJpdiA9IE5V TEw7CiAKQEAgLTE5MTYsNyArMTkxNiw3IEBAIHZvaWQgX19pbml0IHNjaGVkdWxlcl9pbml0KHZv aWQpCiAgICAgaWRsZV9kb21haW4tPm1heF92Y3B1cyA9IG5yX2NwdV9pZHM7CiAgICAgaWYgKCB2 Y3B1X2NyZWF0ZShpZGxlX2RvbWFpbiwgMCwgMCkgPT0gTlVMTCApCiAgICAgICAgIEJVRygpOwot ICAgIHRoaXNfY3B1KHNjaGVkdWxlX2RhdGEpLmN1cnIgPSBpZGxlX3ZjcHVbMF07CisgICAgdGhp c19jcHUoc2NoZWR1bGVfZGF0YSkuY3VyciA9IGlkbGVfdmNwdVswXS0+c2NoZWRfdW5pdDsKIH0K IAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oIGIveGVuL2luY2x1 ZGUveGVuL3NjaGVkLWlmLmgKaW5kZXggMmQ5ZDc3YzZkMy4uNmFhOGQxMjVjOCAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVk LWlmLmgKQEAgLTM2LDcgKzM2LDcgQEAgZXh0ZXJuIGludCBzY2hlZF9yYXRlbGltaXRfdXM7CiBz dHJ1Y3Qgc2NoZWR1bGVfZGF0YSB7CiAgICAgc3BpbmxvY2tfdCAgICAgICAgICpzY2hlZHVsZV9s b2NrLAogICAgICAgICAgICAgICAgICAgICAgICBfbG9jazsKLSAgICBzdHJ1Y3QgdmNwdSAgICAg ICAgKmN1cnI7ICAgICAgICAgICAvKiBjdXJyZW50IHRhc2sgICAgICAgICAgICAgICAgICAgICov CisgICAgc3RydWN0IHNjaGVkX3VuaXQgICpjdXJyOwogICAgIHZvaWQgICAgICAgICAgICAgICAq c2NoZWRfcHJpdjsKICAgICBzdHJ1Y3QgdGltZXIgICAgICAgIHNfdGltZXI7ICAgICAgICAvKiBz Y2hlZHVsaW5nIHRpbWVyICAgICAgICAgICAgICAgICovCiAgICAgYXRvbWljX3QgICAgICAgICAg ICB1cmdlbnRfY291bnQ7ICAgLyogaG93IG1hbnkgdXJnZW50IHZjcHVzICAgICAgICAgICAqLwot LSAKMi4xNi40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcK aHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==