From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7F615C388F3 for ; Fri, 27 Sep 2019 07:01:26 +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 47B9D2146E for ; Fri, 27 Sep 2019 07:01:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 47B9D2146E 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 1iDkFZ-000395-3v; Fri, 27 Sep 2019 07:01:09 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1iDkFX-00038t-P5 for xen-devel@lists.xenproject.org; Fri, 27 Sep 2019 07:01:07 +0000 X-Inumbo-ID: 8d495248-e0f4-11e9-97fb-bc764e2007e4 Received: from mx1.suse.de (unknown [195.135.220.15]) by localhost (Halon) with ESMTPS id 8d495248-e0f4-11e9-97fb-bc764e2007e4; Fri, 27 Sep 2019 07:00:56 +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 490CBAE61; Fri, 27 Sep 2019 07:00:55 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Fri, 27 Sep 2019 09:00:05 +0200 Message-Id: <20190927070050.12405-2-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190927070050.12405-1-jgross@suse.com> References: <20190927070050.12405-1-jgross@suse.com> Subject: [Xen-devel] [PATCH v4 01/46] xen/sched: use new sched_unit instead of vcpu in scheduler interfaces 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" SW4gb3JkZXIgdG8gcHJlcGFyZSBjb3JlLSBhbmQgc29ja2V0LXNjaGVkdWxpbmcgdXNlIGEgbmV3 IHN0cnVjdApzY2hlZF91bml0IGluc3RlYWQgb2Ygc3RydWN0IHZjcHUgZm9yIGludGVyZmFjZXMg b2YgdGhlIGRpZmZlcmVudApzY2hlZHVsZXJzLgoKUmVuYW1lIHRoZSBwZXItc2NoZWR1bGVyIGZ1 bmN0aW9ucyBpbnNlcnRfdmNwdSBhbmQgcmVtb3ZlX3ZjcHUgdG8KaW5zZXJ0X3VuaXQgYW5kIHJl bW92ZV91bml0IHRvIHJlZmxlY3QgdGhlIGNoYW5nZSBvZiB0aGUgcGFyYW1ldGVyLgpJbiB0aGUg c2NoZWR1bGVycyByZW5hbWUgbG9jYWwgZnVuY3Rpb25zIHN3aXRjaGVkIHRvIHNjaGVkX3VuaXQs IHRvby4KClJlbmFtZSBhbGxvY192ZGF0YSBhbmQgZnJlZV92ZGF0YSBmdW5jdGlvbnMgdG8gYWxs b2NfdWRhdGEgYW5kCmZyZWVfdWRhdGEuCgpGb3Igbm93IHRoaXMgbmV3IHN0cnVjdCB3aWxsIGNv bnRhaW4gYSBkb21haW4sIGEgdmNwdSBwb2ludGVyIGFuZCBhCnVuaXRfaWQgb25seSBhbmQgaXMg YWxsb2NhdGVkIGF0IHZjcHUgY3JlYXRpb24gdGltZS4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4g R3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IERhcmlvIEZhZ2dpb2xpIDxkZmFn Z2lvbGlAc3VzZS5jb20+Ci0tLQpSRkMgVjI6Ci0gbW92ZSBkZWZpbml0aW9uIG9mIHN0cnVjdCBz Y2hlZF91bml0IHRvIHNjaGVkLmggKEFuZHJldyBDb29wZXIpClYxOgotIHJlbmFtZSAiaXRlbSIg dG8gInVuaXQiIChHZW9yZ2UgRHVubGFwKQpWMjoKLSByZW5hbWUgdW5pdC0+dmNwdSB0byB1bml0 LT52Y3B1X2xpc3QgKEphbiBCZXVsaWNoKQotIG1lcmdlIHBhdGNoIHdpdGggbmV4dCBvbmUgaW4g c2VyaWVzIChEYXJpbyBGYWdnaW9saSkKLSBtZXJnZSBwYXRjaCBpbnRyb2R1Y2luZyBkb21haW4g cG9pbnRlciBpbiBzY2hlZF91bml0IGludG8gdGhpcyBvbmUKICAoSmFuIEJldWxpY2gpCi0gbWVy Z2UgcGF0Y2ggaW50cm9kdWNpbmcgdW5pdF9pZCBpbnRvIHRoaXMgb25lClYzOgotIG1ha2UgdW5p dCBwYXJhbWV0ZXIgb2YgcGlja19jcHUgY29uc3QgKEphbiBCZXVsaWNoKQotIHNldCB2Y3B1LT51 bml0IG9ubHkgYWZ0ZXIgaW50aWFsaXppbmcgdW5pdGksIGZyZWVpbmcgdW5pdCBvbmx5IGFmdGVy CiAgY2xlYXJpbmcgdmNwdS0+dW5pdCAoSmFuIEJldWxpY2gpCi0gcmVtb3ZlIHByZS1kZWZpbml0 aW9uIG9mIHN0cnVjdCBzY2hlZF91bml0IGluIHNjaGVkLmggKEphbiBCZXVsaWNoKQotIG1ha2Ug dW5pdF9pZCB1bnNpZ25lZCBpbnQgKEphbiBCZXVsaWNoKQpWNDoKLSByZW5hbWUgYWxsb2NfdmRh dGEgYW5kIGZyZWVfdmRhdGEgKEphbiBCZXVsaWNoKQotLS0KIHhlbi9jb21tb24vc2NoZWRfYXJp bmM2NTMuYyB8IDM2ICsrKysrKysrKystLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5j ICAgfCA0NyArKysrKysrKysrKysrLS0tLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIu YyAgfCA2MyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9zY2hlZF9u dWxsLmMgICAgIHwgNDYgKysrKysrKysrKysrKy0tLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX3J0 LmMgICAgICAgfCAzOSArKysrKysrKysrLS0tLS0tLS0KIHhlbi9jb21tb24vc2NoZWR1bGUuYyAg ICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUv eGVuL3NjaGVkLWlmLmggIHwgOTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgfCAgNyArKysrCiA4IGZpbGVz IGNoYW5nZWQsIDI0NyBpbnNlcnRpb25zKCspLCAxNjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jIGIveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1 My5jCmluZGV4IGQ0N2I3NDdlZjQuLjdmOWVmMzZiNDIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24v c2NoZWRfYXJpbmM2NTMuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMKQEAgLTM3 NiwxMyArMzc2LDE2IEBAIGE2NTNzY2hlZF9kZWluaXQoc3RydWN0IHNjaGVkdWxlciAqb3BzKQog ICogVGhpcyBmdW5jdGlvbiBhbGxvY2F0ZXMgc2NoZWR1bGVyLXNwZWNpZmljIGRhdGEgZm9yIGEg VkNQVQogICoKICAqIEBwYXJhbSBvcHMgICAgICAgUG9pbnRlciB0byB0aGlzIGluc3RhbmNlIG9m IHRoZSBzY2hlZHVsZXIgc3RydWN0dXJlCisgKiBAcGFyYW0gdW5pdCAgICAgIFBvaW50ZXIgdG8g c3RydWN0IHNjaGVkX3VuaXQKICAqCiAgKiBAcmV0dXJuICAgICAgICAgIFBvaW50ZXIgdG8gdGhl IGFsbG9jYXRlZCBkYXRhCiAgKi8KIHN0YXRpYyB2b2lkICoKLWE2NTNzY2hlZF9hbGxvY192ZGF0 YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2Yywgdm9pZCAqZGQp CithNjUzc2NoZWRfYWxsb2NfdWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3Qgc2NoZWRfdW5pdCAqdW5pdCwKKyAgICAgICAgICAgICAgICAgICAgICB2b2lkICpkZCkKIHsK ICAgICBhNjUzc2NoZWRfcHJpdl90ICpzY2hlZF9wcml2ID0gU0NIRURfUFJJVihvcHMpOworICAg IHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBhcmluYzY1M192Y3B1X3Qg KnN2YzsKICAgICB1bnNpZ25lZCBpbnQgZW50cnk7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsK QEAgLTQ0MCw3ICs0NDMsNyBAQCBhNjUzc2NoZWRfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMsIHZvaWQgKmRkKQogICogQHBhcmFtIG9wcyAg ICAgICBQb2ludGVyIHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIHNjaGVkdWxlciBzdHJ1Y3R1cmUK ICAqLwogc3RhdGljIHZvaWQKLWE2NTNzY2hlZF9mcmVlX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgdm9pZCAqcHJpdikKK2E2NTNzY2hlZF9mcmVlX3VkYXRhKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcHJpdikKIHsKICAgICBhNjUzc2NoZWRfcHJpdl90ICpz Y2hlZF9wcml2ID0gU0NIRURfUFJJVihvcHMpOwogICAgIGFyaW5jNjUzX3ZjcHVfdCAqYXYgPSBw cml2OwpAQCAtNDY0LDExICs0NjcsMTMgQEAgYTY1M3NjaGVkX2ZyZWVfdmRhdGEoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQogICogWGVuIHNjaGVkdWxlciBjYWxsYmFj ayBmdW5jdGlvbiB0byBzbGVlcCBhIFZDUFUKICAqCiAgKiBAcGFyYW0gb3BzICAgICAgIFBvaW50 ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1bGVyIHN0cnVjdHVyZQotICogQHBhcmFt IHZjICAgICAgICBQb2ludGVyIHRvIHRoZSBWQ1BVIHN0cnVjdHVyZSBmb3IgdGhlIGN1cnJlbnQg ZG9tYWluCisgKiBAcGFyYW0gdW5pdCAgICAgIFBvaW50ZXIgdG8gc3RydWN0IHNjaGVkX3VuaXQK ICAqLwogc3RhdGljIHZvaWQKLWE2NTNzY2hlZF92Y3B1X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQorYTY1M3NjaGVkX3VuaXRfc2xlZXAoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKKyAgICBz dHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7CisKICAgICBpZiAoIEFWQ1BVKHZjKSAh PSBOVUxMICkKICAgICAgICAgQVZDUFUodmMpLT5hd2FrZSA9IDA7CiAKQEAgLTQ4NCwxMSArNDg5 LDEzIEBAIGE2NTNzY2hlZF92Y3B1X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywg c3RydWN0IHZjcHUgKnZjKQogICogWGVuIHNjaGVkdWxlciBjYWxsYmFjayBmdW5jdGlvbiB0byB3 YWtlIHVwIGEgVkNQVQogICoKICAqIEBwYXJhbSBvcHMgICAgICAgUG9pbnRlciB0byB0aGlzIGlu c3RhbmNlIG9mIHRoZSBzY2hlZHVsZXIgc3RydWN0dXJlCi0gKiBAcGFyYW0gdmMgICAgICAgIFBv aW50ZXIgdG8gdGhlIFZDUFUgc3RydWN0dXJlIGZvciB0aGUgY3VycmVudCBkb21haW4KKyAqIEBw YXJhbSB1bml0ICAgICAgUG9pbnRlciB0byBzdHJ1Y3Qgc2NoZWRfdW5pdAogICovCiBzdGF0aWMg dm9pZAotYTY1M3NjaGVkX3ZjcHVfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0 cnVjdCB2Y3B1ICp2YykKK2E2NTNzY2hlZF91bml0X3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKKyAgICBzdHJ1Y3QgdmNwdSAqdmMg PSB1bml0LT52Y3B1X2xpc3Q7CisKICAgICBpZiAoIEFWQ1BVKHZjKSAhPSBOVUxMICkKICAgICAg ICAgQVZDUFUodmMpLT5hd2FrZSA9IDE7CiAKQEAgLTYwMywxMyArNjEwLDE0IEBAIGE2NTNzY2hl ZF9kb19zY2hlZHVsZSgKICAqIFhlbiBzY2hlZHVsZXIgY2FsbGJhY2sgZnVuY3Rpb24gdG8gc2Vs ZWN0IGEgQ1BVIGZvciB0aGUgVkNQVSB0byBydW4gb24KICAqCiAgKiBAcGFyYW0gb3BzICAgICAg IFBvaW50ZXIgdG8gdGhpcyBpbnN0YW5jZSBvZiB0aGUgc2NoZWR1bGVyIHN0cnVjdHVyZQotICog QHBhcmFtIHYgICAgICAgICBQb2ludGVyIHRvIHRoZSBWQ1BVIHN0cnVjdHVyZSBmb3IgdGhlIGN1 cnJlbnQgZG9tYWluCisgKiBAcGFyYW0gdW5pdCAgICAgIFBvaW50ZXIgdG8gc3RydWN0IHNjaGVk X3VuaXQKICAqCiAgKiBAcmV0dXJuICAgICAgICAgIE51bWJlciBvZiBzZWxlY3RlZCBwaHlzaWNh bCBDUFUKICAqLwogc3RhdGljIGludAotYTY1M3NjaGVkX3BpY2tfY3B1KGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQorYTY1M3NjaGVkX3BpY2tfY3B1KGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7 CisgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwogICAgIGNwdW1hc2tfdCAq b25saW5lOwogICAgIHVuc2lnbmVkIGludCBjcHU7CiAKQEAgLTcwNSwxNCArNzEzLDE0IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyIHNjaGVkX2FyaW5jNjUzX2RlZiA9IHsKICAgICAu aW5pdCAgICAgICAgICAgPSBhNjUzc2NoZWRfaW5pdCwKICAgICAuZGVpbml0ICAgICAgICAgPSBh NjUzc2NoZWRfZGVpbml0LAogCi0gICAgLmZyZWVfdmRhdGEgICAgID0gYTY1M3NjaGVkX2ZyZWVf dmRhdGEsCi0gICAgLmFsbG9jX3ZkYXRhICAgID0gYTY1M3NjaGVkX2FsbG9jX3ZkYXRhLAorICAg IC5mcmVlX3VkYXRhICAgICA9IGE2NTNzY2hlZF9mcmVlX3VkYXRhLAorICAgIC5hbGxvY191ZGF0 YSAgICA9IGE2NTNzY2hlZF9hbGxvY191ZGF0YSwKIAotICAgIC5pbnNlcnRfdmNwdSAgICA9IE5V TEwsCi0gICAgLnJlbW92ZV92Y3B1ICAgID0gTlVMTCwKKyAgICAuaW5zZXJ0X3VuaXQgICAgPSBO VUxMLAorICAgIC5yZW1vdmVfdW5pdCAgICA9IE5VTEwsCiAKLSAgICAuc2xlZXAgICAgICAgICAg PSBhNjUzc2NoZWRfdmNwdV9zbGVlcCwKLSAgICAud2FrZSAgICAgICAgICAgPSBhNjUzc2NoZWRf dmNwdV93YWtlLAorICAgIC5zbGVlcCAgICAgICAgICA9IGE2NTNzY2hlZF91bml0X3NsZWVwLAor ICAgIC53YWtlICAgICAgICAgICA9IGE2NTNzY2hlZF91bml0X3dha2UsCiAgICAgLnlpZWxkICAg ICAgICAgID0gTlVMTCwKICAgICAuY29udGV4dF9zYXZlZCAgPSBOVUxMLAogCmRpZmYgLS1naXQg YS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwpp bmRleCA3MGZlNzE4MTI3Li5mN2M3NTFjMmU5IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVk X2NyZWRpdC5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKQEAgLTg1NCwxNSArODU0 LDE2IEBAIF9jc2NoZWRfY3B1X3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3QgdmNwdSAqdmMsIGJvb2xfdCBjb21taXQpCiB9CiAKIHN0YXRpYyBpbnQKLWNzY2hlZF9jcHVf cGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hl ZF9jcHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0IHN0cnVjdCBzY2hl ZF91bml0ICp1bml0KQogeworICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsK ICAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKnN2YyA9IENTQ0hFRF9WQ1BVKHZjKTsKIAogICAgIC8q CiAgICAgICogV2UgaGF2ZSBiZWVuIGNhbGxlZCBieSB2Y3B1X21pZ3JhdGUoKSAoaW4gc2NoZWR1 bGUuYyksIGFzIHBhcnQKICAgICAgKiBvZiB0aGUgcHJvY2VzcyBvZiBzZWVpbmcgaWYgdmMgY2Fu IGJlIG1pZ3JhdGVkIHRvIGFub3RoZXIgcGNwdS4KICAgICAgKiBXZSBtYWtlIGEgbm90ZSBhYm91 dCB0aGlzIGluIHN2Yy0+ZmxhZ3Mgc28gdGhhdCBsYXRlciwgaW4KLSAgICAgKiBjc2NoZWRfdmNw dV93YWtlKCkgKHN0aWxsIGNhbGxlZCBmcm9tIHZjcHVfbWlncmF0ZSgpKSB3ZSB3b24ndAorICAg ICAqIGNzY2hlZF91bml0X3dha2UoKSAoc3RpbGwgY2FsbGVkIGZyb20gdmNwdV9taWdyYXRlKCkp IHdlIHdvbid0CiAgICAgICogZ2V0IGJvb3N0ZWQsIHdoaWNoIHdlIGRvbid0IGRlc2VydmUgYXMg d2UgYXJlICJvbmx5IiBtaWdyYXRpbmcuCiAgICAgICovCiAgICAgc2V0X2JpdChDU0NIRURfRkxB R19WQ1BVX01JR1JBVElORywgJnN2Yy0+ZmxhZ3MpOwpAQCAtOTkwLDggKzk5MSwxMCBAQCBjc2No ZWRfdmNwdV9hY2N0KHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2LCB1bnNpZ25lZCBpbnQgY3B1 KQogfQogCiBzdGF0aWMgdm9pZCAqCi1jc2NoZWRfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMsIHZvaWQgKmRkKQorY3NjaGVkX2FsbG9jX3Vk YXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQs CisgICAgICAgICAgICAgICAgICAgdm9pZCAqZGQpCiB7CisgICAgc3RydWN0IHZjcHUgKnZjID0g dW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqc3ZjOwogCiAgICAgLyog QWxsb2NhdGUgcGVyLVZDUFUgaW5mbyAqLwpAQCAtMTAxMSw4ICsxMDE0LDkgQEAgY3NjaGVkX2Fs bG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjLCB2 b2lkICpkZCkKIH0KIAogc3RhdGljIHZvaWQKLWNzY2hlZF92Y3B1X2luc2VydChjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hlZF91bml0X2luc2VydChj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewor ICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgY3NjaGVk X3ZjcHUgKnN2YyA9IHZjLT5zY2hlZF9wcml2OwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CiAKQEAg LTEwMjEsNyArMTAyNSw3IEBAIGNzY2hlZF92Y3B1X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKICAgICAvKiBjc2NoZWRfY3B1X3BpY2soKSBsb29r cyBpbiB2Yy0+cHJvY2Vzc29yJ3MgcnVucSwgc28gd2UgbmVlZCB0aGUgbG9jay4gKi8KICAgICBs b2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2Yyk7CiAKLSAgICB2Yy0+cHJvY2Vzc29yID0g Y3NjaGVkX2NwdV9waWNrKG9wcywgdmMpOworICAgIHZjLT5wcm9jZXNzb3IgPSBjc2NoZWRfY3B1 X3BpY2sob3BzLCB1bml0KTsKIAogICAgIHNwaW5fdW5sb2NrX2lycShsb2NrKTsKIApAQCAtMTAz Niw3ICsxMDQwLDcgQEAgY3NjaGVkX3ZjcHVfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywgc3RydWN0IHZjcHUgKnZjKQogfQogCiBzdGF0aWMgdm9pZAotY3NjaGVkX2ZyZWVfdmRh dGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQorY3NjaGVkX2ZyZWVf dWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQogewogICAgIHN0 cnVjdCBjc2NoZWRfdmNwdSAqc3ZjID0gcHJpdjsKIApAQCAtMTA0Niw5ICsxMDUwLDEwIEBAIGNz Y2hlZF9mcmVlX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcHJpdikK IH0KIAogc3RhdGljIHZvaWQKLWNzY2hlZF92Y3B1X3JlbW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hlZF91bml0X3JlbW92ZShjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogewogICAgIHN0cnVj dCBjc2NoZWRfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEX1BSSVYob3BzKTsKKyAgICBzdHJ1Y3QgdmNw dSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7CiAgICAgc3RydWN0IGNzY2hlZF92Y3B1ICogY29uc3Qg c3ZjID0gQ1NDSEVEX1ZDUFUodmMpOwogICAgIHN0cnVjdCBjc2NoZWRfZG9tICogY29uc3Qgc2Rv bSA9IHN2Yy0+c2RvbTsKIApAQCAtMTA3Myw4ICsxMDc4LDkgQEAgY3NjaGVkX3ZjcHVfcmVtb3Zl KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogfQogCiBzdGF0 aWMgdm9pZAotY3NjaGVkX3ZjcHVfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBz dHJ1Y3QgdmNwdSAqdmMpCitjc2NoZWRfdW5pdF9zbGVlcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogeworICAgIHN0cnVjdCB2Y3B1ICp2YyA9 IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgY3NjaGVkX3ZjcHUgKiBjb25zdCBzdmMgPSBD U0NIRURfVkNQVSh2Yyk7CiAgICAgdW5zaWduZWQgaW50IGNwdSA9IHZjLT5wcm9jZXNzb3I7CiAK QEAgLTEwOTcsOCArMTEwMyw5IEBAIGNzY2hlZF92Y3B1X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogfQogCiBzdGF0aWMgdm9pZAotY3NjaGVkX3Zj cHVfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK2Nz Y2hlZF91bml0X3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRf dW5pdCAqdW5pdCkKIHsKKyAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7CiAg ICAgc3RydWN0IGNzY2hlZF92Y3B1ICogY29uc3Qgc3ZjID0gQ1NDSEVEX1ZDUFUodmMpOwogICAg IGJvb2xfdCBtaWdyYXRpbmc7CiAKQEAgLTExNTgsOCArMTE2NSw5IEBAIGNzY2hlZF92Y3B1X3dh a2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiB9CiAKIHN0 YXRpYyB2b2lkCi1jc2NoZWRfdmNwdV95aWVsZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hlZF91bml0X3lpZWxkKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CisgICAgc3RydWN0IHZjcHUgKnZj ID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBjc2NoZWRfdmNwdSAqIGNvbnN0IHN2YyA9 IENTQ0hFRF9WQ1BVKHZjKTsKIAogICAgIC8qIExldCB0aGUgc2NoZWR1bGVyIGtub3cgdGhhdCB0 aGlzIHZjcHUgaXMgdHJ5aW5nIHRvIHlpZWxkICovCkBAIC0xMjEyLDkgKzEyMjAsMTAgQEAgY3Nj aGVkX2RvbV9jbnRsKAogfQogCiBzdGF0aWMgdm9pZAotY3NjaGVkX2FmZl9jbnRsKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYsCitjc2NoZWRfYWZmX2NudGwoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwKICAgICAg ICAgICAgICAgICBjb25zdCBjcHVtYXNrX3QgKmhhcmQsIGNvbnN0IGNwdW1hc2tfdCAqc29mdCkK IHsKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgY3Nj aGVkX3ZjcHUgKnN2YyA9IENTQ0hFRF9WQ1BVKHYpOwogCiAgICAgaWYgKCAhaGFyZCApCkBAIC0x NzQzLDcgKzE3NTIsNyBAQCBjc2NoZWRfbG9hZF9iYWxhbmNlKHN0cnVjdCBjc2NoZWRfcHJpdmF0 ZSAqcHJ2LCBpbnQgY3B1LAogICAgICAgICAgICAgICAgICAqIC0gaWYgd2UgcmFjZSB3aXRoIGlu Y19ucl9ydW5uYWJsZSgpLCB3ZSBza2lwIGEgcENQVSB0aGF0IG1heQogICAgICAgICAgICAgICAg ICAqICAgaGF2ZSBydW5uYWJsZSB2Q1BVcyBpbiBpdHMgcnVucXVldWUsIGJ1dCB0aGF0J3Mgbm90 IGEKICAgICAgICAgICAgICAgICAgKiAgIHByb2JsZW0gYmVjYXVzZToKLSAgICAgICAgICAgICAg ICAgKiAgICsgaWYgcmFjaW5nIHdpdGggY3NjaGVkX3ZjcHVfaW5zZXJ0KCkgb3IgY3NjaGVkX3Zj cHVfd2FrZSgpLAorICAgICAgICAgICAgICAgICAqICAgKyBpZiByYWNpbmcgd2l0aCBjc2NoZWRf dW5pdF9pbnNlcnQoKSBvciBjc2NoZWRfdW5pdF93YWtlKCksCiAgICAgICAgICAgICAgICAgICog ICAgIF9fcnVucV90aWNrbGUoKSB3aWxsIGJlIGNhbGxlZCBhZnRlcndvcmRzLCBzbyB0aGUgdkNQ VQogICAgICAgICAgICAgICAgICAqICAgICB3b24ndCBnZXQgc3R1Y2sgaW4gdGhlIHJ1bnF1ZXVl IGZvciB0b28gbG9uZzsKICAgICAgICAgICAgICAgICAgKiAgICsgaWYgcmFjaW5nIHdpdGggY3Nj aGVkX3J1bnFfc3RlYWwoKSwgaXQgbWF5IGJlIHRoYXQgYQpAQCAtMjI1NiwxMiArMjI2NSwxMiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IHNjaGVkdWxlciBzY2hlZF9jcmVkaXRfZGVmID0gewogCiAg ICAgLmdsb2JhbF9pbml0ICAgID0gY3NjaGVkX2dsb2JhbF9pbml0LAogCi0gICAgLmluc2VydF92 Y3B1ICAgID0gY3NjaGVkX3ZjcHVfaW5zZXJ0LAotICAgIC5yZW1vdmVfdmNwdSAgICA9IGNzY2hl ZF92Y3B1X3JlbW92ZSwKKyAgICAuaW5zZXJ0X3VuaXQgICAgPSBjc2NoZWRfdW5pdF9pbnNlcnQs CisgICAgLnJlbW92ZV91bml0ICAgID0gY3NjaGVkX3VuaXRfcmVtb3ZlLAogCi0gICAgLnNsZWVw ICAgICAgICAgID0gY3NjaGVkX3ZjcHVfc2xlZXAsCi0gICAgLndha2UgICAgICAgICAgID0gY3Nj aGVkX3ZjcHVfd2FrZSwKLSAgICAueWllbGQgICAgICAgICAgPSBjc2NoZWRfdmNwdV95aWVsZCwK KyAgICAuc2xlZXAgICAgICAgICAgPSBjc2NoZWRfdW5pdF9zbGVlcCwKKyAgICAud2FrZSAgICAg ICAgICAgPSBjc2NoZWRfdW5pdF93YWtlLAorICAgIC55aWVsZCAgICAgICAgICA9IGNzY2hlZF91 bml0X3lpZWxkLAogCiAgICAgLmFkanVzdCAgICAgICAgID0gY3NjaGVkX2RvbV9jbnRsLAogICAg IC5hZGp1c3RfYWZmaW5pdHk9IGNzY2hlZF9hZmZfY250bCwKQEAgLTIyNzQsOCArMjI4Myw4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyIHNjaGVkX2NyZWRpdF9kZWYgPSB7CiAgICAg LmR1bXBfc2V0dGluZ3MgID0gY3NjaGVkX2R1bXAsCiAgICAgLmluaXQgICAgICAgICAgID0gY3Nj aGVkX2luaXQsCiAgICAgLmRlaW5pdCAgICAgICAgID0gY3NjaGVkX2RlaW5pdCwKLSAgICAuYWxs b2NfdmRhdGEgICAgPSBjc2NoZWRfYWxsb2NfdmRhdGEsCi0gICAgLmZyZWVfdmRhdGEgICAgID0g Y3NjaGVkX2ZyZWVfdmRhdGEsCisgICAgLmFsbG9jX3VkYXRhICAgID0gY3NjaGVkX2FsbG9jX3Vk YXRhLAorICAgIC5mcmVlX3VkYXRhICAgICA9IGNzY2hlZF9mcmVlX3VkYXRhLAogICAgIC5hbGxv Y19wZGF0YSAgICA9IGNzY2hlZF9hbGxvY19wZGF0YSwKICAgICAuaW5pdF9wZGF0YSAgICAgPSBj c2NoZWRfaW5pdF9wZGF0YSwKICAgICAuZGVpbml0X3BkYXRhICAgPSBjc2NoZWRfZGVpbml0X3Bk YXRhLApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9u L3NjaGVkX2NyZWRpdDIuYwppbmRleCA2Yjc3ZGE3NDc2Li45MjlmMmEyNDUwIDEwMDY0NAotLS0g YS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRp dDIuYwpAQCAtMjczLDcgKzI3Myw3IEBACiAgKiBDU0ZMQUdfZGVsYXllZF9ydW5xX2FkZDogRG8g d2UgbmVlZCB0byBhZGQgdGhpcyB0byB0aGUgcnVucXVldWUgb25jZSBpdCdkIGRvbmUKICAqIGJl aW5nIGNvbnRleHQgc3dpdGNoZWQgb3V0PwogICogKyBTZXQgd2hlbiBzY2hlZHVsaW5nIG91dCBp biBjc2NoZWQyX3NjaGVkdWxlKCkgaWYgcHJldiBpcyBydW5uYWJsZQotICogKyBTZXQgaW4gY3Nj aGVkMl92Y3B1X3dha2UgaWYgaXQgZmluZHMgQ1NGTEFHX3NjaGVkdWxlZCBzZXQKKyAqICsgU2V0 IGluIGNzY2hlZDJfdW5pdF93YWtlIGlmIGl0IGZpbmRzIENTRkxBR19zY2hlZHVsZWQgc2V0CiAg KiArIFJlYWQgaW4gY3NjaGVkMl9jb250ZXh0X3NhdmVkKCkuICBJZiBzZXQsIGl0IGFkZHMgcHJl diB0byB0aGUgcnVucXVldWUgYW5kCiAgKiAgIGNsZWFycyB0aGUgYml0LgogICovCkBAIC02MjQs MTQgKzYyNCwxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaGFzX2NhcChjb25zdCBzdHJ1Y3QgY3Nj aGVkMl92Y3B1ICpzdmMpCiAgKiBUaGlzIGxvZ2ljIGlzIGVudGlyZWx5IGltcGxlbWVudGVkIGlu IHJ1bnFfdGlja2xlKCksIGFuZCB0aGF0IGlzIGVub3VnaC4KICAqIEluIGZhY3QsIGluIHRoaXMg c2NoZWR1bGVyLCBwbGFjZW1lbnQgb2YgYSB2Y3B1IG9uIG9uZSBvZiB0aGUgcGNwdXMgb2YgYQog ICogcnVucSwgX2Fsd2F5c18gaGFwcGVucyBieSBtZWFucyBvZiB0aWNrbGluZzoKLSAqICAtIHdo ZW4gYSB2Y3B1IHdha2VzIHVwLCBpdCBjYWxscyBjc2NoZWQyX3ZjcHVfd2FrZSgpLCB3aGljaCBj YWxscworICogIC0gd2hlbiBhIHZjcHUgd2FrZXMgdXAsIGl0IGNhbGxzIGNzY2hlZDJfdW5pdF93 YWtlKCksIHdoaWNoIGNhbGxzCiAgKiAgICBydW5xX3RpY2tsZSgpOwogICogIC0gd2hlbiBhIG1p Z3JhdGlvbiBpcyBpbml0aWF0ZWQgaW4gc2NoZWR1bGUuYywgd2UgY2FsbCBjc2NoZWQyX2NwdV9w aWNrKCksCi0gKiAgICBjc2NoZWQyX3ZjcHVfbWlncmF0ZSgpICh3aGljaCBjYWxscyBtaWdyYXRl KCkpIGFuZCBjc2NoZWQyX3ZjcHVfd2FrZSgpLgorICogICAgY3NjaGVkMl91bml0X21pZ3JhdGUo KSAod2hpY2ggY2FsbHMgbWlncmF0ZSgpKSBhbmQgY3NjaGVkMl91bml0X3dha2UoKS4KICAqICAg IGNzY2hlZDJfY3B1X3BpY2soKSBsb29rcyBmb3IgdGhlIGxlYXN0IGxvYWRlZCBydW5xIGFuZCBy ZXR1cm4ganVzdCBhbnkKLSAqICAgIG9mIGl0cyBwcm9jZXNzb3JzLiBUaGVuLCBjc2NoZWQyX3Zj cHVfbWlncmF0ZSgpIGp1c3QgbW92ZXMgdGhlIHZjcHUgdG8KKyAqICAgIG9mIGl0cyBwcm9jZXNz b3JzLiBUaGVuLCBjc2NoZWQyX3VuaXRfbWlncmF0ZSgpIGp1c3QgbW92ZXMgdGhlIHZjcHUgdG8K ICAqICAgIHRoZSBjaG9zZW4gcnVucSwgYW5kIGl0IGlzIGFnYWluIHJ1bnFfdGlja2xlKCksIGNh bGxlZCBieQotICogICAgY3NjaGVkMl92Y3B1X3dha2UoKSB0aGF0IGFjdHVhbGx5IGRlY2lkZXMg d2hhdCBwY3B1IHRvIHVzZSB3aXRoaW4gdGhlCisgKiAgICBjc2NoZWQyX3VuaXRfd2FrZSgpIHRo YXQgYWN0dWFsbHkgZGVjaWRlcyB3aGF0IHBjcHUgdG8gdXNlIHdpdGhpbiB0aGUKICAqICAgIGNo b3NlbiBydW5xOwogICogIC0gd2hlbiBhIG1pZ3JhdGlvbiBpcyBpbml0aWF0ZWQgaW4gc2NoZWRf Y3JlZGl0Mi5jLCBieSBjYWxsaW5nICBtaWdyYXRlKCkKICAqICAgIGRpcmVjdGx5LCB0aGF0IGFn YWluIHRlbXBvcmFyaWx5IHVzZSBhIHJhbmRvbSBwY3B1IGZyb20gdGhlIG5ldyBydW5xLApAQCAt MjAyNyw4ICsyMDI3LDEwIEBAIGNzY2hlZDJfdmNwdV9jaGVjayhzdHJ1Y3QgdmNwdSAqdmMpCiAj ZW5kaWYKIAogc3RhdGljIHZvaWQgKgotY3NjaGVkMl9hbGxvY192ZGF0YShjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2Yywgdm9pZCAqZGQpCitjc2NoZWQyX2FsbG9j X3VkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVu aXQsCisgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRkKQogeworICAgIHN0cnVjdCB2Y3B1ICp2 YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmM7CiAKICAg ICAvKiBBbGxvY2F0ZSBwZXItVkNQVSBpbmZvICovCkBAIC0yMDcwLDggKzIwNzIsOSBAQCBjc2No ZWQyX2FsbG9jX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUg KnZjLCB2b2lkICpkZCkKIH0KIAogc3RhdGljIHZvaWQKLWNzY2hlZDJfdmNwdV9zbGVlcChjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hlZDJfdW5pdF9z bGVlcChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0 KQogeworICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3Qg Y3NjaGVkMl92Y3B1ICogY29uc3Qgc3ZjID0gY3NjaGVkMl92Y3B1KHZjKTsKIAogICAgIEFTU0VS VCghaXNfaWRsZV92Y3B1KHZjKSk7CkBAIC0yMDkyLDggKzIwOTUsOSBAQCBjc2NoZWQyX3ZjcHVf c2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiB9CiAK IHN0YXRpYyB2b2lkCi1jc2NoZWQyX3ZjcHVfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpv cHMsIHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hlZDJfdW5pdF93YWtlKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CisgICAgc3RydWN0IHZjcHUg KnZjID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBjb25zdCBz dmMgPSBjc2NoZWQyX3ZjcHUodmMpOwogICAgIHVuc2lnbmVkIGludCBjcHUgPSB2Yy0+cHJvY2Vz c29yOwogICAgIHNfdGltZV90IG5vdzsKQEAgLTIxNDcsMTYgKzIxNTEsMTggQEAgb3V0OgogfQog CiBzdGF0aWMgdm9pZAotY3NjaGVkMl92Y3B1X3lpZWxkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywgc3RydWN0IHZjcHUgKnYpCitjc2NoZWQyX3VuaXRfeWllbGQoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKKyAgICBzdHJ1Y3QgdmNw dSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qg c3ZjID0gY3NjaGVkMl92Y3B1KHYpOwogCiAgICAgX19zZXRfYml0KF9fQ1NGTEFHX3ZjcHVfeWll bGQsICZzdmMtPmZsYWdzKTsKIH0KIAogc3RhdGljIHZvaWQKLWNzY2hlZDJfY29udGV4dF9zYXZl ZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hlZDJf Y29udGV4dF9zYXZlZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBzY2hlZF91 bml0ICp1bml0KQogeworICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAg ICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICogY29uc3Qgc3ZjID0gY3NjaGVkMl92Y3B1KHZjKTsKICAg ICBzcGlubG9ja190ICpsb2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2Yyk7CiAgICAgc190 aW1lX3Qgbm93ID0gTk9XKCk7CkBAIC0yMTk3LDkgKzIyMDMsMTAgQEAgY3NjaGVkMl9jb250ZXh0 X3NhdmVkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogCiAj ZGVmaW5lIE1BWF9MT0FEIChTVElNRV9NQVgpCiBzdGF0aWMgaW50Ci1jc2NoZWQyX2NwdV9waWNr KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQorY3NjaGVkMl9j cHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIGNvbnN0IHN0cnVjdCBzY2hlZF91 bml0ICp1bml0KQogewogICAgIHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiA9IGNzY2hlZDJf cHJpdihvcHMpOworICAgIHN0cnVjdCB2Y3B1ICp2YyA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBp bnQgaSwgbWluX3JxaSA9IC0xLCBtaW5fc19ycWkgPSAtMTsKICAgICB1bnNpZ25lZCBpbnQgbmV3 X2NwdSwgY3B1ID0gdmMtPnByb2Nlc3NvcjsKICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMg PSBjc2NoZWQyX3ZjcHUodmMpOwpAQCAtMjczNCw5ICsyNzQxLDEwIEBAIHJldHJ5OgogfQogCiBz dGF0aWMgdm9pZAotY3NjaGVkMl92Y3B1X21pZ3JhdGUoCi0gICAgY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMsIHVuc2lnbmVkIGludCBuZXdfY3B1KQorY3NjaGVk Ml91bml0X21pZ3JhdGUoCisgICAgY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qg c2NoZWRfdW5pdCAqdW5pdCwgdW5zaWduZWQgaW50IG5ld19jcHUpCiB7CisgICAgc3RydWN0IHZj cHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBkb21haW4gKmQgPSB2Yy0+ZG9t YWluOwogICAgIHN0cnVjdCBjc2NoZWQyX3ZjcHUgKiBjb25zdCBzdmMgPSBjc2NoZWQyX3ZjcHUo dmMpOwogICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1ZXVlX2RhdGEgKnRycWQ7CkBAIC0yOTk3LDkg KzMwMDUsMTAgQEAgY3NjaGVkMl9kb21fY250bCgKIH0KIAogc3RhdGljIHZvaWQKLWNzY2hlZDJf YWZmX2NudGwoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdiwKK2Nz Y2hlZDJfYWZmX2NudGwoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRf dW5pdCAqdW5pdCwKICAgICAgICAgICAgICAgICAgY29uc3QgY3B1bWFza190ICpoYXJkLCBjb25z dCBjcHVtYXNrX3QgKnNvZnQpCiB7CisgICAgc3RydWN0IHZjcHUgKnYgPSB1bml0LT52Y3B1X2xp c3Q7CiAgICAgc3RydWN0IGNzY2hlZDJfdmNwdSAqc3ZjID0gY3NjaGVkMl92Y3B1KHYpOwogCiAg ICAgaWYgKCAhaGFyZCApCkBAIC0zMDk3LDggKzMxMDYsOSBAQCBjc2NoZWQyX2ZyZWVfZG9tZGF0 YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQgKmRhdGEpCiB9CiAKIHN0YXRpYyB2 b2lkCi1jc2NoZWQyX3ZjcHVfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHZjcHUgKnZjKQorY3NjaGVkMl91bml0X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQogeworICAgIHN0cnVjdCB2Y3B1ICp2YyA9 IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMgPSB2Yy0+c2No ZWRfcHJpdjsKICAgICBzdHJ1Y3QgY3NjaGVkMl9kb20gKiBjb25zdCBzZG9tID0gc3ZjLT5zZG9t OwogICAgIHNwaW5sb2NrX3QgKmxvY2s7CkBAIC0zMTA5LDcgKzMxMTksNyBAQCBjc2NoZWQyX3Zj cHVfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQog ICAgIC8qIGNzY2hlZDJfY3B1X3BpY2soKSBleHBlY3RzIHRoZSBwY3B1IGxvY2sgdG8gYmUgaGVs ZCAqLwogICAgIGxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHZjKTsKIAotICAgIHZjLT5w cm9jZXNzb3IgPSBjc2NoZWQyX2NwdV9waWNrKG9wcywgdmMpOworICAgIHZjLT5wcm9jZXNzb3Ig PSBjc2NoZWQyX2NwdV9waWNrKG9wcywgdW5pdCk7CiAKICAgICBzcGluX3VubG9ja19pcnEobG9j ayk7CiAKQEAgLTMxMjgsNyArMzEzOCw3IEBAIGNzY2hlZDJfdmNwdV9pbnNlcnQoY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiB9CiAKIHN0YXRpYyB2b2lkCi1j c2NoZWQyX2ZyZWVfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2 KQorY3NjaGVkMl9mcmVlX3VkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAq cHJpdikKIHsKICAgICBzdHJ1Y3QgY3NjaGVkMl92Y3B1ICpzdmMgPSBwcml2OwogCkBAIC0zMTM2 LDggKzMxNDYsOSBAQCBjc2NoZWQyX2ZyZWVfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCB2b2lkICpwcml2KQogfQogCiBzdGF0aWMgdm9pZAotY3NjaGVkMl92Y3B1X3JlbW92ZShj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK2NzY2hlZDJfdW5p dF9yZW1vdmUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAq dW5pdCkKIHsKKyAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7CiAgICAgc3Ry dWN0IGNzY2hlZDJfdmNwdSAqIGNvbnN0IHN2YyA9IGNzY2hlZDJfdmNwdSh2Yyk7CiAgICAgc3Bp bmxvY2tfdCAqbG9jazsKIApAQCAtNDA4MywyNyArNDA5NCwyNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNjaGVkdWxlciBzY2hlZF9jcmVkaXQyX2RlZiA9IHsKIAogICAgIC5nbG9iYWxfaW5pdCAg ICA9IGNzY2hlZDJfZ2xvYmFsX2luaXQsCiAKLSAgICAuaW5zZXJ0X3ZjcHUgICAgPSBjc2NoZWQy X3ZjcHVfaW5zZXJ0LAotICAgIC5yZW1vdmVfdmNwdSAgICA9IGNzY2hlZDJfdmNwdV9yZW1vdmUs CisgICAgLmluc2VydF91bml0ICAgID0gY3NjaGVkMl91bml0X2luc2VydCwKKyAgICAucmVtb3Zl X3VuaXQgICAgPSBjc2NoZWQyX3VuaXRfcmVtb3ZlLAogCi0gICAgLnNsZWVwICAgICAgICAgID0g Y3NjaGVkMl92Y3B1X3NsZWVwLAotICAgIC53YWtlICAgICAgICAgICA9IGNzY2hlZDJfdmNwdV93 YWtlLAotICAgIC55aWVsZCAgICAgICAgICA9IGNzY2hlZDJfdmNwdV95aWVsZCwKKyAgICAuc2xl ZXAgICAgICAgICAgPSBjc2NoZWQyX3VuaXRfc2xlZXAsCisgICAgLndha2UgICAgICAgICAgID0g Y3NjaGVkMl91bml0X3dha2UsCisgICAgLnlpZWxkICAgICAgICAgID0gY3NjaGVkMl91bml0X3lp ZWxkLAogCiAgICAgLmFkanVzdCAgICAgICAgID0gY3NjaGVkMl9kb21fY250bCwKICAgICAuYWRq dXN0X2FmZmluaXR5PSBjc2NoZWQyX2FmZl9jbnRsLAogICAgIC5hZGp1c3RfZ2xvYmFsICA9IGNz Y2hlZDJfc3lzX2NudGwsCiAKICAgICAucGlja19jcHUgICAgICAgPSBjc2NoZWQyX2NwdV9waWNr LAotICAgIC5taWdyYXRlICAgICAgICA9IGNzY2hlZDJfdmNwdV9taWdyYXRlLAorICAgIC5taWdy YXRlICAgICAgICA9IGNzY2hlZDJfdW5pdF9taWdyYXRlLAogICAgIC5kb19zY2hlZHVsZSAgICA9 IGNzY2hlZDJfc2NoZWR1bGUsCiAgICAgLmNvbnRleHRfc2F2ZWQgID0gY3NjaGVkMl9jb250ZXh0 X3NhdmVkLAogCiAgICAgLmR1bXBfc2V0dGluZ3MgID0gY3NjaGVkMl9kdW1wLAogICAgIC5pbml0 ICAgICAgICAgICA9IGNzY2hlZDJfaW5pdCwKICAgICAuZGVpbml0ICAgICAgICAgPSBjc2NoZWQy X2RlaW5pdCwKLSAgICAuYWxsb2NfdmRhdGEgICAgPSBjc2NoZWQyX2FsbG9jX3ZkYXRhLAotICAg IC5mcmVlX3ZkYXRhICAgICA9IGNzY2hlZDJfZnJlZV92ZGF0YSwKKyAgICAuYWxsb2NfdWRhdGEg ICAgPSBjc2NoZWQyX2FsbG9jX3VkYXRhLAorICAgIC5mcmVlX3VkYXRhICAgICA9IGNzY2hlZDJf ZnJlZV91ZGF0YSwKICAgICAuYWxsb2NfcGRhdGEgICAgPSBjc2NoZWQyX2FsbG9jX3BkYXRhLAog ICAgIC5pbml0X3BkYXRhICAgICA9IGNzY2hlZDJfaW5pdF9wZGF0YSwKICAgICAuZGVpbml0X3Bk YXRhICAgPSBjc2NoZWQyX2RlaW5pdF9wZGF0YSwKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2No ZWRfbnVsbC5jIGIveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKaW5kZXggNjc4MmVjZGE1Yy4uODcw YmI2N2ExOCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKKysrIGIveGVuL2Nv bW1vbi9zY2hlZF9udWxsLmMKQEAgLTE4NSw5ICsxODUsMTAgQEAgc3RhdGljIHZvaWQgbnVsbF9k ZWluaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwY3B1LCBpbnQg Y3B1KQogICAgIHBlcl9jcHUobnBjLCBjcHUpLnZjcHUgPSBOVUxMOwogfQogCi1zdGF0aWMgdm9p ZCAqbnVsbF9hbGxvY192ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdmNwdSAqdiwgdm9pZCAqZGQpCitzdGF0aWMg dm9pZCAqbnVsbF9hbGxvY191ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwgdm9pZCAq ZGQpCiB7CisgICAgc3RydWN0IHZjcHUgKnYgPSB1bml0LT52Y3B1X2xpc3Q7CiAgICAgc3RydWN0 IG51bGxfdmNwdSAqbnZjOwogCiAgICAgbnZjID0geHphbGxvYyhzdHJ1Y3QgbnVsbF92Y3B1KTsK QEAgLTIwMiw3ICsyMDMsNyBAQCBzdGF0aWMgdm9pZCAqbnVsbF9hbGxvY192ZGF0YShjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsCiAgICAgcmV0dXJuIG52YzsKIH0KIAotc3RhdGljIHZvaWQg bnVsbF9mcmVlX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcHJpdikK K3N0YXRpYyB2b2lkIG51bGxfZnJlZV91ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IHZvaWQgKnByaXYpCiB7CiAgICAgc3RydWN0IG51bGxfdmNwdSAqbnZjID0gcHJpdjsKIApAQCAt NDM1LDggKzQzNiwxMCBAQCBzdGF0aWMgc3BpbmxvY2tfdCAqbnVsbF9zd2l0Y2hfc2NoZWQoc3Ry dWN0IHNjaGVkdWxlciAqbmV3X29wcywKICAgICByZXR1cm4gJnNkLT5fbG9jazsKIH0KIAotc3Rh dGljIHZvaWQgbnVsbF92Y3B1X2luc2VydChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0 cnVjdCB2Y3B1ICp2KQorc3RhdGljIHZvaWQgbnVsbF91bml0X2luc2VydChjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY2hl ZF91bml0ICp1bml0KQogeworICAgIHN0cnVjdCB2Y3B1ICp2ID0gdW5pdC0+dmNwdV9saXN0Owog ICAgIHN0cnVjdCBudWxsX3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihvcHMpOwogICAgIHN0cnVj dCBudWxsX3ZjcHUgKm52YyA9IG51bGxfdmNwdSh2KTsKICAgICB1bnNpZ25lZCBpbnQgY3B1OwpA QCAtNDk2LDggKzQ5OSwxMCBAQCBzdGF0aWMgdm9pZCBudWxsX3ZjcHVfaW5zZXJ0KGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYpCiAgICAgU0NIRURfU1RBVF9DUkFO Syh2Y3B1X2luc2VydCk7CiB9CiAKLXN0YXRpYyB2b2lkIG51bGxfdmNwdV9yZW1vdmUoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdikKK3N0YXRpYyB2b2lkIG51bGxf dW5pdF9yZW1vdmUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKIHsKKyAgICBzdHJ1Y3QgdmNw dSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnYgPSBu dWxsX3ByaXYob3BzKTsKICAgICBzdHJ1Y3QgbnVsbF92Y3B1ICpudmMgPSBudWxsX3ZjcHUodik7 CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKQEAgLTUzMiw4ICs1MzcsMTAgQEAgc3RhdGljIHZvaWQg bnVsbF92Y3B1X3JlbW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1 ICp2KQogICAgIFNDSEVEX1NUQVRfQ1JBTksodmNwdV9yZW1vdmUpOwogfQogCi1zdGF0aWMgdm9p ZCBudWxsX3ZjcHVfd2FrZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1 ICp2KQorc3RhdGljIHZvaWQgbnVsbF91bml0X3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiB7CisgICAgc3RydWN0IHZjcHUgKnYgPSB1bml0LT52Y3B1X2xpc3Q7CiAgICAgc3RydWN0IG51 bGxfcHJpdmF0ZSAqcHJ2ID0gbnVsbF9wcml2KG9wcyk7CiAgICAgc3RydWN0IG51bGxfdmNwdSAq bnZjID0gbnVsbF92Y3B1KHYpOwogICAgIHVuc2lnbmVkIGludCBjcHUgPSB2LT5wcm9jZXNzb3I7 CkBAIC02MDQsOCArNjExLDEwIEBAIHN0YXRpYyB2b2lkIG51bGxfdmNwdV93YWtlKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYpCiAgICAgY3B1X3JhaXNlX3NvZnRp cnEodi0+cHJvY2Vzc29yLCBTQ0hFRFVMRV9TT0ZUSVJRKTsKIH0KIAotc3RhdGljIHZvaWQgbnVs bF92Y3B1X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYp CitzdGF0aWMgdm9pZCBudWxsX3VuaXRfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQog eworICAgIHN0cnVjdCB2Y3B1ICp2ID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBudWxs X3ByaXZhdGUgKnBydiA9IG51bGxfcHJpdihvcHMpOwogICAgIHVuc2lnbmVkIGludCBjcHUgPSB2 LT5wcm9jZXNzb3I7CiAgICAgYm9vbCB0aWNrbGVkID0gZmFsc2U7CkBAIC02MzcsMTUgKzY0Niwx OCBAQCBzdGF0aWMgdm9pZCBudWxsX3ZjcHVfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCBzdHJ1Y3QgdmNwdSAqdikKICAgICBTQ0hFRF9TVEFUX0NSQU5LKHZjcHVfc2xlZXApOwog fQogCi1zdGF0aWMgaW50IG51bGxfY3B1X3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBzdHJ1Y3QgdmNwdSAqdikKK3N0YXRpYyBpbnQgbnVsbF9jcHVfcGljayhjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICpvcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNj aGVkX3VuaXQgKnVuaXQpCiB7CisgICAgc3RydWN0IHZjcHUgKnYgPSB1bml0LT52Y3B1X2xpc3Q7 CiAgICAgQVNTRVJUKCFpc19pZGxlX3ZjcHUodikpOwogICAgIHJldHVybiBwaWNrX2NwdShudWxs X3ByaXYob3BzKSwgdik7CiB9CiAKLXN0YXRpYyB2b2lkIG51bGxfdmNwdV9taWdyYXRlKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbmV3X2NwdSkKK3N0YXRpYyB2b2lkIG51bGxfdW5p dF9taWdyYXRlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0LCB1bnNpZ25lZCBpbnQgbmV3X2Nw dSkKIHsKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IHVuaXQtPnZjcHVfbGlzdDsKICAgICBzdHJ1Y3Qg bnVsbF9wcml2YXRlICpwcnYgPSBudWxsX3ByaXYob3BzKTsKICAgICBzdHJ1Y3QgbnVsbF92Y3B1 ICpudmMgPSBudWxsX3ZjcHUodik7CiAKQEAgLTk2MCwxOCArOTcyLDE4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyIHNjaGVkX251bGxfZGVmID0gewogICAgIC5zd2l0Y2hfc2NoZWQg ICA9IG51bGxfc3dpdGNoX3NjaGVkLAogICAgIC5kZWluaXRfcGRhdGEgICA9IG51bGxfZGVpbml0 X3BkYXRhLAogCi0gICAgLmFsbG9jX3ZkYXRhICAgID0gbnVsbF9hbGxvY192ZGF0YSwKLSAgICAu ZnJlZV92ZGF0YSAgICAgPSBudWxsX2ZyZWVfdmRhdGEsCisgICAgLmFsbG9jX3VkYXRhICAgID0g bnVsbF9hbGxvY191ZGF0YSwKKyAgICAuZnJlZV91ZGF0YSAgICAgPSBudWxsX2ZyZWVfdWRhdGEs CiAgICAgLmFsbG9jX2RvbWRhdGEgID0gbnVsbF9hbGxvY19kb21kYXRhLAogICAgIC5mcmVlX2Rv bWRhdGEgICA9IG51bGxfZnJlZV9kb21kYXRhLAogCi0gICAgLmluc2VydF92Y3B1ICAgID0gbnVs bF92Y3B1X2luc2VydCwKLSAgICAucmVtb3ZlX3ZjcHUgICAgPSBudWxsX3ZjcHVfcmVtb3ZlLAor ICAgIC5pbnNlcnRfdW5pdCAgICA9IG51bGxfdW5pdF9pbnNlcnQsCisgICAgLnJlbW92ZV91bml0 ICAgID0gbnVsbF91bml0X3JlbW92ZSwKIAotICAgIC53YWtlICAgICAgICAgICA9IG51bGxfdmNw dV93YWtlLAotICAgIC5zbGVlcCAgICAgICAgICA9IG51bGxfdmNwdV9zbGVlcCwKKyAgICAud2Fr ZSAgICAgICAgICAgPSBudWxsX3VuaXRfd2FrZSwKKyAgICAuc2xlZXAgICAgICAgICAgPSBudWxs X3VuaXRfc2xlZXAsCiAgICAgLnBpY2tfY3B1ICAgICAgID0gbnVsbF9jcHVfcGljaywKLSAgICAu bWlncmF0ZSAgICAgICAgPSBudWxsX3ZjcHVfbWlncmF0ZSwKKyAgICAubWlncmF0ZSAgICAgICAg PSBudWxsX3VuaXRfbWlncmF0ZSwKICAgICAuZG9fc2NoZWR1bGUgICAgPSBudWxsX3NjaGVkdWxl LAogCiAgICAgLmR1bXBfY3B1X3N0YXRlID0gbnVsbF9kdW1wX3BjcHUsCmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL3NjaGVkX3J0LmMgYi94ZW4vY29tbW9uL3NjaGVkX3J0LmMKaW5kZXggZTBlMzUw YmRmMy4uNDkyZDhmNmQyYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9ydC5jCisrKyBi L3hlbi9jb21tb24vc2NoZWRfcnQuYwpAQCAtMTM2LDcgKzEzNiw3IEBACiAgKiBSVERTX2RlbGF5 ZWRfcnVucV9hZGQ6IERvIHdlIG5lZWQgdG8gYWRkIHRoaXMgdG8gdGhlIFJ1blEvRGVwbGV0ZWRR CiAgKiBvbmNlIGl0J3MgZG9uZSBiZWluZyBjb250ZXh0IHN3aXRjaGluZyBvdXQ/CiAgKiArIFNl dCB3aGVuIHNjaGVkdWxpbmcgb3V0IGluIHJ0X3NjaGVkdWxlKCkgaWYgcHJldiBpcyBydW5hYmxl Ci0gKiArIFNldCBpbiBydF92Y3B1X3dha2UgaWYgaXQgZmluZHMgUlREU19zY2hlZHVsZWQgc2V0 CisgKiArIFNldCBpbiBydF91bml0X3dha2UgaWYgaXQgZmluZHMgUlREU19zY2hlZHVsZWQgc2V0 CiAgKiArIFJlYWQgaW4gcnRfY29udGV4dF9zYXZlZCgpLiBJZiBzZXQsIGl0IGFkZHMgcHJldiB0 byB0aGUgUnVucXVldWUvRGVwbGV0ZWRRCiAgKiAgIGFuZCBjbGVhcnMgdGhlIGJpdC4KICAqLwpA QCAtNjM2LDggKzYzNiw5IEBAIHJlcGxxX3JlaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Km9wcywgc3RydWN0IHJ0X3ZjcHUgKnN2YykKICAqIGFuZCBhdmFpbGFibGUgY3B1cwogICovCiBz dGF0aWMgaW50Ci1ydF9jcHVfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVj dCB2Y3B1ICp2YykKK3J0X2NwdV9waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29u c3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CisgICAgc3RydWN0IHZjcHUgKnZjID0gdW5p dC0+dmNwdV9saXN0OwogICAgIGNwdW1hc2tfdCBjcHVzOwogICAgIGNwdW1hc2tfdCAqb25saW5l OwogICAgIGludCBjcHU7CkBAIC04MzcsOCArODM4LDkgQEAgcnRfZnJlZV9kb21kYXRhKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqZGF0YSkKIH0KIAogc3RhdGljIHZvaWQgKgot cnRfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAq dmMsIHZvaWQgKmRkKQorcnRfYWxsb2NfdWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCwgdm9pZCAqZGQpCiB7CisgICAgc3RydWN0IHZjcHUg KnZjID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBydF92Y3B1ICpzdmM7CiAKICAgICAv KiBBbGxvY2F0ZSBwZXItVkNQVSBpbmZvICovCkBAIC04NjUsNyArODY3LDcgQEAgcnRfYWxsb2Nf dmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMsIHZvaWQg KmRkKQogfQogCiBzdGF0aWMgdm9pZAotcnRfZnJlZV92ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHZvaWQgKnByaXYpCitydF9mcmVlX3VkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgdm9pZCAqcHJpdikKIHsKICAgICBzdHJ1Y3QgcnRfdmNwdSAqc3ZjID0gcHJpdjsK IApAQCAtODgwLDggKzg4Miw5IEBAIHJ0X2ZyZWVfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLCB2b2lkICpwcml2KQogICogZGVzdC4gY3B1cG9vbC4KICAqLwogc3RhdGljIHZvaWQK LXJ0X3ZjcHVfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUg KnZjKQorcnRfdW5pdF9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qg c2NoZWRfdW5pdCAqdW5pdCkKIHsKKyAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xp c3Q7CiAgICAgc3RydWN0IHJ0X3ZjcHUgKnN2YyA9IHJ0X3ZjcHUodmMpOwogICAgIHNfdGltZV90 IG5vdzsKICAgICBzcGlubG9ja190ICpsb2NrOwpAQCAtODg5LDcgKzg5Miw3IEBAIHJ0X3ZjcHVf aW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQogICAg IEJVR19PTiggaXNfaWRsZV92Y3B1KHZjKSApOwogCiAgICAgLyogVGhpcyBpcyBzYWZlIGJlY2F1 c2UgdmMgaXNuJ3QgeWV0IGJlaW5nIHNjaGVkdWxlZCAqLwotICAgIHZjLT5wcm9jZXNzb3IgPSBy dF9jcHVfcGljayhvcHMsIHZjKTsKKyAgICB2Yy0+cHJvY2Vzc29yID0gcnRfY3B1X3BpY2sob3Bz LCB1bml0KTsKIAogICAgIGxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHZjKTsKIApAQCAt OTEzLDggKzkxNiw5IEBAIHJ0X3ZjcHVfaW5zZXJ0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgc3RydWN0IHZjcHUgKnZjKQogICogUmVtb3ZlIHJ0X3ZjcHUgc3ZjIGZyb20gdGhlIG9sZCBz Y2hlZHVsZXIgaW4gc291cmNlIGNwdXBvb2wuCiAgKi8KIHN0YXRpYyB2b2lkCi1ydF92Y3B1X3Jl bW92ZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykKK3J0X3Vu aXRfcmVtb3ZlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQg KnVuaXQpCiB7CisgICAgc3RydWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0 cnVjdCBydF92Y3B1ICogY29uc3Qgc3ZjID0gcnRfdmNwdSh2Yyk7CiAgICAgc3RydWN0IHJ0X2Rv bSAqIGNvbnN0IHNkb20gPSBzdmMtPnNkb207CiAgICAgc3BpbmxvY2tfdCAqbG9jazsKQEAgLTEx MzMsOCArMTEzNyw5IEBAIHJ0X3NjaGVkdWxlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywg c190aW1lX3Qgbm93LCBib29sX3QgdGFza2xldF93b3JrX3NjaGVkCiAgKiBUaGUgbG9jayBpcyBh bHJlYWR5IGdyYWJiZWQgaW4gc2NoZWR1bGUuYywgbm8gbmVlZCB0byBsb2NrIGhlcmUKICAqLwog c3RhdGljIHZvaWQKLXJ0X3ZjcHVfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBz dHJ1Y3QgdmNwdSAqdmMpCitydF91bml0X3NsZWVwKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CisgICAgc3RydWN0IHZjcHUgKnZjID0gdW5p dC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBydF92Y3B1ICogY29uc3Qgc3ZjID0gcnRfdmNwdSh2 Yyk7CiAKICAgICBCVUdfT04oIGlzX2lkbGVfdmNwdSh2YykgKTsKQEAgLTEyNDgsOCArMTI1Myw5 IEBAIHJ1bnFfdGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHJ0X3Zj cHUgKm5ldykKICAqIFRPRE86IHdoYXQgaWYgdGhlc2UgdHdvIHZjcHVzIGJlbG9uZ3MgdG8gdGhl IHNhbWUgZG9tYWluPwogICovCiBzdGF0aWMgdm9pZAotcnRfdmNwdV93YWtlKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjKQorcnRfdW5pdF93YWtlKGNvbnN0IHN0 cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CisgICAgc3Ry dWN0IHZjcHUgKnZjID0gdW5pdC0+dmNwdV9saXN0OwogICAgIHN0cnVjdCBydF92Y3B1ICogY29u c3Qgc3ZjID0gcnRfdmNwdSh2Yyk7CiAgICAgc190aW1lX3Qgbm93OwogICAgIGJvb2xfdCBtaXNz ZWQ7CkBAIC0xMzE4LDggKzEzMjQsOSBAQCBydF92Y3B1X3dha2UoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMpCiAgKiBhbmQgdGhlbiBwaWNrIHRoZSBoaWdoZXN0 IHByaW9yaXR5IHZjcHUgZnJvbSBydW5xIHRvIHJ1bgogICovCiBzdGF0aWMgdm9pZAotcnRfY29u dGV4dF9zYXZlZChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCB2Y3B1ICp2YykK K3J0X2NvbnRleHRfc2F2ZWQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2No ZWRfdW5pdCAqdW5pdCkKIHsKKyAgICBzdHJ1Y3QgdmNwdSAqdmMgPSB1bml0LT52Y3B1X2xpc3Q7 CiAgICAgc3RydWN0IHJ0X3ZjcHUgKnN2YyA9IHJ0X3ZjcHUodmMpOwogICAgIHNwaW5sb2NrX3Qg KmxvY2sgPSB2Y3B1X3NjaGVkdWxlX2xvY2tfaXJxKHZjKTsKIApAQCAtMTU0NiwxNyArMTU1Mywx NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNjaGVkdWxlciBzY2hlZF9ydGRzX2RlZiA9IHsKICAg ICAuZGVpbml0X3BkYXRhICAgPSBydF9kZWluaXRfcGRhdGEsCiAgICAgLmFsbG9jX2RvbWRhdGEg ID0gcnRfYWxsb2NfZG9tZGF0YSwKICAgICAuZnJlZV9kb21kYXRhICAgPSBydF9mcmVlX2RvbWRh dGEsCi0gICAgLmFsbG9jX3ZkYXRhICAgID0gcnRfYWxsb2NfdmRhdGEsCi0gICAgLmZyZWVfdmRh dGEgICAgID0gcnRfZnJlZV92ZGF0YSwKLSAgICAuaW5zZXJ0X3ZjcHUgICAgPSBydF92Y3B1X2lu c2VydCwKLSAgICAucmVtb3ZlX3ZjcHUgICAgPSBydF92Y3B1X3JlbW92ZSwKKyAgICAuYWxsb2Nf dWRhdGEgICAgPSBydF9hbGxvY191ZGF0YSwKKyAgICAuZnJlZV91ZGF0YSAgICAgPSBydF9mcmVl X3VkYXRhLAorICAgIC5pbnNlcnRfdW5pdCAgICA9IHJ0X3VuaXRfaW5zZXJ0LAorICAgIC5yZW1v dmVfdW5pdCAgICA9IHJ0X3VuaXRfcmVtb3ZlLAogCiAgICAgLmFkanVzdCAgICAgICAgID0gcnRf ZG9tX2NudGwsCiAKICAgICAucGlja19jcHUgICAgICAgPSBydF9jcHVfcGljaywKICAgICAuZG9f c2NoZWR1bGUgICAgPSBydF9zY2hlZHVsZSwKLSAgICAuc2xlZXAgICAgICAgICAgPSBydF92Y3B1 X3NsZWVwLAotICAgIC53YWtlICAgICAgICAgICA9IHJ0X3ZjcHVfd2FrZSwKKyAgICAuc2xlZXAg ICAgICAgICAgPSBydF91bml0X3NsZWVwLAorICAgIC53YWtlICAgICAgICAgICA9IHJ0X3VuaXRf d2FrZSwKICAgICAuY29udGV4dF9zYXZlZCAgPSBydF9jb250ZXh0X3NhdmVkLAogfTsKIApkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZHVsZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCmlu ZGV4IDEzYzE3ZmU5NDQuLjFlOWY1ZDVkNWIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWR1 bGUuYworKysgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMKQEAgLTg3LDEzICs4NywxMyBAQCBzY2hl ZF9pZGxlX3N3aXRjaF9zY2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBp bnQgY3B1LAogfQogCiBzdGF0aWMgaW50Ci1zY2hlZF9pZGxlX2NwdV9waWNrKGNvbnN0IHN0cnVj dCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnYpCitzY2hlZF9pZGxlX2NwdV9waWNrKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiB7Ci0gICAgcmV0dXJuIHYtPnByb2Nlc3NvcjsKKyAgICByZXR1cm4gdW5pdC0+dmNwdV9saXN0 LT5wcm9jZXNzb3I7CiB9CiAKIHN0YXRpYyB2b2lkICoKLXNjaGVkX2lkbGVfYWxsb2NfdmRhdGEo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdiwKK3NjaGVkX2lkbGVf YWxsb2NfdWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5p dCAqdW5pdCwKICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqZGQpCiB7CiAgICAgLyogQW55 IG5vbi1OVUxMIHBvaW50ZXIgaXMgZmluZSBoZXJlLiAqLwpAQCAtMTAxLDcgKzEwMSw3IEBAIHNj aGVkX2lkbGVfYWxsb2NfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qg dmNwdSAqdiwKIH0KIAogc3RhdGljIHZvaWQKLXNjaGVkX2lkbGVfZnJlZV92ZGF0YShjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHZvaWQgKnByaXYpCitzY2hlZF9pZGxlX2ZyZWVfdWRhdGEo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpwcml2KQogewogfQogCkBAIC0xMjQs OCArMTI0LDggQEAgc3RhdGljIHN0cnVjdCBzY2hlZHVsZXIgc2NoZWRfaWRsZV9vcHMgPSB7CiAg ICAgLnBpY2tfY3B1ICAgICAgID0gc2NoZWRfaWRsZV9jcHVfcGljaywKICAgICAuZG9fc2NoZWR1 bGUgICAgPSBzY2hlZF9pZGxlX3NjaGVkdWxlLAogCi0gICAgLmFsbG9jX3ZkYXRhICAgID0gc2No ZWRfaWRsZV9hbGxvY192ZGF0YSwKLSAgICAuZnJlZV92ZGF0YSAgICAgPSBzY2hlZF9pZGxlX2Zy ZWVfdmRhdGEsCisgICAgLmFsbG9jX3VkYXRhICAgID0gc2NoZWRfaWRsZV9hbGxvY191ZGF0YSwK KyAgICAuZnJlZV91ZGF0YSAgICAgPSBzY2hlZF9pZGxlX2ZyZWVfdWRhdGEsCiAgICAgLnN3aXRj aF9zY2hlZCAgID0gc2NoZWRfaWRsZV9zd2l0Y2hfc2NoZWQsCiB9OwogCkBAIC0zMDgsOSArMzA4 LDE2IEBAIHN0YXRpYyB2b2lkIHNjaGVkX3NwaW5fdW5sb2NrX2RvdWJsZShzcGlubG9ja190ICps b2NrMSwgc3BpbmxvY2tfdCAqbG9jazIsCiBpbnQgc2NoZWRfaW5pdF92Y3B1KHN0cnVjdCB2Y3B1 ICp2LCB1bnNpZ25lZCBpbnQgcHJvY2Vzc29yKQogewogICAgIHN0cnVjdCBkb21haW4gKmQgPSB2 LT5kb21haW47CisgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQ7CiAKICAgICB2LT5wcm9jZXNz b3IgPSBwcm9jZXNzb3I7CiAKKyAgICBpZiAoICh1bml0ID0geHphbGxvYyhzdHJ1Y3Qgc2NoZWRf dW5pdCkpID09IE5VTEwgKQorICAgICAgICByZXR1cm4gMTsKKyAgICB1bml0LT52Y3B1X2xpc3Qg PSB2OworICAgIHVuaXQtPnVuaXRfaWQgPSB2LT52Y3B1X2lkOworICAgIHVuaXQtPmRvbWFpbiA9 IGQ7CisKICAgICAvKiBJbml0aWFsaXNlIHRoZSBwZXItdmNwdSB0aW1lcnMuICovCiAgICAgc3Bp bl9sb2NrX2luaXQoJnYtPnBlcmlvZGljX3RpbWVyX2xvY2spOwogICAgIGluaXRfdGltZXIoJnYt PnBlcmlvZGljX3RpbWVyLCB2Y3B1X3BlcmlvZGljX3RpbWVyX2ZuLApAQCAtMzIwLDkgKzMyNywx NCBAQCBpbnQgc2NoZWRfaW5pdF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgcHJv Y2Vzc29yKQogICAgIGluaXRfdGltZXIoJnYtPnBvbGxfdGltZXIsIHBvbGxfdGltZXJfZm4sCiAg ICAgICAgICAgICAgICB2LCB2LT5wcm9jZXNzb3IpOwogCi0gICAgdi0+c2NoZWRfcHJpdiA9IHNj aGVkX2FsbG9jX3ZkYXRhKGRvbV9zY2hlZHVsZXIoZCksIHYsIGQtPnNjaGVkX3ByaXYpOworICAg IHYtPnNjaGVkX3ByaXYgPSBzY2hlZF9hbGxvY191ZGF0YShkb21fc2NoZWR1bGVyKGQpLCB1bml0 LCBkLT5zY2hlZF9wcml2KTsKICAgICBpZiAoIHYtPnNjaGVkX3ByaXYgPT0gTlVMTCApCisgICAg eworICAgICAgICB4ZnJlZSh1bml0KTsKICAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAg di0+c2NoZWRfdW5pdCA9IHVuaXQ7CiAKICAgICAvKgogICAgICAqIEluaXRpYWxpemUgYWZmaW5p dHkgc2V0dGluZ3MuIFRoZSBpZGxlciwgYW5kIHBvdGVudGlhbGx5CkBAIC0zNDEsNyArMzUzLDcg QEAgaW50IHNjaGVkX2luaXRfdmNwdShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHByb2Nl c3NvcikKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgc2NoZWRfaW5zZXJ0X3ZjcHUo ZG9tX3NjaGVkdWxlcihkKSwgdik7CisgICAgICAgIHNjaGVkX2luc2VydF91bml0KGRvbV9zY2hl ZHVsZXIoZCksIHVuaXQpOwogICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtMzgyLDExICszOTQs MTIgQEAgaW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBjcHVw b29sICpjKQogCiAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgIHsKLSAgICAgICAgdmNw dV9wcml2W3YtPnZjcHVfaWRdID0gc2NoZWRfYWxsb2NfdmRhdGEoYy0+c2NoZWQsIHYsIGRvbWRh dGEpOworICAgICAgICB2Y3B1X3ByaXZbdi0+dmNwdV9pZF0gPSBzY2hlZF9hbGxvY191ZGF0YShj LT5zY2hlZCwgdi0+c2NoZWRfdW5pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZG9tZGF0YSk7CiAgICAgICAgIGlmICggdmNwdV9wcml2W3YtPnZj cHVfaWRdID09IE5VTEwgKQogICAgICAgICB7CiAgICAgICAgICAgICBmb3JfZWFjaF92Y3B1ICgg ZCwgdiApCi0gICAgICAgICAgICAgICAgc2NoZWRfZnJlZV92ZGF0YShjLT5zY2hlZCwgdmNwdV9w cml2W3YtPnZjcHVfaWRdKTsKKyAgICAgICAgICAgICAgICBzY2hlZF9mcmVlX3VkYXRhKGMtPnNj aGVkLCB2Y3B1X3ByaXZbdi0+dmNwdV9pZF0pOwogICAgICAgICAgICAgeGZyZWUodmNwdV9wcml2 KTsKICAgICAgICAgICAgIHNjaGVkX2ZyZWVfZG9tZGF0YShjLT5zY2hlZCwgZG9tZGF0YSk7CiAg ICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKQEAgLTQwMCw3ICs0MTMsNyBAQCBpbnQgc2NoZWRf bW92ZV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMpCiAKICAgICBm b3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgewotICAgICAgICBzY2hlZF9yZW1vdmVfdmNwdShv bGRfb3BzLCB2KTsKKyAgICAgICAgc2NoZWRfcmVtb3ZlX3VuaXQob2xkX29wcywgdi0+c2NoZWRf dW5pdCk7CiAgICAgfQogCiAgICAgZC0+Y3B1cG9vbCA9IGM7CkBAIC00MzUsOSArNDQ4LDkgQEAg aW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBjcHVwb29sICpj KQogCiAgICAgICAgIG5ld19wID0gY3B1bWFza19jeWNsZShuZXdfcCwgYy0+Y3B1X3ZhbGlkKTsK IAotICAgICAgICBzY2hlZF9pbnNlcnRfdmNwdShjLT5zY2hlZCwgdik7CisgICAgICAgIHNjaGVk X2luc2VydF91bml0KGMtPnNjaGVkLCB2LT5zY2hlZF91bml0KTsKIAotICAgICAgICBzY2hlZF9m cmVlX3ZkYXRhKG9sZF9vcHMsIHZjcHVkYXRhKTsKKyAgICAgICAgc2NoZWRfZnJlZV91ZGF0YShv bGRfb3BzLCB2Y3B1ZGF0YSk7CiAgICAgfQogCiAgICAgZG9tYWluX3VwZGF0ZV9ub2RlX2FmZmlu aXR5KGQpOwpAQCAtNDUzLDEzICs0NjYsMTcgQEAgaW50IHNjaGVkX21vdmVfZG9tYWluKHN0cnVj dCBkb21haW4gKmQsIHN0cnVjdCBjcHVwb29sICpjKQogCiB2b2lkIHNjaGVkX2Rlc3Ryb3lfdmNw dShzdHJ1Y3QgdmNwdSAqdikKIHsKKyAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCA9IHYtPnNj aGVkX3VuaXQ7CisKICAgICBraWxsX3RpbWVyKCZ2LT5wZXJpb2RpY190aW1lcik7CiAgICAga2ls bF90aW1lcigmdi0+c2luZ2xlc2hvdF90aW1lcik7CiAgICAga2lsbF90aW1lcigmdi0+cG9sbF90 aW1lcik7CiAgICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9ib29sKHYtPmlzX3VyZ2VudCkgKQogICAg ICAgICBhdG9taWNfZGVjKCZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIHYtPnByb2Nlc3NvcikudXJn ZW50X2NvdW50KTsKLSAgICBzY2hlZF9yZW1vdmVfdmNwdSh2Y3B1X3NjaGVkdWxlcih2KSwgdik7 Ci0gICAgc2NoZWRfZnJlZV92ZGF0YSh2Y3B1X3NjaGVkdWxlcih2KSwgdi0+c2NoZWRfcHJpdik7 CisgICAgc2NoZWRfcmVtb3ZlX3VuaXQodmNwdV9zY2hlZHVsZXIodiksIHVuaXQpOworICAgIHNj aGVkX2ZyZWVfdWRhdGEodmNwdV9zY2hlZHVsZXIodiksIHYtPnNjaGVkX3ByaXYpOworICAgIHYt PnNjaGVkX3VuaXQgPSBOVUxMOworICAgIHhmcmVlKHVuaXQpOwogfQogCiBpbnQgc2NoZWRfaW5p dF9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgaW50IHBvb2xpZCkKQEAgLTUxMCw3ICs1MjcsNyBA QCB2b2lkIHZjcHVfc2xlZXBfbm9zeW5jX2xvY2tlZChzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAg aWYgKCB2LT5ydW5zdGF0ZS5zdGF0ZSA9PSBSVU5TVEFURV9ydW5uYWJsZSApCiAgICAgICAgICAg ICB2Y3B1X3J1bnN0YXRlX2NoYW5nZSh2LCBSVU5TVEFURV9vZmZsaW5lLCBOT1coKSk7CiAKLSAg ICAgICAgc2NoZWRfc2xlZXAodmNwdV9zY2hlZHVsZXIodiksIHYpOworICAgICAgICBzY2hlZF9z bGVlcCh2Y3B1X3NjaGVkdWxlcih2KSwgdi0+c2NoZWRfdW5pdCk7CiAgICAgfQogfQogCkBAIC01 NTEsNyArNTY4LDcgQEAgdm9pZCB2Y3B1X3dha2Uoc3RydWN0IHZjcHUgKnYpCiAgICAgewogICAg ICAgICBpZiAoIHYtPnJ1bnN0YXRlLnN0YXRlID49IFJVTlNUQVRFX2Jsb2NrZWQgKQogICAgICAg ICAgICAgdmNwdV9ydW5zdGF0ZV9jaGFuZ2UodiwgUlVOU1RBVEVfcnVubmFibGUsIE5PVygpKTsK LSAgICAgICAgc2NoZWRfd2FrZSh2Y3B1X3NjaGVkdWxlcih2KSwgdik7CisgICAgICAgIHNjaGVk X3dha2UodmNwdV9zY2hlZHVsZXIodiksIHYtPnNjaGVkX3VuaXQpOwogICAgIH0KICAgICBlbHNl IGlmICggISh2LT5wYXVzZV9mbGFncyAmIFZQRl9ibG9ja2VkKSApCiAgICAgewpAQCAtNjA2LDcg KzYyMyw3IEBAIHN0YXRpYyB2b2lkIHZjcHVfbW92ZV9sb2NrZWQoc3RydWN0IHZjcHUgKnYsIHVu c2lnbmVkIGludCBuZXdfY3B1KQogICAgICAqIEFjdHVhbCBDUFUgc3dpdGNoIHRvIG5ldyBDUFUu ICBUaGlzIGlzIHNhZmUgYmVjYXVzZSB0aGUgbG9jawogICAgICAqIHBvaW50ZXIgY2FuJ3QgY2hh bmdlIHdoaWxlIHRoZSBjdXJyZW50IGxvY2sgaXMgaGVsZC4KICAgICAgKi8KLSAgICBzY2hlZF9t aWdyYXRlKHZjcHVfc2NoZWR1bGVyKHYpLCB2LCBuZXdfY3B1KTsKKyAgICBzY2hlZF9taWdyYXRl KHZjcHVfc2NoZWR1bGVyKHYpLCB2LT5zY2hlZF91bml0LCBuZXdfY3B1KTsKIH0KIAogLyoKQEAg LTY4NCw3ICs3MDEsNyBAQCBzdGF0aWMgdm9pZCB2Y3B1X21pZ3JhdGVfZmluaXNoKHN0cnVjdCB2 Y3B1ICp2KQogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAvKiBTZWxlY3Qg YSBuZXcgQ1BVLiAqLwotICAgICAgICAgICAgbmV3X2NwdSA9IHNjaGVkX3BpY2tfY3B1KHZjcHVf c2NoZWR1bGVyKHYpLCB2KTsKKyAgICAgICAgICAgIG5ld19jcHUgPSBzY2hlZF9waWNrX2NwdSh2 Y3B1X3NjaGVkdWxlcih2KSwgdi0+c2NoZWRfdW5pdCk7CiAgICAgICAgICAgICBpZiAoIChuZXdf bG9jayA9PSBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIG5ld19jcHUpLnNjaGVkdWxlX2xvY2spICYm CiAgICAgICAgICAgICAgICAgIGNwdW1hc2tfdGVzdF9jcHUobmV3X2NwdSwgdi0+ZG9tYWluLT5j cHVwb29sLT5jcHVfdmFsaWQpICkKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTc3Niw3ICs3 OTMsNyBAQCB2b2lkIHJlc3RvcmVfdmNwdV9hZmZpbml0eShzdHJ1Y3QgZG9tYWluICpkKQogCiAg ICAgICAgIC8qIHYtPnByb2Nlc3NvciBtaWdodCBoYXZlIGNoYW5nZWQsIHNvIHJlYWNxdWlyZSB0 aGUgbG9jay4gKi8KICAgICAgICAgbG9jayA9IHZjcHVfc2NoZWR1bGVfbG9ja19pcnEodik7Ci0g ICAgICAgIHYtPnByb2Nlc3NvciA9IHNjaGVkX3BpY2tfY3B1KHZjcHVfc2NoZWR1bGVyKHYpLCB2 KTsKKyAgICAgICAgdi0+cHJvY2Vzc29yID0gc2NoZWRfcGlja19jcHUodmNwdV9zY2hlZHVsZXIo diksIHYtPnNjaGVkX3VuaXQpOwogICAgICAgICBzcGluX3VubG9ja19pcnEobG9jayk7CiAKICAg ICAgICAgaWYgKCBvbGRfY3B1ICE9IHYtPnByb2Nlc3NvciApCkBAIC04ODgsNyArOTA1LDcgQEAg c3RhdGljIGludCBjcHVfZGlzYWJsZV9zY2hlZHVsZXJfY2hlY2sodW5zaWduZWQgaW50IGNwdSkK IHZvaWQgc2NoZWRfc2V0X2FmZmluaXR5KAogICAgIHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBjcHVt YXNrX3QgKmhhcmQsIGNvbnN0IGNwdW1hc2tfdCAqc29mdCkKIHsKLSAgICBzY2hlZF9hZGp1c3Rf YWZmaW5pdHkoZG9tX3NjaGVkdWxlcih2LT5kb21haW4pLCB2LCBoYXJkLCBzb2Z0KTsKKyAgICBz Y2hlZF9hZGp1c3RfYWZmaW5pdHkoZG9tX3NjaGVkdWxlcih2LT5kb21haW4pLCB2LT5zY2hlZF91 bml0LCBoYXJkLCBzb2Z0KTsKIAogICAgIGlmICggaGFyZCApCiAgICAgICAgIGNwdW1hc2tfY29w eSh2LT5jcHVfaGFyZF9hZmZpbml0eSwgaGFyZCk7CkBAIC0xMDYzLDcgKzEwODAsNyBAQCBsb25n IHZjcHVfeWllbGQodm9pZCkKICAgICBzdHJ1Y3QgdmNwdSAqIHY9Y3VycmVudDsKICAgICBzcGlu bG9ja190ICpsb2NrID0gdmNwdV9zY2hlZHVsZV9sb2NrX2lycSh2KTsKIAotICAgIHNjaGVkX3lp ZWxkKHZjcHVfc2NoZWR1bGVyKHYpLCB2KTsKKyAgICBzY2hlZF95aWVsZCh2Y3B1X3NjaGVkdWxl cih2KSwgdi0+c2NoZWRfdW5pdCk7CiAgICAgdmNwdV9zY2hlZHVsZV91bmxvY2tfaXJxKGxvY2ss IHYpOwogCiAgICAgU0NIRURfU1RBVF9DUkFOSyh2Y3B1X3lpZWxkKTsKQEAgLTE2MTIsNyArMTYy OSw3IEBAIHZvaWQgY29udGV4dF9zYXZlZChzdHJ1Y3QgdmNwdSAqcHJldikKICAgICAvKiBDaGVj ayBmb3IgbWlncmF0aW9uIHJlcXVlc3QgL2FmdGVyLyBjbGVhcmluZyBydW5uaW5nIGZsYWcuICov CiAgICAgc21wX21iKCk7CiAKLSAgICBzY2hlZF9jb250ZXh0X3NhdmVkKHZjcHVfc2NoZWR1bGVy KHByZXYpLCBwcmV2KTsKKyAgICBzY2hlZF9jb250ZXh0X3NhdmVkKHZjcHVfc2NoZWR1bGVyKHBy ZXYpLCBwcmV2LT5zY2hlZF91bml0KTsKIAogICAgIHZjcHVfbWlncmF0ZV9maW5pc2gocHJldik7 CiB9CkBAIC0xNzc4LDggKzE3OTUsOCBAQCB2b2lkIF9faW5pdCBzY2hlZHVsZXJfaW5pdCh2b2lk KQogICAgICAgICBzY2hlZF90ZXN0X2Z1bmMoaW5pdCk7CiAgICAgICAgIHNjaGVkX3Rlc3RfZnVu YyhkZWluaXQpOwogICAgICAgICBzY2hlZF90ZXN0X2Z1bmMocGlja19jcHUpOwotICAgICAgICBz Y2hlZF90ZXN0X2Z1bmMoYWxsb2NfdmRhdGEpOwotICAgICAgICBzY2hlZF90ZXN0X2Z1bmMoZnJl ZV92ZGF0YSk7CisgICAgICAgIHNjaGVkX3Rlc3RfZnVuYyhhbGxvY191ZGF0YSk7CisgICAgICAg IHNjaGVkX3Rlc3RfZnVuYyhmcmVlX3VkYXRhKTsKICAgICAgICAgc2NoZWRfdGVzdF9mdW5jKHN3 aXRjaF9zY2hlZCk7CiAgICAgICAgIHNjaGVkX3Rlc3RfZnVuYyhkb19zY2hlZHVsZSk7CiAKQEAg LTE4ODgsNyArMTkwNSw4IEBAIGludCBzY2hlZHVsZV9jcHVfc3dpdGNoKHVuc2lnbmVkIGludCBj cHUsIHN0cnVjdCBjcHVwb29sICpjKQogICAgIHBwcml2ID0gc2NoZWRfYWxsb2NfcGRhdGEobmV3 X29wcywgY3B1KTsKICAgICBpZiAoIElTX0VSUihwcHJpdikgKQogICAgICAgICByZXR1cm4gUFRS X0VSUihwcHJpdik7Ci0gICAgdnByaXYgPSBzY2hlZF9hbGxvY192ZGF0YShuZXdfb3BzLCBpZGxl LCBpZGxlLT5kb21haW4tPnNjaGVkX3ByaXYpOworICAgIHZwcml2ID0gc2NoZWRfYWxsb2NfdWRh dGEobmV3X29wcywgaWRsZS0+c2NoZWRfdW5pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlkbGUtPmRvbWFpbi0+c2NoZWRfcHJpdik7CiAgICAgaWYgKCB2cHJpdiA9PSBOVUxMICkK ICAgICB7CiAgICAgICAgIHNjaGVkX2ZyZWVfcGRhdGEobmV3X29wcywgcHByaXYsIGNwdSk7CkBA IC0xOTMzLDcgKzE5NTEsNyBAQCBpbnQgc2NoZWR1bGVfY3B1X3N3aXRjaCh1bnNpZ25lZCBpbnQg Y3B1LCBzdHJ1Y3QgY3B1cG9vbCAqYykKIAogICAgIHNjaGVkX2RlaW5pdF9wZGF0YShvbGRfb3Bz LCBwcHJpdl9vbGQsIGNwdSk7CiAKLSAgICBzY2hlZF9mcmVlX3ZkYXRhKG9sZF9vcHMsIHZwcml2 X29sZCk7CisgICAgc2NoZWRfZnJlZV91ZGF0YShvbGRfb3BzLCB2cHJpdl9vbGQpOwogICAgIHNj aGVkX2ZyZWVfcGRhdGEob2xkX29wcywgcHByaXZfb2xkLCBjcHUpOwogCiAgICAgcGVyX2NwdShj cHVwb29sLCBjcHUpID0gYzsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5o IGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKaW5kZXggZGMyNTViMDY0Yi4uYTEwZjI3OGJh MyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmgKKysrIGIveGVuL2luY2x1 ZGUveGVuL3NjaGVkLWlmLmgKQEAgLTE0MCw5ICsxNDAsOSBAQCBzdHJ1Y3Qgc2NoZWR1bGVyIHsK ICAgICBpbnQgICAgICAgICAgKCppbml0KSAgICAgICAgICAgKHN0cnVjdCBzY2hlZHVsZXIgKik7 CiAgICAgdm9pZCAgICAgICAgICgqZGVpbml0KSAgICAgICAgIChzdHJ1Y3Qgc2NoZWR1bGVyICop OwogCi0gICAgdm9pZCAgICAgICAgICgqZnJlZV92ZGF0YSkgICAgIChjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICosIHZvaWQgKik7Ci0gICAgdm9pZCAqICAgICAgICgqYWxsb2NfdmRhdGEpICAgIChj b25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHN0cnVjdCB2Y3B1ICosCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2b2lkICopOworICAgIHZvaWQgICAgICAgICAoKmZyZWVfdWRh dGEpICAgICAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqLCB2b2lkICopOworICAgIHZvaWQgKiAg ICAgICAoKmFsbG9jX3VkYXRhKSAgICAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKiwgdm9pZCAq KTsKICAgICB2b2lkICAgICAgICAgKCpmcmVlX3BkYXRhKSAgICAgKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKiwgdm9pZCAqLCBpbnQpOwogICAgIHZvaWQgKiAgICAgICAoKmFsbG9jX3BkYXRhKSAg ICAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqLCBpbnQpOwogICAgIHZvaWQgICAgICAgICAoKmlu aXRfcGRhdGEpICAgICAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqLCB2b2lkICosIGludCk7CkBA IC0xNTYsMjQgKzE1NiwzMiBAQCBzdHJ1Y3Qgc2NoZWR1bGVyIHsKICAgICBzcGlubG9ja190ICog KCpzd2l0Y2hfc2NoZWQpICAgKHN0cnVjdCBzY2hlZHVsZXIgKiwgdW5zaWduZWQgaW50LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqLCB2b2lkICopOwogCi0gICAg LyogQWN0aXZhdGUgLyBkZWFjdGl2YXRlIHZjcHVzIGluIGEgY3B1IHBvb2wgKi8KLSAgICB2b2lk ICAgICAgICAgKCppbnNlcnRfdmNwdSkgICAgKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKiwgc3Ry dWN0IHZjcHUgKik7Ci0gICAgdm9pZCAgICAgICAgICgqcmVtb3ZlX3ZjcHUpICAgIChjb25zdCBz dHJ1Y3Qgc2NoZWR1bGVyICosIHN0cnVjdCB2Y3B1ICopOwotCi0gICAgdm9pZCAgICAgICAgICgq c2xlZXApICAgICAgICAgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHN0cnVjdCB2Y3B1ICop OwotICAgIHZvaWQgICAgICAgICAoKndha2UpICAgICAgICAgICAoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqLCBzdHJ1Y3QgdmNwdSAqKTsKLSAgICB2b2lkICAgICAgICAgKCp5aWVsZCkgICAgICAg ICAgKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKiwgc3RydWN0IHZjcHUgKik7Ci0gICAgdm9pZCAg ICAgICAgICgqY29udGV4dF9zYXZlZCkgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHN0cnVj dCB2Y3B1ICopOworICAgIC8qIEFjdGl2YXRlIC8gZGVhY3RpdmF0ZSB1bml0cyBpbiBhIGNwdSBw b29sICovCisgICAgdm9pZCAgICAgICAgICgqaW5zZXJ0X3VuaXQpICAgIChjb25zdCBzdHJ1Y3Qg c2NoZWR1bGVyICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg c2NoZWRfdW5pdCAqKTsKKyAgICB2b2lkICAgICAgICAgKCpyZW1vdmVfdW5pdCkgICAgKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzY2hlZF91bml0ICopOworCisgICAgdm9pZCAgICAgICAgICgqc2xlZXApICAgICAg ICAgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqKTsKKyAgICB2b2lkICAgICAgICAgKCp3YWtl KSAgICAgICAgICAgKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY2hlZF91bml0ICopOworICAgIHZvaWQgICAgICAg ICAoKnlpZWxkKSAgICAgICAgICAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKik7CisgICAgdm9p ZCAgICAgICAgICgqY29udGV4dF9zYXZlZCkgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqKTsK IAogICAgIHN0cnVjdCB0YXNrX3NsaWNlICgqZG9fc2NoZWR1bGUpIChjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICosIHNfdGltZV90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sX3QgdGFza2xldF93b3JrX3NjaGVkdWxlZCk7CiAKLSAgICBpbnQgICAgICAgICAgKCpw aWNrX2NwdSkgICAgICAgKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKiwgc3RydWN0IHZjcHUgKik7 Ci0gICAgdm9pZCAgICAgICAgICgqbWlncmF0ZSkgICAgICAgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICosIHN0cnVjdCB2Y3B1ICosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQpOworICAgIGludCAgICAgICAgICAoKnBpY2tfY3B1KSAgICAgICAoY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKik7CisgICAgdm9pZCAgICAgICAgICgqbWlncmF0 ZSkgICAgICAgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfdW5pdCAqLCB1bnNpZ25lZCBpbnQpOwogICAg IGludCAgICAgICAgICAoKmFkanVzdCkgICAgICAgICAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq LCBzdHJ1Y3QgZG9tYWluICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZHVsZXJfb3AgKik7Ci0gICAgdm9pZCAgICAgICAgICgqYWRq dXN0X2FmZmluaXR5KShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHN0cnVjdCB2Y3B1ICosCisg ICAgdm9pZCAgICAgICAgICgqYWRqdXN0X2FmZmluaXR5KShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfdW5p dCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGNw dW1hc2sgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCBjcHVtYXNrICopOwogICAgIGludCAgICAgICAgICAoKmFkanVzdF9nbG9iYWwpICAoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqLApAQCAtMjY3LDc1ICsyNzUsODEgQEAgc3RhdGljIGlubGluZSB2 b2lkIHNjaGVkX2RlaW5pdF9wZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpzLCB2b2lkICpk YXRhLAogICAgICAgICBzLT5kZWluaXRfcGRhdGEocywgZGF0YSwgY3B1KTsKIH0KIAotc3RhdGlj IGlubGluZSB2b2lkICpzY2hlZF9hbGxvY192ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpz LCBzdHJ1Y3QgdmNwdSAqdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dm9pZCAqZG9tX2RhdGEpCitzdGF0aWMgaW5saW5lIHZvaWQgKnNjaGVkX2FsbG9jX3VkYXRhKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0LCB2b2lkICpkb21fZGF0YSkKIHsKLSAgICBy ZXR1cm4gcy0+YWxsb2NfdmRhdGEocywgdiwgZG9tX2RhdGEpOworICAgIHJldHVybiBzLT5hbGxv Y191ZGF0YShzLCB1bml0LCBkb21fZGF0YSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBzY2hl ZF9mcmVlX3ZkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsIHZvaWQgKmRhdGEpCitzdGF0 aWMgaW5saW5lIHZvaWQgc2NoZWRfZnJlZV91ZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpz LCB2b2lkICpkYXRhKQogewotICAgIHMtPmZyZWVfdmRhdGEocywgZGF0YSk7CisgICAgcy0+ZnJl ZV91ZGF0YShzLCBkYXRhKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2luc2VydF92 Y3B1KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsIHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIGlu bGluZSB2b2lkIHNjaGVkX2luc2VydF91bml0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVu aXQpCiB7Ci0gICAgaWYgKCBzLT5pbnNlcnRfdmNwdSApCi0gICAgICAgIHMtPmluc2VydF92Y3B1 KHMsIHYpOworICAgIGlmICggcy0+aW5zZXJ0X3VuaXQgKQorICAgICAgICBzLT5pbnNlcnRfdW5p dChzLCB1bml0KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX3JlbW92ZV92Y3B1KGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsIHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIGlubGluZSB2 b2lkIHNjaGVkX3JlbW92ZV91bml0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7 Ci0gICAgaWYgKCBzLT5yZW1vdmVfdmNwdSApCi0gICAgICAgIHMtPnJlbW92ZV92Y3B1KHMsIHYp OworICAgIGlmICggcy0+cmVtb3ZlX3VuaXQgKQorICAgICAgICBzLT5yZW1vdmVfdW5pdChzLCB1 bml0KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX3NsZWVwKGNvbnN0IHN0cnVjdCBz Y2hlZHVsZXIgKnMsIHN0cnVjdCB2Y3B1ICp2KQorc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX3Ns ZWVwKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgaWYgKCBzLT5zbGVlcCApCi0g ICAgICAgIHMtPnNsZWVwKHMsIHYpOworICAgICAgICBzLT5zbGVlcChzLCB1bml0KTsKIH0KIAot c3RhdGljIGlubGluZSB2b2lkIHNjaGVkX3dha2UoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqcywg c3RydWN0IHZjcHUgKnYpCitzdGF0aWMgaW5saW5lIHZvaWQgc2NoZWRfd2FrZShjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNj aGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgaWYgKCBzLT53YWtlICkKLSAgICAgICAgcy0+d2FrZShz LCB2KTsKKyAgICAgICAgcy0+d2FrZShzLCB1bml0KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lk IHNjaGVkX3lpZWxkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMsIHN0cnVjdCB2Y3B1ICp2KQor c3RhdGljIGlubGluZSB2b2lkIHNjaGVkX3lpZWxkKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKnMs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiB7CiAgICAgaWYgKCBzLT55aWVsZCApCi0gICAgICAgIHMtPnlpZWxkKHMsIHYpOworICAgICAg ICBzLT55aWVsZChzLCB1bml0KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2NvbnRl eHRfc2F2ZWQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqcywKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2Y3B1ICp2KQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQpCiB7CiAgICAgaWYgKCBz LT5jb250ZXh0X3NhdmVkICkKLSAgICAgICAgcy0+Y29udGV4dF9zYXZlZChzLCB2KTsKKyAgICAg ICAgcy0+Y29udGV4dF9zYXZlZChzLCB1bml0KTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHNj aGVkX21pZ3JhdGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqcywgc3RydWN0IHZjcHUgKnYsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY3B1KQorc3RhdGlj IGlubGluZSB2b2lkIHNjaGVkX21pZ3JhdGUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqcywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzY2hlZF91bml0ICp1bml0LCB1 bnNpZ25lZCBpbnQgY3B1KQogewogICAgIGlmICggcy0+bWlncmF0ZSApCi0gICAgICAgIHMtPm1p Z3JhdGUocywgdiwgY3B1KTsKKyAgICAgICAgcy0+bWlncmF0ZShzLCB1bml0LCBjcHUpOwogICAg IGVsc2UKLSAgICAgICAgdi0+cHJvY2Vzc29yID0gY3B1OworICAgICAgICB1bml0LT52Y3B1X2xp c3QtPnByb2Nlc3NvciA9IGNwdTsKIH0KIAotc3RhdGljIGlubGluZSBpbnQgc2NoZWRfcGlja19j cHUoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqcywgc3RydWN0IHZjcHUgKnYpCitzdGF0aWMgaW5s aW5lIGludCBzY2hlZF9waWNrX2NwdShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpzLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQp CiB7Ci0gICAgcmV0dXJuIHMtPnBpY2tfY3B1KHMsIHYpOworICAgIHJldHVybiBzLT5waWNrX2Nw dShzLCB1bml0KTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2FkanVzdF9hZmZpbml0 eShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgdmNwdSAqdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHNjaGVkX3VuaXQgKnVuaXQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNwdW1hc2tfdCAqaGFyZCwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3B1bWFza190ICpzb2Z0KQog ewogICAgIGlmICggcy0+YWRqdXN0X2FmZmluaXR5ICkKLSAgICAgICAgcy0+YWRqdXN0X2FmZmlu aXR5KHMsIHYsIGhhcmQsIHNvZnQpOworICAgICAgICBzLT5hZGp1c3RfYWZmaW5pdHkocywgdW5p dCwgaGFyZCwgc29mdCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgaW50IHNjaGVkX2FkanVzdF9kb20o Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqcywgc3RydWN0IGRvbWFpbiAqZCwKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKaW5kZXgg NmYyZWU0YzJlYS4uZWJlOTViNTlhNCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVk LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKQEAgLTE2MSw2ICsxNjEsNyBAQCBzdHJ1 Y3QgdmNwdQogCiAgICAgc3RydWN0IHRpbWVyICAgICBwb2xsX3RpbWVyOyAgICAvKiB0aW1lb3V0 IGZvciBTQ0hFRE9QX3BvbGwgKi8KIAorICAgIHN0cnVjdCBzY2hlZF91bml0ICpzY2hlZF91bml0 OwogICAgIHZvaWQgICAgICAgICAgICAqc2NoZWRfcHJpdjsgICAgLyogc2NoZWR1bGVyLXNwZWNp ZmljIGRhdGEgKi8KIAogICAgIHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gcnVuc3RhdGU7CkBA IC0yNzMsNiArMjc0LDEyIEBAIHN0cnVjdCB2Y3B1CiAgICAgc3RydWN0IGFyY2hfdmNwdSBhcmNo OwogfTsKIAorc3RydWN0IHNjaGVkX3VuaXQgeworICAgIHN0cnVjdCBkb21haW4gICAgICAgICAq ZG9tYWluOworICAgIHN0cnVjdCB2Y3B1ICAgICAgICAgICAqdmNwdV9saXN0OworICAgIHVuc2ln bmVkIGludCAgICAgICAgICAgdW5pdF9pZDsKK307CisKIC8qIFBlci1kb21haW4gbG9jayBjYW4g YmUgcmVjdXJzaXZlbHkgYWNxdWlyZWQgaW4gZmF1bHQgaGFuZGxlcnMuICovCiAjZGVmaW5lIGRv bWFpbl9sb2NrKGQpIHNwaW5fbG9ja19yZWN1cnNpdmUoJihkKS0+ZG9tYWluX2xvY2spCiAjZGVm aW5lIGRvbWFpbl91bmxvY2soZCkgc3Bpbl91bmxvY2tfcmVjdXJzaXZlKCYoZCktPmRvbWFpbl9s b2NrKQotLSAKMi4xNi40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVj dC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1k ZXZlbA==