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 BD81DC4332E for ; Sun, 22 Mar 2020 16:15:29 +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 8CEB420724 for ; Sun, 22 Mar 2020 16:15:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8CEB420724 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass 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 1jG3Fi-00053V-Qp; Sun, 22 Mar 2020 16:15:06 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jG3Fh-00051y-Gl for xen-devel@lists.xenproject.org; Sun, 22 Mar 2020 16:15:05 +0000 X-Inumbo-ID: 3da33d0e-6c58-11ea-bec1-bc764e2007e4 Received: from mail-ed1-f66.google.com (unknown [209.85.208.66]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 3da33d0e-6c58-11ea-bec1-bc764e2007e4; Sun, 22 Mar 2020 16:14:44 +0000 (UTC) Received: by mail-ed1-f66.google.com with SMTP id w26so7148658edu.7 for ; Sun, 22 Mar 2020 09:14:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=VngiJqA4TkOWd+cn3jQ19eMxtcbS39mHRtbW5NY77TQ=; b=CBTxP7cfkA5vjI5DTGXMCoZG8fUzvlZUV5qOm+RgMqVKwvqTWmfUgqfHG6aQcioZJO 01MxTLtCIJoMkSNawAGEq5GjvEZFnUqWRzklbqwHdz8ttW1RDKgHRdIu7T01n/dXRLds GNe+8bgE7i+cLvOc/JNS2kt2+rZ+L/USD+c1u7yOIvfLZEi+1fGNPMEVW9+3zZokUj9O zcTFALaXQ0Vf4ocx3Zvsk12Sm50P6j7Xo/v7IjAEnyPBzj8RckGmIXxjjCh8h4OQNbxf dzXTy7MDLK+OBq4naTro5BPDAT5zEUTBZ1FeKcZkhoW3hEFQMXZLYmfxTRi1M78/ckHa ivKA== X-Gm-Message-State: ANhLgQ3Jsuc7Lke3RI8PQm46ev+Egt28QiNMHd1nB/tN6v6GBsx9rfrN l1qFIlL0OYLbcbRoYLMEdSERJhkv7xr7uQ== X-Google-Smtp-Source: ADFU+vu0RCOUkPAG1LZcBxX3raqRlP4Hn2Dv7hIjR4k0+Iy+kCTkNRiueMPr9HQKcAg1NdcPR7+SOg== X-Received: by 2002:a17:906:7f07:: with SMTP id d7mr15669902ejr.54.1584893682125; Sun, 22 Mar 2020 09:14:42 -0700 (PDT) Received: from ufe34d9ed68d054.ant.amazon.com (54-240-197-235.amazon.com. [54.240.197.235]) by smtp.gmail.com with ESMTPSA id v13sm106693edj.62.2020.03.22.09.14.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Mar 2020 09:14:41 -0700 (PDT) From: julien@xen.org To: xen-devel@lists.xenproject.org Date: Sun, 22 Mar 2020 16:14:18 +0000 Message-Id: <20200322161418.31606-18-julien@xen.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200322161418.31606-1-julien@xen.org> References: <20200322161418.31606-1-julien@xen.org> Subject: [Xen-devel] [PATCH 17/17] xen: Switch parameter in get_page_from_gfn to use typesafe gfn 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: Kevin Tian , Stefano Stabellini , julien@xen.org, Jun Nakajima , Wei Liu , Paul Durrant , Andrew Cooper , Ian Jackson , George Dunlap , Tim Deegan , Julien Grall , Jan Beulich , Volodymyr Babchuk , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= 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" RnJvbTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCk5vIGZ1bmN0aW9uYWwg Y2hhbmdlIGludGVuZGVkLgoKT25seSByZWFzb25hYmxlIGNsZWFuLXVwcyBhcmUgZG9uZSBpbiB0 aGlzIHBhdGNoLiBUaGUgcmVzdCB3aWxsIHVzZSBfZ2ZuCmZvciB0aGUgdGltZSBiZWluZy4KClNp Z25lZC1vZmYtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CgotLS0KCmdl dF9wYWdlX2Zyb21fZ2ZuKCkgaXMgY3VycmVudGx5IHVzaW5nIGFuIHVuc2FmZSBwYXR0ZXJuIGFz IGFuIE1GTgpzaG91bGQgYmUgdmFsaWRhdGVkIHZpYSBtZm5fdmFsaWQoKSBiZWZvcmUgdXNpbmcg bWZuX3RvX3BhZ2UoKS4KCkF0IEphbidzIHJlcXVlc3QsIHRoaXMgd2FzIGRyb3BwZWQgZm9yIHRo aXMgcGF0Y2ggYXMgdGhpcyB3YXMgdW5yZWxhdGVkLgpJZiB3ZSB3YW50IHRvIGZpeCBpdCBwcm9w ZXJseSwgdGhlbiBpdCBzaG91bGQgYmUgZG9uZSBpbiBhIHNlcGFyYXRlCnBhdGNoIGFsb25nIHdp dGggdGhlbSBtb2RpZmljYXRpb25zIG9mIGFsbCB0aGUgb3RoZXIgY2FsbGVycyB1c2luZyB0aGlz CmJhZCBiZWhhdmlvci4uCgogICAgVGhpcyB3YXMgb3JpZ2luYWxseSBzZW50IGFzIHBhcnQgb2Yg Ik1vcmUgdHlwZXNhZmUgY29udmVyc2lvbiBvZiBjb21tb24KICAgIGludGVyZmFjZS4iIFsxXS4K CiAgICBDaGFuZ2VzIHNpbmNlIHRoZSBvcmlnaW5hbCBwYXRjaDoKICAgICAgICAtIFVzZSBjcjNf dG9fZ2ZuKCkKICAgICAgICAtIFJlbW92ZSB0aGUgcmUtb3JkZXJpbmcgb2YgbWZuX3ZhbGlkKCkg YW5kIG1mbl90b19wYWdlKCkgKHNlZQogICAgICAgICAgYWJvdmUpLgoKICAgIFsxXSA8MjAxOTA4 MTkxNDI2NTEuMTEwNTgtMS1qdWxpZW4uZ3JhbGxAYXJtLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0v Z3Vlc3Rjb3B5LmMgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gvYXJtL21tLmMgICAgICAg ICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jICAgICAgICAgICAg ICB8ICAyICstCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgICAgICAgICAgICAgfCAgNiArKyst LS0KIHhlbi9hcmNoL3g4Ni9odm0vZG0uYyAgICAgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJj aC94ODYvaHZtL2RvbWFpbi5jICAgICAgICAgICAgfCAgNiArKysrLS0KIHhlbi9hcmNoL3g4Ni9o dm0vaHZtLmMgICAgICAgICAgICAgICB8ICA5ICsrKysrLS0tLQogeGVuL2FyY2gveDg2L2h2bS9z dm0vc3ZtLmMgICAgICAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdmlyaWRp YW4vdmlyaWRpYW4uYyB8IDE2ICsrKysrKysrLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyAg ICAgICAgICB8IDEyICsrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAg ICAgICAgIHwgMjQgKysrKysrKysrKysrKystLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJt LmMgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L21tL3NoYWRvdy9odm0uYyAg ICAgICAgIHwgIDYgKysrLS0tCiB4ZW4vYXJjaC94ODYvcGh5c2Rldi5jICAgICAgICAgICAgICAg fCAgMyArKy0KIHhlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxlcy5jICB8ICA0ICsrLS0K IHhlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYyAgICAgICB8ICA2ICsrKy0tLQogeGVuL2Fy Y2gveDg2L3B2L21tLmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni90cmFw cy5jICAgICAgICAgICAgICAgICB8IDExICsrKysrKy0tLS0tCiB4ZW4vY29tbW9uL2RvbWFpbi5j ICAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2NvbW1vbi9ldmVudF9maWZvLmMgICAgICAg ICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiB4ZW4vY29tbW9uL21lbW9yeS5jICAgICAgICAgICAg ICAgICAgfCAgNCArKy0tCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oICAgICAgICAgICAgfCAg NiArKystLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggICAgICAgICAgICB8IDEyICsrKysr KysrLS0tLQogMjQgZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2d1ZXN0Y29weS5jIGIveGVuL2FyY2gvYXJt L2d1ZXN0Y29weS5jCmluZGV4IDdhMGYzZTlkNWYuLjU1ODkyMDYyYmIgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL2FybS9ndWVzdGNvcHkuYworKysgYi94ZW4vYXJjaC9hcm0vZ3Vlc3Rjb3B5LmMKQEAg LTM3LDcgKzM3LDcgQEAgc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKnRyYW5zbGF0ZV9nZXRfcGFn ZShjb3B5X2luZm9fdCBpbmZvLCB1aW50NjRfdCBhZGRyLAogICAgICAgICByZXR1cm4gZ2V0X3Bh Z2VfZnJvbV9ndmEoaW5mby5ndmEudiwgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdyaXRlID8gR1YyTV9XUklURSA6IEdWMk1fUkVBRCk7CiAKLSAgICBwYWdlID0gZ2V0 X3BhZ2VfZnJvbV9nZm4oaW5mby5ncGEuZCwgcGFkZHJfdG9fcGZuKGFkZHIpLCAmcDJtdCwgUDJN X0FMTE9DKTsKKyAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oaW5mby5ncGEuZCwgZ2FkZHJf dG9fZ2ZuKGFkZHIpLCAmcDJtdCwgUDJNX0FMTE9DKTsKIAogICAgIGlmICggIXBhZ2UgKQogICAg ICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9tbS5jIGIveGVuL2Fy Y2gvYXJtL21tLmMKaW5kZXggMTA3NWU1ZmNhZi4uZDBhZDA2YWRkNCAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL21tLmMKKysrIGIveGVuL2FyY2gvYXJtL21tLmMKQEAgLTE0NDYsNyArMTQ0Niw3 IEBAIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKAogCiAgICAgICAgIC8qIFRha2UgcmVm ZXJlbmNlIHRvIHRoZSBmb3JlaWduIGRvbWFpbiBwYWdlLgogICAgICAgICAgKiBSZWZlcmVuY2Ug d2lsbCBiZSByZWxlYXNlZCBpbiBYRU5NRU1fcmVtb3ZlX2Zyb21fcGh5c21hcCAqLwotICAgICAg ICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4ob2QsIGlkeCwgJnAybXQsIFAyTV9BTExPQyk7Cisg ICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihvZCwgX2dmbihpZHgpLCAmcDJtdCwgUDJN X0FMTE9DKTsKICAgICAgICAgaWYgKCAhcGFnZSApCiAgICAgICAgIHsKICAgICAgICAgICAgIHB1 dF9wZ19vd25lcihvZCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L3ZwbXUuYyBiL3hl bi9hcmNoL3g4Ni9jcHUvdnBtdS5jCmluZGV4IGU1MGQ0NzhkMjMuLjk3NzdlZmE0ZmIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvdnBtdS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvdnBt dS5jCkBAIC02MTcsNyArNjE3LDcgQEAgc3RhdGljIGludCBwdnBtdV9pbml0KHN0cnVjdCBkb21h aW4gKmQsIHhlbl9wbXVfcGFyYW1zX3QgKnBhcmFtcykKICAgICBzdHJ1Y3QgdmNwdSAqdjsKICAg ICBzdHJ1Y3QgdnBtdV9zdHJ1Y3QgKnZwbXU7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsK LSAgICB1aW50NjRfdCBnZm4gPSBwYXJhbXMtPnZhbDsKKyAgICBnZm5fdCBnZm4gPSBfZ2ZuKHBh cmFtcy0+dmFsKTsKIAogICAgIGlmICggKHBhcmFtcy0+dmNwdSA+PSBkLT5tYXhfdmNwdXMpIHx8 IChkLT52Y3B1W3BhcmFtcy0+dmNwdV0gPT0gTlVMTCkgKQogICAgICAgICByZXR1cm4gLUVJTlZB TDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21j dGwuYwppbmRleCAwMjU5NmMzODEwLi44ZjUwMTBmZDU4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC0zOTEsNyArMzkxLDcg QEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg ICAgIH0KIAotICAgICAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdmbiwgJnQs IFAyTV9BTExPQyk7CisgICAgICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgX2dm bihnZm4pLCAmdCwgUDJNX0FMTE9DKTsKIAogICAgICAgICAgICAgaWYgKCB1bmxpa2VseSghcGFn ZSkgfHwKICAgICAgICAgICAgICAgICAgdW5saWtlbHkoaXNfeGVuX2hlYXBfcGFnZShwYWdlKSkg KQpAQCAtNDYxLDExICs0NjEsMTEgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKIAogICAgIGNhc2Ug WEVOX0RPTUNUTF9oeXBlcmNhbGxfaW5pdDoKICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcg Z21mbiA9IGRvbWN0bC0+dS5oeXBlcmNhbGxfaW5pdC5nbWZuOworICAgICAgICBnZm5fdCBnZm4g PSBfZ2ZuKGRvbWN0bC0+dS5oeXBlcmNhbGxfaW5pdC5nbWZuKTsKICAgICAgICAgc3RydWN0IHBh Z2VfaW5mbyAqcGFnZTsKICAgICAgICAgdm9pZCAqaHlwZXJjYWxsX3BhZ2U7CiAKLSAgICAgICAg cGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdtZm4sIE5VTEwsIFAyTV9BTExPQyk7CisgICAg ICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sIE5VTEwsIFAyTV9BTExPQyk7CiAK ICAgICAgICAgaWYgKCAhcGFnZSB8fCAhZ2V0X3BhZ2VfdHlwZShwYWdlLCBQR1Rfd3JpdGFibGVf cGFnZSkgKQogICAgICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RtLmMgYi94 ZW4vYXJjaC94ODYvaHZtL2RtLmMKaW5kZXggOTZjNTA0MmI3NS4uYTA5NjIyMDA3YyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS9kbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG0uYwpA QCAtMTg4LDcgKzE4OCw3IEBAIHN0YXRpYyBpbnQgbW9kaWZpZWRfbWVtb3J5KHN0cnVjdCBkb21h aW4gKmQsCiAgICAgICAgIHsKICAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAK LSAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBwZm4sIE5VTEwsIFAyTV9V TlNIQVJFKTsKKyAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBfZ2ZuKHBm biksIE5VTEwsIFAyTV9VTlNIQVJFKTsKICAgICAgICAgICAgIGlmICggcGFnZSApCiAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgcGFnaW5nX21hcmtfcGZuX2RpcnR5KGQsIF9wZm4ocGZu KSk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2RvbWFpbi5jIGIveGVuL2FyY2gveDg2 L2h2bS9kb21haW4uYwppbmRleCA1ZDVhNzQ2YTI1Li4zYzI5ZmY4NmJlIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaHZtL2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMK QEAgLTI5Niw4ICsyOTYsMTAgQEAgaW50IGFyY2hfc2V0X2luZm9faHZtX2d1ZXN0KHN0cnVjdCB2 Y3B1ICp2LCBjb25zdCB2Y3B1X2h2bV9jb250ZXh0X3QgKmN0eCkKICAgICBpZiAoIGh2bV9wYWdp bmdfZW5hYmxlZCh2KSAmJiAhcGFnaW5nX21vZGVfaGFwKHYtPmRvbWFpbikgKQogICAgIHsKICAg ICAgICAgLyogU2hhZG93LW1vZGUgQ1IzIGNoYW5nZS4gQ2hlY2sgUERCUiBhbmQgdXBkYXRlIHJl ZmNvdW50cy4gKi8KLSAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IGdldF9wYWdlX2Zy b21fZ2ZuKHYtPmRvbWFpbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmFy Y2guaHZtLmd1ZXN0X2NyWzNdID4+IFBBR0VfU0hJRlQsCisgICAgICAgIHN0cnVjdCBwYWdlX2lu Zm8gKnBhZ2U7CisKKyAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhZGRyX3RvX2dmbih2LT5hcmNoLmh2 bS5ndWVzdF9jclszXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBQ Mk1fQUxMT0MpOwogICAgICAgICBpZiAoICFwYWdlICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggYTNk MTE1YjY1MC4uOWY3MjBlN2FhMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYwor KysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0yMjE2LDcgKzIyMTYsNyBAQCBpbnQgaHZt X3NldF9jcjAodW5zaWduZWQgbG9uZyB2YWx1ZSwgYm9vbCBtYXlfZGVmZXIpCiB7CiAgICAgc3Ry dWN0IHZjcHUgKnYgPSBjdXJyZW50OwogICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47 Ci0gICAgdW5zaWduZWQgbG9uZyBnZm4sIG9sZF92YWx1ZSA9IHYtPmFyY2guaHZtLmd1ZXN0X2Ny WzBdOworICAgIHVuc2lnbmVkIGxvbmcgb2xkX3ZhbHVlID0gdi0+YXJjaC5odm0uZ3Vlc3RfY3Jb MF07CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKIAogICAgIEhWTV9EQkdfTE9HKERCR19M RVZFTF9WTU1VLCAiVXBkYXRlIENSMCB2YWx1ZSA9ICVseCIsIHZhbHVlKTsKQEAgLTIyNzEsNyAr MjI3MSw4IEBAIGludCBodm1fc2V0X2NyMCh1bnNpZ25lZCBsb25nIHZhbHVlLCBib29sIG1heV9k ZWZlcikKICAgICAgICAgaWYgKCAhcGFnaW5nX21vZGVfaGFwKGQpICkKICAgICAgICAgewogICAg ICAgICAgICAgLyogVGhlIGd1ZXN0IENSMyBtdXN0IGJlIHBvaW50aW5nIHRvIHRoZSBndWVzdCBw aHlzaWNhbC4gKi8KLSAgICAgICAgICAgIGdmbiA9IHYtPmFyY2guaHZtLmd1ZXN0X2NyWzNdID4+ IFBBR0VfU0hJRlQ7CisgICAgICAgICAgICBnZm5fdCBnZm4gPSBnYWRkcl90b19nZm4odi0+YXJj aC5odm0uZ3Vlc3RfY3JbM10pOworCiAgICAgICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9n Zm4oZCwgZ2ZuLCBOVUxMLCBQMk1fQUxMT0MpOwogICAgICAgICAgICAgaWYgKCAhcGFnZSApCiAg ICAgICAgICAgICB7CkBAIC0yMzYzLDcgKzIzNjQsNyBAQCBpbnQgaHZtX3NldF9jcjModW5zaWdu ZWQgbG9uZyB2YWx1ZSwgYm9vbCBtYXlfZGVmZXIpCiAgICAgewogICAgICAgICAvKiBTaGFkb3ct bW9kZSBDUjMgY2hhbmdlLiBDaGVjayBQREJSIGFuZCB1cGRhdGUgcmVmY291bnRzLiAqLwogICAg ICAgICBIVk1fREJHX0xPRyhEQkdfTEVWRUxfVk1NVSwgIkNSMyB2YWx1ZSA9ICVseCIsIHZhbHVl KTsKLSAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwgdmFsdWUgPj4g UEFHRV9TSElGVCwKKyAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwg Y3IzX3RvX2dmbih2YWx1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LCBQMk1fQUxMT0MpOwogICAgICAgICBpZiAoICFwYWdlICkKICAgICAgICAgICAgIGdvdG8gYmFk X2NyMzsKQEAgLTMxOTEsNyArMzE5Miw3IEBAIGVudW0gaHZtX3RyYW5zbGF0aW9uX3Jlc3VsdCBo dm1fdHJhbnNsYXRlX2dldF9wYWdlKAogICAgICAgICAgJiYgaHZtX21taW9faW50ZXJuYWwoZ2Zu X3RvX2dhZGRyKGdmbikpICkKICAgICAgICAgcmV0dXJuIEhWTVRSQU5TX2JhZF9nZm5fdG9fbWZu OwogCi0gICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwgZ2ZuX3goZ2ZuKSwg JnAybXQsIFAyTV9VTlNIQVJFKTsKKyAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4odi0+ZG9t YWluLCBnZm4sICZwMm10LCBQMk1fVU5TSEFSRSk7CiAKICAgICBpZiAoICFwYWdlICkKICAgICAg ICAgcmV0dXJuIEhWTVRSQU5TX2JhZF9nZm5fdG9fbWZuOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwppbmRleCAzMmQ4 ZDg0N2YyLi5hOWFiZDZkM2YxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0u YworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtMjk5LDcgKzI5OSw3IEBAIHN0 YXRpYyBpbnQgc3ZtX3ZtY2JfcmVzdG9yZShzdHJ1Y3QgdmNwdSAqdiwgc3RydWN0IGh2bV9od19j cHUgKmMpCiAgICAgewogICAgICAgICBpZiAoIGMtPmNyMCAmIFg4Nl9DUjBfUEcgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4odi0+ZG9tYWluLCBjLT5j cjMgPj4gUEFHRV9TSElGVCwKKyAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbih2 LT5kb21haW4sIGNyM190b19nZm4oYy0+Y3IzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCBQMk1fQUxMT0MpOwogICAgICAgICAgICAgaWYgKCAhcGFnZSApCiAg ICAgICAgICAgICB7CkBAIC0yMjMwLDkgKzIyMzAsOSBAQCBuc3ZtX2dldF9udm1jYl9wYWdlKHN0 cnVjdCB2Y3B1ICp2LCB1aW50NjRfdCB2bWNiYWRkcikKICAgICAgICAgcmV0dXJuIE5VTEw7CiAK ICAgICAvKiBOZWVkIHRvIHRyYW5zbGF0ZSBMMS1HUEEgdG8gTVBBICovCi0gICAgcGFnZSA9IGdl dF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg bnYtPm52X3Z2bWN4YWRkciA+PiBQQUdFX1NISUZULCAKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmcDJtdCwgUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUpOworICAgIHBhZ2UgPSBnZXRfcGFn ZV9mcm9tX2dmbih2LT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhZGRy X3RvX2dmbihudi0+bnZfdnZtY3hhZGRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg JnAybXQsIFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFKTsKICAgICBpZiAoICFwYWdlICkKICAgICAg ICAgcmV0dXJuIE5VTEw7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4v dmlyaWRpYW4uYyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4vdmlyaWRpYW4uYwppbmRleCA5 NzdjMWJjNTRmLi4zZDc1YTBmMTMzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Zpcmlk aWFuL3ZpcmlkaWFuLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92aXJpZGlhbi92aXJpZGlhbi5j CkBAIC0yNDIsMTYgKzI0MiwxNiBAQCBzdGF0aWMgdm9pZCBkdW1wX2h5cGVyY2FsbChjb25zdCBz dHJ1Y3QgZG9tYWluICpkKQogCiBzdGF0aWMgdm9pZCBlbmFibGVfaHlwZXJjYWxsX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCkKIHsKLSAgICB1bnNpZ25lZCBsb25nIGdtZm4gPSBkLT5hcmNoLmh2bS52 aXJpZGlhbi0+aHlwZXJjYWxsX2dwYS5wZm47Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9 IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdtZm4sIE5VTEwsIFAyTV9BTExPQyk7CisgICAgZ2ZuX3Qg Z2ZuID0gX2dmbihkLT5hcmNoLmh2bS52aXJpZGlhbi0+aHlwZXJjYWxsX2dwYS5wZm4pOworICAg IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sIE5VTEws IFAyTV9BTExPQyk7CiAgICAgdWludDhfdCAqcDsKIAogICAgIGlmICggIXBhZ2UgfHwgIWdldF9w YWdlX3R5cGUocGFnZSwgUEdUX3dyaXRhYmxlX3BhZ2UpICkKICAgICB7CiAgICAgICAgIGlmICgg cGFnZSApCiAgICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKLSAgICAgICAgZ2RwcmludGsoWEVO TE9HX1dBUk5JTkcsICJCYWQgR01GTiAlIyJQUklfZ2ZuIiAoTUZOICUjIlBSSV9tZm4iKVxuIiwK LSAgICAgICAgICAgICAgICAgZ21mbiwgbWZuX3gocGFnZSA/IHBhZ2VfdG9fbWZuKHBhZ2UpIDog SU5WQUxJRF9NRk4pKTsKKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJCYWQgR0ZO ICUjIlBSSV9nZm4iIChNRk4gJSMiUFJJX21mbiIpXG4iLAorICAgICAgICAgICAgICAgICBnZm5f eChnZm4pLCBtZm5feChwYWdlID8gcGFnZV90b19tZm4ocGFnZSkgOiBJTlZBTElEX01GTikpOwog ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MTksMTMgKzcxOSwxMyBAQCB2b2lkIHZpcmlk aWFuX2R1bXBfZ3Vlc3RfcGFnZShjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgY29uc3QgY2hhciAqbmFt ZSwKIAogdm9pZCB2aXJpZGlhbl9tYXBfZ3Vlc3RfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1 Y3QgdmlyaWRpYW5fcGFnZSAqdnApCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBnbWZuID0gdnAtPm1z ci5wZm47CisgICAgZ2ZuX3QgZ2ZuID0gX2dmbih2cC0+bXNyLnBmbik7CiAgICAgc3RydWN0IHBh Z2VfaW5mbyAqcGFnZTsKIAogICAgIGlmICggdnAtPnB0ciApCiAgICAgICAgIHJldHVybjsKIAot ICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCBOVUxMLCBQMk1fQUxMT0MpOwor ICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sIE5VTEwsIFAyTV9BTExPQyk7CiAg ICAgaWYgKCAhcGFnZSApCiAgICAgICAgIGdvdG8gZmFpbDsKIApAQCAtNzQ2LDggKzc0Niw4IEBA IHZvaWQgdmlyaWRpYW5fbWFwX2d1ZXN0X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZp cmlkaWFuX3BhZ2UgKnZwKQogICAgIHJldHVybjsKIAogIGZhaWw6Ci0gICAgZ2RwcmludGsoWEVO TE9HX1dBUk5JTkcsICJCYWQgR01GTiAlIyJQUklfZ2ZuIiAoTUZOICUjIlBSSV9tZm4iKVxuIiwK LSAgICAgICAgICAgICBnbWZuLCBtZm5feChwYWdlID8gcGFnZV90b19tZm4ocGFnZSkgOiBJTlZB TElEX01GTikpOworICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQmFkIEdGTiAlIyJQUklf Z2ZuIiAoTUZOICUjIlBSSV9tZm4iKVxuIiwKKyAgICAgICAgICAgICBnZm5feChnZm4pLCBtZm5f eChwYWdlID8gcGFnZV90b19tZm4ocGFnZSkgOiBJTlZBTElEX01GTikpOwogfQogCiB2b2lkIHZp cmlkaWFuX3VubWFwX2d1ZXN0X3BhZ2Uoc3RydWN0IHZpcmlkaWFuX3BhZ2UgKnZwKQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bXguYwppbmRleCBhMWUzYTE5YzBhLi5mMTg5OGM2M2M1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAtNjgx LDcgKzY4MSw3IEBAIHN0YXRpYyBpbnQgdm14X3Jlc3RvcmVfY3IwX2NyMygKICAgICB7CiAgICAg ICAgIGlmICggY3IwICYgWDg2X0NSMF9QRyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHBhZ2Ug PSBnZXRfcGFnZV9mcm9tX2dmbih2LT5kb21haW4sIGNyMyA+PiBQQUdFX1NISUZULAorICAgICAg ICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwgZ2FkZHJfdG9fZ2ZuKGNy MyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgUDJNX0FMTE9D KTsKICAgICAgICAgICAgIGlmICggIXBhZ2UgKQogICAgICAgICAgICAgewpAQCAtMTMyMSw3ICsx MzIxLDcgQEAgc3RhdGljIHZvaWQgdm14X2xvYWRfcGRwdHJzKHN0cnVjdCB2Y3B1ICp2KQogICAg IGlmICggKGNyMyAmIDB4MWZVTCkgJiYgIWh2bV9wY2lkX2VuYWJsZWQodikgKQogICAgICAgICBn b3RvIGNyYXNoOwogCi0gICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwgY3Iz ID4+IFBBR0VfU0hJRlQsICZwMm10LCBQMk1fVU5TSEFSRSk7CisgICAgcGFnZSA9IGdldF9wYWdl X2Zyb21fZ2ZuKHYtPmRvbWFpbiwgZ2FkZHJfdG9fZ2ZuKGNyMyksICZwMm10LCBQMk1fVU5TSEFS RSk7CiAgICAgaWYgKCAhcGFnZSApCiAgICAgewogICAgICAgICAvKiBJZGVhbGx5IHlvdSBkb24n dCB3YW50IHRvIGNyYXNoIGJ1dCByYXRoZXIgZ28gaW50byBhIHdhaXQgCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMK aW5kZXggODRiNDdlZjI3Ny4uZWVlNGFmMzIwNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS92bXgvdnZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYwpAQCAtNzE4LDEx ICs3MTgsMTEgQEAgc3RhdGljIHZvaWQgbnZteF91cGRhdGVfYXBpY19hY2Nlc3NfYWRkcmVzcyhz dHJ1Y3QgdmNwdSAqdikKICAgICBpZiAoIGN0cmwgJiBTRUNPTkRBUllfRVhFQ19WSVJUVUFMSVpF X0FQSUNfQUNDRVNTRVMgKQogICAgIHsKICAgICAgICAgcDJtX3R5cGVfdCBwMm10OwotICAgICAg ICB1bnNpZ25lZCBsb25nIGFwaWNfZ3BmbjsKKyAgICAgICAgZ2ZuX3QgYXBpY19nZm47CiAgICAg ICAgIHN0cnVjdCBwYWdlX2luZm8gKmFwaWNfcGc7CiAKLSAgICAgICAgYXBpY19ncGZuID0gZ2V0 X3Z2bWNzKHYsIEFQSUNfQUNDRVNTX0FERFIpID4+IFBBR0VfU0hJRlQ7Ci0gICAgICAgIGFwaWNf cGcgPSBnZXRfcGFnZV9mcm9tX2dmbih2LT5kb21haW4sIGFwaWNfZ3BmbiwgJnAybXQsIFAyTV9B TExPQyk7CisgICAgICAgIGFwaWNfZ2ZuID0gZ2FkZHJfdG9fZ2ZuKGdldF92dm1jcyh2LCBBUElD X0FDQ0VTU19BRERSKSk7CisgICAgICAgIGFwaWNfcGcgPSBnZXRfcGFnZV9mcm9tX2dmbih2LT5k b21haW4sIGFwaWNfZ2ZuLCAmcDJtdCwgUDJNX0FMTE9DKTsKICAgICAgICAgQVNTRVJUKGFwaWNf cGcgJiYgIXAybV9pc19wYWdpbmcocDJtdCkpOwogICAgICAgICBfX3Ztd3JpdGUoQVBJQ19BQ0NF U1NfQUREUiwgcGFnZV90b19tYWRkcihhcGljX3BnKSk7CiAgICAgICAgIHB1dF9wYWdlKGFwaWNf cGcpOwpAQCAtNzM5LDExICs3MzksMTEgQEAgc3RhdGljIHZvaWQgbnZteF91cGRhdGVfdmlydHVh bF9hcGljX2FkZHJlc3Moc3RydWN0IHZjcHUgKnYpCiAgICAgaWYgKCBjdHJsICYgQ1BVX0JBU0VE X1RQUl9TSEFET1cgKQogICAgIHsKICAgICAgICAgcDJtX3R5cGVfdCBwMm10OwotICAgICAgICB1 bnNpZ25lZCBsb25nIHZhcGljX2dwZm47CisgICAgICAgIGdmbl90IHZhcGljX2dmbjsKICAgICAg ICAgc3RydWN0IHBhZ2VfaW5mbyAqdmFwaWNfcGc7CiAKLSAgICAgICAgdmFwaWNfZ3BmbiA9IGdl dF92dm1jcyh2LCBWSVJUVUFMX0FQSUNfUEFHRV9BRERSKSA+PiBQQUdFX1NISUZUOwotICAgICAg ICB2YXBpY19wZyA9IGdldF9wYWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwgdmFwaWNfZ3BmbiwgJnAy bXQsIFAyTV9BTExPQyk7CisgICAgICAgIHZhcGljX2dmbiA9IGdhZGRyX3RvX2dmbihnZXRfdnZt Y3ModiwgVklSVFVBTF9BUElDX1BBR0VfQUREUikpOworICAgICAgICB2YXBpY19wZyA9IGdldF9w YWdlX2Zyb21fZ2ZuKHYtPmRvbWFpbiwgdmFwaWNfZ2ZuLCAmcDJtdCwgUDJNX0FMTE9DKTsKICAg ICAgICAgQVNTRVJUKHZhcGljX3BnICYmICFwMm1faXNfcGFnaW5nKHAybXQpKTsKICAgICAgICAg X192bXdyaXRlKFZJUlRVQUxfQVBJQ19QQUdFX0FERFIsIHBhZ2VfdG9fbWFkZHIodmFwaWNfcGcp KTsKICAgICAgICAgcHV0X3BhZ2UodmFwaWNfcGcpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCAyZmViN2E1OTkzLi5iOWE2NTY2NDNiIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAt MjE1MCw3ICsyMTUwLDcgQEAgc3RhdGljIGludCBtb2RfbDFfZW50cnkobDFfcGdlbnRyeV90ICpw bDFlLCBsMV9wZ2VudHJ5X3QgbmwxZSwKICAgICAgICAgICAgIHAybV9xdWVyeV90IHEgPSBsMWVf Z2V0X2ZsYWdzKG5sMWUpICYgX1BBR0VfUlcgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAg IFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFIDogUDJNX0FMTE9DOwogCi0gICAgICAgICAgICBwYWdl ID0gZ2V0X3BhZ2VfZnJvbV9nZm4ocGdfZG9tLCBsMWVfZ2V0X3BmbihubDFlKSwgJnAybXQsIHEp OworICAgICAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHBnX2RvbSwgX2dmbihsMWVf Z2V0X3BmbihubDFlKSksICZwMm10LCBxKTsKIAogICAgICAgICAgICAgaWYgKCBwMm1faXNfcGFn ZWQocDJtdCkgKQogICAgICAgICAgICAgewpAQCAtMzQzMyw3ICszNDMzLDggQEAgbG9uZyBkb19t bXVleHRfb3AoCiAgICAgICAgICAgICBpZiAoIHBhZ2luZ19tb2RlX3JlZmNvdW50cyhwZ19vd25l cikgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICBwYWdlID0gZ2V0X3Bh Z2VfZnJvbV9nZm4ocGdfb3duZXIsIG9wLmFyZzEubWZuLCBOVUxMLCBQMk1fQUxMT0MpOworICAg ICAgICAgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHBnX293bmVyLCBfZ2ZuKG9wLmFyZzEu bWZuKSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQMk1fQUxM T0MpOwogICAgICAgICAgICAgaWYgKCB1bmxpa2VseSghcGFnZSkgKQogICAgICAgICAgICAgewog ICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKQEAgLTM0OTksNyArMzUwMCw4IEBAIGxvbmcg ZG9fbW11ZXh0X29wKAogICAgICAgICAgICAgaWYgKCBwYWdpbmdfbW9kZV9yZWZjb3VudHMocGdf b3duZXIpICkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgcGFnZSA9IGdl dF9wYWdlX2Zyb21fZ2ZuKHBnX293bmVyLCBvcC5hcmcxLm1mbiwgTlVMTCwgUDJNX0FMTE9DKTsK KyAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihwZ19vd25lciwgX2dmbihvcC5h cmcxLm1mbiksIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUDJN X0FMTE9DKTsKICAgICAgICAgICAgIGlmICggdW5saWtlbHkoIXBhZ2UpICkKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKQEAgLTM3MjQsNyAr MzcyNiw4IEBAIGxvbmcgZG9fbW11ZXh0X29wKAogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBN TVVFWFRfQ0xFQVJfUEFHRToKLSAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihw Z19vd25lciwgb3AuYXJnMS5tZm4sICZwMm10LCBQMk1fQUxMT0MpOworICAgICAgICAgICAgcGFn ZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHBnX293bmVyLCBfZ2ZuKG9wLmFyZzEubWZuKSwgJnAybXQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUDJNX0FMTE9DKTsKICAgICAg ICAgICAgIGlmICggdW5saWtlbHkocDJtdCAhPSBwMm1fcmFtX3J3KSAmJiBwYWdlICkKICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKQEAgLTM3NTIsNyArMzc1 NSw3IEBAIGxvbmcgZG9fbW11ZXh0X29wKAogICAgICAgICB7CiAgICAgICAgICAgICBzdHJ1Y3Qg cGFnZV9pbmZvICpzcmNfcGFnZSwgKmRzdF9wYWdlOwogCi0gICAgICAgICAgICBzcmNfcGFnZSA9 IGdldF9wYWdlX2Zyb21fZ2ZuKHBnX293bmVyLCBvcC5hcmcyLnNyY19tZm4sICZwMm10LAorICAg ICAgICAgICAgc3JjX3BhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihwZ19vd25lciwgX2dmbihvcC5h cmcyLnNyY19tZm4pLCAmcDJtdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUDJNX0FMTE9DKTsKICAgICAgICAgICAgIGlmICggdW5saWtlbHkocDJtdCAhPSBwMm1f cmFtX3J3KSAmJiBzcmNfcGFnZSApCiAgICAgICAgICAgICB7CkBAIC0zNzY4LDcgKzM3NzEsNyBA QCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg IH0KIAotICAgICAgICAgICAgZHN0X3BhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihwZ19vd25lciwg b3AuYXJnMS5tZm4sICZwMm10LAorICAgICAgICAgICAgZHN0X3BhZ2UgPSBnZXRfcGFnZV9mcm9t X2dmbihwZ19vd25lciwgX2dmbihvcC5hcmcxLm1mbiksICZwMm10LAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQMk1fQUxMT0MpOwogICAgICAgICAgICAgaWYgKCB1 bmxpa2VseShwMm10ICE9IHAybV9yYW1fcncpICYmIGRzdF9wYWdlICkKICAgICAgICAgICAgIHsK QEAgLTM4NTYsNyArMzg1OSw4IEBAIGxvbmcgZG9fbW11X3VwZGF0ZSgKIHsKICAgICBzdHJ1Y3Qg bW11X3VwZGF0ZSByZXE7CiAgICAgdm9pZCAqdmEgPSBOVUxMOwotICAgIHVuc2lnbmVkIGxvbmcg Z3BmbiwgZ21mbjsKKyAgICB1bnNpZ25lZCBsb25nIGdwZm47CisgICAgZ2ZuX3QgZ2ZuOwogICAg IHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAgICAgdW5zaWduZWQgaW50IGNtZCwgaSA9IDAsIGRv bmUgPSAwLCBwdF9kb207CiAgICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50LCAqdiA9IGN1 cnI7CkBAIC0zOTY5LDggKzM5NzMsOCBAQCBsb25nIGRvX21tdV91cGRhdGUoCiAgICAgICAgICAg ICByYyA9IC1FSU5WQUw7CiAKICAgICAgICAgICAgIHJlcS5wdHIgLT0gY21kOwotICAgICAgICAg ICAgZ21mbiA9IHJlcS5wdHIgPj4gUEFHRV9TSElGVDsKLSAgICAgICAgICAgIHBhZ2UgPSBnZXRf cGFnZV9mcm9tX2dmbihwdF9vd25lciwgZ21mbiwgJnAybXQsIFAyTV9BTExPQyk7CisgICAgICAg ICAgICBnZm4gPSBnYWRkcl90b19nZm4ocmVxLnB0cik7CisgICAgICAgICAgICBwYWdlID0gZ2V0 X3BhZ2VfZnJvbV9nZm4ocHRfb3duZXIsIGdmbiwgJnAybXQsIFAyTV9BTExPQyk7CiAKICAgICAg ICAgICAgIGlmICggdW5saWtlbHkoIXBhZ2UpIHx8IHAybXQgIT0gcDJtX3JhbV9ydyApCiAgICAg ICAgICAgICB7CkBAIC0zOTc4LDcgKzM5ODIsNyBAQCBsb25nIGRvX21tdV91cGRhdGUoCiAgICAg ICAgICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICAgICAgICAgIGlmICggcDJt X2lzX3BhZ2VkKHAybXQpICkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg IHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKHB0X293bmVyLCBnbWZuKTsKKyAgICAgICAgICAgICAg ICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUocHRfb3duZXIsIGdmbl94KGdmbikpOwogICAg ICAgICAgICAgICAgICAgICByYyA9IC1FTk9FTlQ7CiAgICAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9h cmNoL3g4Ni9tbS9wMm0uYwppbmRleCA1ODdjMDYyNDgxLi4xY2UwMTI2MDBjIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC0y OTY3LDcgKzI5NjcsNyBAQCBpbnQgcDJtX2FkZF9mb3JlaWduKHN0cnVjdCBkb21haW4gKnRkb20s IHVuc2lnbmVkIGxvbmcgZmdmbiwKICAgICAgKiBUYWtlIGEgcmVmY250IG9uIHRoZSBtZm4uIE5C OiBmb2xsb3dpbmcgc3VwcG9ydGVkIGZvciBmb3JlaWduIG1hcHBpbmc6CiAgICAgICogICAgIHJh bV9ydyB8IHJhbV9sb2dkaXJ0eSB8IHJhbV9ybyB8IHBhZ2luZ19vdXQuCiAgICAgICovCi0gICAg cGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGZkb20sIGZnZm4sICZwMm10LCBQMk1fQUxMT0MpOwor ICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihmZG9tLCBfZ2ZuKGZnZm4pLCAmcDJtdCwgUDJN X0FMTE9DKTsKICAgICBpZiAoICFwYWdlIHx8CiAgICAgICAgICAhcDJtX2lzX3JhbShwMm10KSB8 fCBwMm1faXNfc2hhcmVkKHAybXQpIHx8IHAybV9pc19ob2xlKHAybXQpICkKICAgICB7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L2h2bS5jIGIveGVuL2FyY2gveDg2L21tL3No YWRvdy9odm0uYwppbmRleCAxZTYwMjRjNzFmLi5iYjExZjI4NTMxIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbW0vc2hhZG93L2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvaHZt LmMKQEAgLTM5OCwxNSArMzk4LDE1IEBAIHZvaWQgc2hhZG93X2NvbnRpbnVlX2VtdWxhdGlvbihz dHJ1Y3Qgc2hfZW11bGF0ZV9jdHh0ICpzaF9jdHh0LAogc3RhdGljIG1mbl90IGVtdWxhdGVfZ3Zh X3RvX21mbihzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YWRkciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNoX2VtdWxhdGVfY3R4dCAqc2hfY3R4dCkKIHsK LSAgICB1bnNpZ25lZCBsb25nIGdmbjsKKyAgICBnZm5fdCBnZm47CiAgICAgc3RydWN0IHBhZ2Vf aW5mbyAqcGFnZTsKICAgICBtZm5fdCBtZm47CiAgICAgcDJtX3R5cGVfdCBwMm10OwogICAgIHVp bnQzMl90IHBmZWMgPSBQRkVDX3BhZ2VfcHJlc2VudCB8IFBGRUNfd3JpdGVfYWNjZXNzOwogCiAg ICAgLyogVHJhbnNsYXRlIHRoZSBWQSB0byBhIEdGTi4gKi8KLSAgICBnZm4gPSBwYWdpbmdfZ2V0 X2hvc3Rtb2RlKHYpLT5ndmFfdG9fZ2ZuKHYsIE5VTEwsIHZhZGRyLCAmcGZlYyk7Ci0gICAgaWYg KCBnZm4gPT0gZ2ZuX3goSU5WQUxJRF9HRk4pICkKKyAgICBnZm4gPSBfZ2ZuKHBhZ2luZ19nZXRf aG9zdG1vZGUodiktPmd2YV90b19nZm4odiwgTlVMTCwgdmFkZHIsICZwZmVjKSk7CisgICAgaWYg KCBnZm5fZXEoZ2ZuLCBJTlZBTElEX0dGTikgKQogICAgIHsKICAgICAgICAgeDg2X2VtdWxfcGFn ZWZhdWx0KHBmZWMsIHZhZGRyLCAmc2hfY3R4dC0+Y3R4dCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9waHlzZGV2LmMgYi94ZW4vYXJjaC94ODYvcGh5c2Rldi5jCmluZGV4IDNhM2MxNTg5 MGIuLjRmM2Y0Mzg2MTQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMKKysrIGIv eGVuL2FyY2gveDg2L3BoeXNkZXYuYwpAQCAtMjI5LDcgKzIyOSw4IEBAIHJldF90IGRvX3BoeXNk ZXZfb3AoaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiAgICAgICAg ICAgICBicmVhazsKIAogICAgICAgICByZXQgPSAtRUlOVkFMOwotICAgICAgICBwYWdlID0gZ2V0 X3BhZ2VfZnJvbV9nZm4oY3VycmVudC0+ZG9tYWluLCBpbmZvLmdtZm4sIE5VTEwsIFAyTV9BTExP Qyk7CisgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihjdXJyZW50LT5kb21haW4sIF9n Zm4oaW5mby5nbWZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIFAy TV9BTExPQyk7CiAgICAgICAgIGlmICggIXBhZ2UgKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgIGlmICggIWdldF9wYWdlX3R5cGUocGFnZSwgUEdUX3dyaXRhYmxlX3BhZ2UpICkKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxlcy5jIGIveGVuL2FyY2gveDg2 L3B2L2Rlc2NyaXB0b3ItdGFibGVzLmMKaW5kZXggZjIyYmViMWYzYy4uODk5ZWQ0NWM2YSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2Rlc2NyaXB0b3ItdGFibGVzLmMKKysrIGIveGVuL2Fy Y2gveDg2L3B2L2Rlc2NyaXB0b3ItdGFibGVzLmMKQEAgLTExMiw3ICsxMTIsNyBAQCBsb25nIHB2 X3NldF9nZHQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgKmZyYW1lcywgdW5zaWduZWQg aW50IGVudHJpZXMpCiAgICAgewogICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwogCi0g ICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBmcmFtZXNbaV0sIE5VTEwsIFAyTV9B TExPQyk7CisgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBfZ2ZuKGZyYW1lc1tp XSksIE5VTEwsIFAyTV9BTExPQyk7CiAgICAgICAgIGlmICggIXBhZ2UgKQogICAgICAgICAgICAg Z290byBmYWlsOwogICAgICAgICBpZiAoICFnZXRfcGFnZV90eXBlKHBhZ2UsIFBHVF9zZWdfZGVz Y19wYWdlKSApCkBAIC0yMTksNyArMjE5LDcgQEAgbG9uZyBkb191cGRhdGVfZGVzY3JpcHRvcih1 aW50NjRfdCBnYWRkciwgc2VnX2Rlc2NfdCBkKQogICAgIGlmICggIUlTX0FMSUdORUQoZ2FkZHIs IHNpemVvZihkKSkgfHwgIWNoZWNrX2Rlc2NyaXB0b3IoY3VycmQsICZkKSApCiAgICAgICAgIHJl dHVybiAtRUlOVkFMOwogCi0gICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGN1cnJkLCBnZm5f eChnZm4pLCBOVUxMLCBQMk1fQUxMT0MpOworICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihj dXJyZCwgZ2ZuLCBOVUxMLCBQMk1fQUxMT0MpOwogICAgIGlmICggIXBhZ2UgKQogICAgICAgICBy ZXR1cm4gLUVJTlZBTDsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1v cC5jIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCmluZGV4IGUyNGI4NGY0NmEuLjU1 MmI2Njk2MjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYworKysg Yi94ZW4vYXJjaC94ODYvcHYvZW11bC1wcml2LW9wLmMKQEAgLTc1NiwxMiArNzU2LDEyIEBAIHN0 YXRpYyBpbnQgd3JpdGVfY3IodW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgbG9uZyB2YWwsCiAg ICAgY2FzZSAzOiAvKiBXcml0ZSBDUjMgKi8KICAgICB7CiAgICAgICAgIHN0cnVjdCBkb21haW4g KmN1cnJkID0gY3Vyci0+ZG9tYWluOwotICAgICAgICB1bnNpZ25lZCBsb25nIGdmbjsKKyAgICAg ICAgZ2ZuX3QgZ2ZuOwogICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwogICAgICAgICBp bnQgcmM7CiAKLSAgICAgICAgZ2ZuID0gIWlzX3B2XzMyYml0X2RvbWFpbihjdXJyZCkKLSAgICAg ICAgICAgICAgPyB4ZW5fY3IzX3RvX3Bmbih2YWwpIDogY29tcGF0X2NyM190b19wZm4odmFsKTsK KyAgICAgICAgZ2ZuID0gX2dmbighaXNfcHZfMzJiaXRfZG9tYWluKGN1cnJkKQorICAgICAgICAg ICAgICAgICAgID8geGVuX2NyM190b19wZm4odmFsKSA6IGNvbXBhdF9jcjNfdG9fcGZuKHZhbCkp OwogICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oY3VycmQsIGdmbiwgTlVMTCwgUDJN X0FMTE9DKTsKICAgICAgICAgaWYgKCAhcGFnZSApCiAgICAgICAgICAgICBicmVhazsKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9tbS5jIGIveGVuL2FyY2gveDg2L3B2L21tLmMKaW5kZXgg MmIwZGFkYzhkYS4uMDBkZjVlZGQ2ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L21tLmMK KysrIGIveGVuL2FyY2gveDg2L3B2L21tLmMKQEAgLTExMCw3ICsxMTAsNyBAQCBib29sIHB2X21h cF9sZHRfc2hhZG93X3BhZ2UodW5zaWduZWQgaW50IG9mZnNldCkKICAgICBpZiAoIHVubGlrZWx5 KCEobDFlX2dldF9mbGFncyhnbDFlKSAmIF9QQUdFX1BSRVNFTlQpKSApCiAgICAgICAgIHJldHVy biBmYWxzZTsKIAotICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihjdXJyZCwgbDFlX2dldF9w Zm4oZ2wxZSksIE5VTEwsIFAyTV9BTExPQyk7CisgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2Zu KGN1cnJkLCBfZ2ZuKGwxZV9nZXRfcGZuKGdsMWUpKSwgTlVMTCwgUDJNX0FMTE9DKTsKICAgICBp ZiAoIHVubGlrZWx5KCFwYWdlKSApCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwppbmRleCA0ZjUy NGRjNzFlLi5lNWRlODY4NDVmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdHJhcHMuYworKysg Yi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAtODI2LDcgKzgyNiw3IEBAIGludCBndWVzdF93cm1z cl94ZW4oc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGlkeCwgdWludDY0X3QgdmFsKQogICAgIGNh c2UgMDogLyogV3JpdGUgaHlwZXJjYWxsIHBhZ2UgKi8KICAgICB7CiAgICAgICAgIHZvaWQgKmh5 cGVyY2FsbF9wYWdlOwotICAgICAgICB1bnNpZ25lZCBsb25nIGdtZm4gPSB2YWwgPj4gUEFHRV9T SElGVDsKKyAgICAgICAgZ2ZuX3QgZ2ZuID0gZ2FkZHJfdG9fZ2ZuKHZhbCk7CiAgICAgICAgIHVu c2lnbmVkIGludCBwYWdlX2luZGV4ID0gdmFsICYgKFBBR0VfU0laRSAtIDEpOwogICAgICAgICBz dHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwogICAgICAgICBwMm1fdHlwZV90IHQ7CkBAIC04MzksNyAr ODM5LDcgQEAgaW50IGd1ZXN0X3dybXNyX3hlbihzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4 LCB1aW50NjRfdCB2YWwpCiAgICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047CiAg ICAgICAgIH0KIAotICAgICAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ21mbiwgJnQs IFAyTV9BTExPQyk7CisgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sICZ0 LCBQMk1fQUxMT0MpOwogCiAgICAgICAgIGlmICggIXBhZ2UgfHwgIWdldF9wYWdlX3R5cGUocGFn ZSwgUEdUX3dyaXRhYmxlX3BhZ2UpICkKICAgICAgICAgewpAQCAtODQ4LDEzICs4NDgsMTQgQEAg aW50IGd1ZXN0X3dybXNyX3hlbihzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgaWR4LCB1aW50NjRf dCB2YWwpCiAKICAgICAgICAgICAgIGlmICggcDJtX2lzX3BhZ2luZyh0KSApCiAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgZ21mbik7Cisg ICAgICAgICAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgZ2ZuX3goZ2ZuKSk7CiAg ICAgICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxfUkVUUlk7CiAgICAgICAgICAgICB9CiAKICAg ICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLAotICAgICAgICAgICAgICAgICAgICAg IkJhZCBHTUZOICVseCAoTUZOICUjIlBSSV9tZm4iKSB0byBNU1IgJTA4eFxuIiwKLSAgICAgICAg ICAgICAgICAgICAgIGdtZm4sIG1mbl94KHBhZ2UgPyBwYWdlX3RvX21mbihwYWdlKSA6IElOVkFM SURfTUZOKSwgYmFzZSk7CisgICAgICAgICAgICAgICAgICAgICAiQmFkIEdGTiAlIlBSSV9nZm4i IChNRk4gJSJQUklfbWZuIikgdG8gTVNSICUwOHhcbiIsCisgICAgICAgICAgICAgICAgICAgICBn Zm5feChnZm4pLCBtZm5feChwYWdlID8gcGFnZV90b19tZm4ocGFnZSkgOiBJTlZBTElEX01GTiks CisgICAgICAgICAgICAgICAgICAgICBiYXNlKTsKICAgICAgICAgICAgIHJldHVybiBYODZFTVVM X0VYQ0VQVElPTjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWFpbi5j IGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCBiNGViNDc2YTljLi44NDM1NTI4MzgzIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9tYWluLmMKQEAg LTEyMzcsNyArMTIzNyw3IEBAIGludCBtYXBfdmNwdV9pbmZvKHN0cnVjdCB2Y3B1ICp2LCB1bnNp Z25lZCBsb25nIGdmbiwgdW5zaWduZWQgb2Zmc2V0KQogICAgIGlmICggKHYgIT0gY3VycmVudCkg JiYgISh2LT5wYXVzZV9mbGFncyAmIFZQRl9kb3duKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFM OwogCi0gICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdmbiwgTlVMTCwgUDJNX0FMTE9D KTsKKyAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgX2dmbihnZm4pLCBOVUxMLCBQMk1f QUxMT0MpOwogICAgIGlmICggIXBhZ2UgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIApkaWZm IC0tZ2l0IGEveGVuL2NvbW1vbi9ldmVudF9maWZvLmMgYi94ZW4vY29tbW9uL2V2ZW50X2ZpZm8u YwppbmRleCAyMzBmNDQwZjE0Li4wNzM5ODFhYjQzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2V2 ZW50X2ZpZm8uYworKysgYi94ZW4vY29tbW9uL2V2ZW50X2ZpZm8uYwpAQCAtMzYxLDcgKzM2MSw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXZ0Y2huX3BvcnRfb3BzIGV2dGNobl9wb3J0X29wc19m aWZvID0KICAgICAucHJpbnRfc3RhdGUgICA9IGV2dGNobl9maWZvX3ByaW50X3N0YXRlLAogfTsK IAotc3RhdGljIGludCBtYXBfZ3Vlc3RfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBn Zm4sIHZvaWQgKip2aXJ0KQorc3RhdGljIGludCBtYXBfZ3Vlc3RfcGFnZShzdHJ1Y3QgZG9tYWlu ICpkLCBnZm5fdCBnZm4sIHZvaWQgKip2aXJ0KQogewogICAgIHN0cnVjdCBwYWdlX2luZm8gKnA7 CiAKQEAgLTQyMiw3ICs0MjIsNyBAQCBzdGF0aWMgaW50IHNldHVwX2NvbnRyb2xfYmxvY2soc3Ry dWN0IHZjcHUgKnYpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbWFwX2NvbnRyb2xf YmxvY2soc3RydWN0IHZjcHUgKnYsIHVpbnQ2NF90IGdmbiwgdWludDMyX3Qgb2Zmc2V0KQorc3Rh dGljIGludCBtYXBfY29udHJvbF9ibG9jayhzdHJ1Y3QgdmNwdSAqdiwgZ2ZuX3QgZ2ZuLCB1aW50 MzJfdCBvZmZzZXQpCiB7CiAgICAgdm9pZCAqdmlydDsKICAgICB1bnNpZ25lZCBpbnQgaTsKQEAg LTUwOCw3ICs1MDgsNyBAQCBpbnQgZXZ0Y2huX2ZpZm9faW5pdF9jb250cm9sKHN0cnVjdCBldnRj aG5faW5pdF9jb250cm9sICppbml0X2NvbnRyb2wpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9 IGN1cnJlbnQtPmRvbWFpbjsKICAgICB1aW50MzJfdCB2Y3B1X2lkOwotICAgIHVpbnQ2NF90IGdm bjsKKyAgICBnZm5fdCBnZm47CiAgICAgdWludDMyX3Qgb2Zmc2V0OwogICAgIHN0cnVjdCB2Y3B1 ICp2OwogICAgIGludCByYzsKQEAgLTUxNiw3ICs1MTYsNyBAQCBpbnQgZXZ0Y2huX2ZpZm9faW5p dF9jb250cm9sKHN0cnVjdCBldnRjaG5faW5pdF9jb250cm9sICppbml0X2NvbnRyb2wpCiAgICAg aW5pdF9jb250cm9sLT5saW5rX2JpdHMgPSBFVlRDSE5fRklGT19MSU5LX0JJVFM7CiAKICAgICB2 Y3B1X2lkID0gaW5pdF9jb250cm9sLT52Y3B1OwotICAgIGdmbiAgICAgPSBpbml0X2NvbnRyb2wt PmNvbnRyb2xfZ2ZuOworICAgIGdmbiAgICAgPSBfZ2ZuKGluaXRfY29udHJvbC0+Y29udHJvbF9n Zm4pOwogICAgIG9mZnNldCAgPSBpbml0X2NvbnRyb2wtPm9mZnNldDsKIAogICAgIGlmICggKHYg PSBkb21haW5fdmNwdShkLCB2Y3B1X2lkKSkgPT0gTlVMTCApCkBAIC01NzgsNyArNTc4LDcgQEAg aW50IGV2dGNobl9maWZvX2luaXRfY29udHJvbChzdHJ1Y3QgZXZ0Y2huX2luaXRfY29udHJvbCAq aW5pdF9jb250cm9sKQogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBhZGRfcGFnZV90 b19ldmVudF9hcnJheShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKK3N0YXRp YyBpbnQgYWRkX3BhZ2VfdG9fZXZlbnRfYXJyYXkoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2Zu KQogewogICAgIHZvaWQgKnZpcnQ7CiAgICAgdW5zaWduZWQgaW50IHNsb3Q7CkBAIC02MjgsNyAr NjI4LDcgQEAgaW50IGV2dGNobl9maWZvX2V4cGFuZF9hcnJheShjb25zdCBzdHJ1Y3QgZXZ0Y2hu X2V4cGFuZF9hcnJheSAqZXhwYW5kX2FycmF5KQogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7 CiAKICAgICBzcGluX2xvY2soJmQtPmV2ZW50X2xvY2spOwotICAgIHJjID0gYWRkX3BhZ2VfdG9f ZXZlbnRfYXJyYXkoZCwgZXhwYW5kX2FycmF5LT5hcnJheV9nZm4pOworICAgIHJjID0gYWRkX3Bh Z2VfdG9fZXZlbnRfYXJyYXkoZCwgX2dmbihleHBhbmRfYXJyYXktPmFycmF5X2dmbikpOwogICAg IHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKIAogICAgIHJldHVybiByYzsKZGlmZiAtLWdp dCBhL3hlbi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IDZlNGI4 NTY3NGQuLjdlM2MzYmI3YWYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIv eGVuL2NvbW1vbi9tZW1vcnkuYwpAQCAtMTM4OCw3ICsxMzg4LDcgQEAgbG9uZyBkb19tZW1vcnlf b3AodW5zaWduZWQgbG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQog ICAgICAgICAgICAgcmV0dXJuIHJjOwogICAgICAgICB9CiAKLSAgICAgICAgcGFnZSA9IGdldF9w YWdlX2Zyb21fZ2ZuKGQsIHhyZnAuZ3BmbiwgTlVMTCwgUDJNX0FMTE9DKTsKKyAgICAgICAgcGFn ZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIF9nZm4oeHJmcC5ncGZuKSwgTlVMTCwgUDJNX0FMTE9D KTsKICAgICAgICAgaWYgKCBwYWdlICkKICAgICAgICAgewogICAgICAgICAgICAgcmMgPSBndWVz dF9waHlzbWFwX3JlbW92ZV9wYWdlKGQsIF9nZm4oeHJmcC5ncGZuKSwKQEAgLTE2NTksNyArMTY1 OSw3IEBAIGludCBjaGVja19nZXRfcGFnZV9mcm9tX2dmbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5f dCBnZm4sIGJvb2wgcmVhZG9ubHksCiAgICAgcDJtX3R5cGVfdCBwMm10OwogICAgIHN0cnVjdCBw YWdlX2luZm8gKnBhZ2U7CiAKLSAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ2ZuX3go Z2ZuKSwgJnAybXQsIHEpOworICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sICZw Mm10LCBxKTsKIAogI2lmZGVmIENPTkZJR19IQVNfTUVNX1BBR0lORwogICAgIGlmICggcDJtX2lz X3BhZ2luZyhwMm10KSApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oIGIv eGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAppbmRleCA1ZmRiNmU4MTgzLi5mMWQwMWNlYjNmIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS1hcm0vcDJtLmgKQEAgLTMwNCw3ICszMDQsNyBAQCBzdHJ1Y3QgcGFnZV9pbmZvICpwMm1fZ2V0 X3BhZ2VfZnJvbV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV90eXBlX3QgKnQpOwogCiBzdGF0aWMgaW5s aW5lIHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ2ZuKAotICAgIHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCBwMm1fdHlwZV90ICp0LCBwMm1fcXVlcnlfdCBxKQor ICAgIHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5cGVfdCAqdCwgcDJtX3F1ZXJ5 X3QgcSkKIHsKICAgICBtZm5fdCBtZm47CiAgICAgcDJtX3R5cGVfdCBfdDsKQEAgLTMxNSw3ICsz MTUsNyBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ2Zu KAogICAgICAqIG5vdCBhdXRvLXRyYW5zbGF0ZWQuCiAgICAgICovCiAgICAgaWYgKCBsaWtlbHko ZCAhPSBkb21feGVuKSApCi0gICAgICAgIHJldHVybiBwMm1fZ2V0X3BhZ2VfZnJvbV9nZm4oZCwg X2dmbihnZm4pLCB0KTsKKyAgICAgICAgcmV0dXJuIHAybV9nZXRfcGFnZV9mcm9tX2dmbihkLCBn Zm4sIHQpOwogCiAgICAgaWYgKCAhdCApCiAgICAgICAgIHQgPSAmX3Q7CkBAIC0zMjYsNyArMzI2 LDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigK ICAgICAgKiBET01JRF9YRU4gc2VlcyAxLTEgUkFNLiBUaGUgcDJtX3R5cGUgaXMgYmFzZWQgb24g dGhlIHR5cGUgb2YgdGhlCiAgICAgICogcGFnZS4KICAgICAgKi8KLSAgICBtZm4gPSBfbWZuKGdm bik7CisgICAgbWZuID0gX21mbihnZm5feChnZm4pKTsKICAgICBwYWdlID0gbWZuX3RvX3BhZ2Uo bWZuKTsKIAogICAgIGlmICggIW1mbl92YWxpZChtZm4pIHx8ICFnZXRfcGFnZShwYWdlLCBkKSAp CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9wMm0uaAppbmRleCAzOWRhZTI0MmIwLi5kYTg0MjQ4N2JiIDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS9hc20teDg2L3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKQEAg LTQ4NywxOCArNDg3LDIyIEBAIHN0cnVjdCBwYWdlX2luZm8gKnAybV9nZXRfcGFnZV9mcm9tX2dm bihzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdCBnZm4sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcDJtX3F1ZXJ5X3QgcSk7CiAKIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHBhZ2VfaW5mbyAqZ2V0X3BhZ2VfZnJvbV9nZm4oCi0gICAgc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBnZm4sIHAybV90eXBlX3QgKnQsIHAybV9xdWVyeV90IHEpCisgICAgc3Ry dWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBwMm1fdHlwZV90ICp0LCBwMm1fcXVlcnlfdCBxKQog ewogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CisgICAgbWZuX3QgbWZuOwogCiAgICAgaWYg KCBwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQotICAgICAgICByZXR1cm4gcDJtX2dldF9wYWdl X2Zyb21fZ2ZuKHAybV9nZXRfaG9zdHAybShkKSwgX2dmbihnZm4pLCB0LCBOVUxMLCBxKTsKKyAg ICAgICAgcmV0dXJuIHAybV9nZXRfcGFnZV9mcm9tX2dmbihwMm1fZ2V0X2hvc3RwMm0oZCksIGdm biwgdCwgTlVMTCwgcSk7CiAKICAgICAvKiBOb24tdHJhbnNsYXRlZCBndWVzdHMgc2VlIDEtMSBS QU0gLyBNTUlPIG1hcHBpbmdzIGV2ZXJ5d2hlcmUgKi8KICAgICBpZiAoIHQgKQogICAgICAgICAq dCA9IGxpa2VseShkICE9IGRvbV9pbykgPyBwMm1fcmFtX3J3IDogcDJtX21taW9fZGlyZWN0Owot ICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShfbWZuKGdmbikpOwotICAgIHJldHVybiBtZm5fdmFsaWQo X21mbihnZm4pKSAmJiBnZXRfcGFnZShwYWdlLCBkKSA/IHBhZ2UgOiBOVUxMOworCisgICAgbWZu ID0gX21mbihnZm5feChnZm4pKTsKKworICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOworICAg IHJldHVybiBtZm5fdmFsaWQobWZuKSAmJiBnZXRfcGFnZShwYWdlLCBkKSA/IHBhZ2UgOiBOVUxM OwogfQogCiAvKiBHZW5lcmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZnJvbSBtZm4gdG8gZ2ZuICov Ci0tIAoyLjE3LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9y ZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs