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 B8CABC54FCF for ; Sun, 22 Mar 2020 16:14:51 +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 8C70D20724 for ; Sun, 22 Mar 2020 16:14:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8C70D20724 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 1jG3FB-0004Wo-45; Sun, 22 Mar 2020 16:14:33 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1jG3FA-0004W0-7N for xen-devel@lists.xenproject.org; Sun, 22 Mar 2020 16:14:32 +0000 X-Inumbo-ID: 35b3b146-6c58-11ea-8134-12813bfff9fa Received: from mail-ed1-f66.google.com (unknown [209.85.208.66]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 35b3b146-6c58-11ea-8134-12813bfff9fa; Sun, 22 Mar 2020 16:14:30 +0000 (UTC) Received: by mail-ed1-f66.google.com with SMTP id n25so12545265eds.10 for ; Sun, 22 Mar 2020 09:14:30 -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=h83qCfUbAW/2NAbwW1ERuK1KGMn6B8eXif9Ulq27FvE=; b=Plzv16lAi+7hz6qwQSg2f0VNYQ4dNP5eq7h4pi/71FuUosH8RN7rCT0H72OPwSA7Ah IrDr83WPGh9s8OqEZG2edmcQakPrCSjY+wbOiT/TrE+u8tR6oZ8EZ2xOF3P1fvZE2F8w tCzPikQa9QcbgWQAKi1lohEH8tV1ThJ1qeOs+ogICgAwUI2B/kqenUH18qAtFxGNgnCj RcjvYlweQMwyr7GNzJfHKHvK/21KHSHKIHhv7kCuVz0uisUD3LToI7lusWfsJHJAC6Yw vRdi9c1PaXRgQBHVYc338Z3tKp4zMkEyKIDzZTfj/uMQxD3JHT0vdVIOyLSvYxRkcQxn 7mVw== X-Gm-Message-State: ANhLgQ0WfG8pxCbQJ+d5GNFm7+Pgg8WnSX4KnpZe3EpInzqZRrfgZWao 9NXEjcWbbZ+aXYd/khltUsoZrIhDhkuEFw== X-Google-Smtp-Source: ADFU+vsSf5w5HhH8Xe2gqsgBouk/xZQTxqN1/mvxgjQ0srN2RxUQWRAl7Xu368gThWCl/SH69aBRGw== X-Received: by 2002:a05:6402:110a:: with SMTP id u10mr11436967edv.159.1584893668808; Sun, 22 Mar 2020 09:14:28 -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.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 22 Mar 2020 09:14:28 -0700 (PDT) From: julien@xen.org To: xen-devel@lists.xenproject.org Date: Sun, 22 Mar 2020 16:14:06 +0000 Message-Id: <20200322161418.31606-6-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 05/17] xen/x86: Remove the non-typesafe version of pagetable_* helpers 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 , julien@xen.org, Jun Nakajima , Wei Liu , Andrew Cooper , Julien Grall , Tim Deegan , George Dunlap , Jan Beulich , =?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" RnJvbTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4KCk1vc3Qgb2YgdGhlIHVzZXJz IG9mIHRoZSBwYWdldGFibGVfKiBoZWxwZXJzIGNhbiB1c2UgdGhlIHR5cGVzYWZlCnZlcnNpb24u IFRoZXJlZm9yZSwgaXQgaXMgdGltZSB0byBjb252ZXJ0IHRoZSBjYWxsZXJzIHN0aWxsIHVzaW5n Cm5vbi10eXBlc2FmZSB2ZXJzaW9uIHRvIHVzZSB0aGUgdHlwZXNhZmUgb25lLgoKU29tZSBwYXJ0 IG9mIHRoZSBjb2RlIGFzc3VtZSB0aGF0IGEgcGFnZXRhYmxlIGlzIE5VTEwgd2hlbiB0aGUgTUZO IDAuCldoZW4gcG9zc2libGUgdGhpcyBpcyByZXBsYWNlZCB3aXRoIHRoZSBoZWxwZXIgcGFnZXRh YmxlX2lzX251bGwoKS4KClRoZXJlIGFyZSBzdGlsbCBzb21lcGxhY2Ugd2hpY2ggdGVzdCBhZ2Fp bnN0IE1GTiAwIGFuZCBpdCBpcyBub3QgY2xlYXIKaWYgb3RoZXIgdW5jb252ZXJ0ZWQgcGFydCBv ZiB0aGUgY29kZSByZWx5IG9uIHRoZSB2YWx1ZS4gU28sIGZvciBub3csCnRoZSBOVUxMIHZhbHVl IGlzIG5vdCBjaGFuZ2VkIHRvIElOVkFMSURfTUZOLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGlu dGVudGVkLgoKU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqZ3JhbGxAYW1hem9uLmNvbT4K LS0tCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgfCAxOCArKysrKysrKy0tLS0tLS0K IHhlbi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgICAgICB8ICA2ICsrLS0tCiB4ZW4vYXJjaC94ODYv aHZtL3ZteC92bWNzLmMgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgICAg IHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyAgICB8ICAyICstCiB4ZW4vYXJj aC94ODYvbW0uYyAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jICAgICAgfCAgMiArLQogeGVuL2FyY2gv eDg2L21tL3AybS1lcHQuYyAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyAg ICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0uYyAgICAgICAgICB8ICAyICstCiB4 ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgfCAyNCArKysrKysrKysrLS0tLS0tLS0tLQog eGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyAgIHwgMTAgKysrKy0tLS0tCiB4ZW4vYXJjaC94 ODYvdHJhcHMuYyAgICAgICAgICAgfCAgNiArKy0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdl LmggICAgIHwgMTkgKysrKysrKystLS0tLS0tLQogMTQgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0 aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFp bi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDE1NzUwY2UyMTAuLjE4ZDhmZGE5YmQg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9t YWluLmMKQEAgLTk1MiwyNSArOTUyLDI3IEBAIGludCBhcmNoX3NldF9pbmZvX2d1ZXN0KAogICAg IH0KICAgICBlbHNlCiAgICAgewotICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IHBhZ2V0YWJs ZV9nZXRfcGZuKHYtPmFyY2guZ3Vlc3RfdGFibGUpOworICAgICAgICBtZm5fdCBtZm4gPSBwYWdl dGFibGVfZ2V0X21mbih2LT5hcmNoLmd1ZXN0X3RhYmxlKTsKICAgICAgICAgYm9vbCBmYWlsOwog CiAgICAgICAgIGlmICggIWNvbXBhdCApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZhaWwgPSB4 ZW5fcGZuX3RvX2NyMyhwZm4pICE9IGMubmF0LT5jdHJscmVnWzNdOworICAgICAgICAgICAgZmFp bCA9IG1mbl90b19jcjMobWZuKSAhPSBjLm5hdC0+Y3RybHJlZ1szXTsKICAgICAgICAgICAgIGlm ICggcGFnZXRhYmxlX2lzX251bGwodi0+YXJjaC5ndWVzdF90YWJsZV91c2VyKSApCiAgICAgICAg ICAgICAgICAgZmFpbCB8PSBjLm5hdC0+Y3RybHJlZ1sxXSB8fCAhKGZsYWdzICYgVkdDRl9pbl9r ZXJuZWwpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg IHBmbiA9IHBhZ2V0YWJsZV9nZXRfcGZuKHYtPmFyY2guZ3Vlc3RfdGFibGVfdXNlcik7Ci0gICAg ICAgICAgICAgICAgZmFpbCB8PSB4ZW5fcGZuX3RvX2NyMyhwZm4pICE9IGMubmF0LT5jdHJscmVn WzFdOworICAgICAgICAgICAgICAgIG1mbiA9IHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2guZ3Vl c3RfdGFibGVfdXNlcik7CisgICAgICAgICAgICAgICAgZmFpbCB8PSBtZm5fdG9fY3IzKG1mbikg IT0gYy5uYXQtPmN0cmxyZWdbMV07CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0g ICAgICAgICAgICBsNF9wZ2VudHJ5X3QgKmw0dGFiID0gbWFwX2RvbWFpbl9wYWdlKF9tZm4ocGZu KSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICBsNF9w Z2VudHJ5X3QgKmw0dGFiID0gbWFwX2RvbWFpbl9wYWdlKG1mbik7CiAKLSAgICAgICAgICAgIHBm biA9IGw0ZV9nZXRfcGZuKCpsNHRhYik7CisgICAgICAgICAgICBtZm4gPSBsNGVfZ2V0X21mbigq bDR0YWIpOwogICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDR0YWIpOwotICAgICAgICAg ICAgZmFpbCA9IGNvbXBhdF9wZm5fdG9fY3IzKHBmbikgIT0gYy5jbXAtPmN0cmxyZWdbM107Cisg ICAgICAgICAgICBmYWlsID0gY29tcGF0X3Bmbl90b19jcjMobWZuX3gobWZuKSkgIT0gYy5jbXAt PmN0cmxyZWdbM107CiAgICAgICAgIH0KIAogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IEFSUkFZ X1NJWkUodi0+YXJjaC5wdi5nZHRfZnJhbWVzKTsgKytpICkKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwppbmRleCBlZDg2NzYyZmE2Li4w MjU5NmMzODEwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2Fy Y2gveDg2L2RvbWN0bC5jCkBAIC0xNjExLDExICsxNjExLDExIEBAIHZvaWQgYXJjaF9nZXRfaW5m b19ndWVzdChzdHJ1Y3QgdmNwdSAqdiwgdmNwdV9ndWVzdF9jb250ZXh0X3UgYykKIAogICAgICAg ICBpZiAoICFjb21wYXQgKQogICAgICAgICB7Ci0gICAgICAgICAgICBjLm5hdC0+Y3RybHJlZ1sz XSA9IHhlbl9wZm5fdG9fY3IzKAotICAgICAgICAgICAgICAgIHBhZ2V0YWJsZV9nZXRfcGZuKHYt PmFyY2guZ3Vlc3RfdGFibGUpKTsKKyAgICAgICAgICAgIGMubmF0LT5jdHJscmVnWzNdID0gbWZu X3RvX2NyMygKKyAgICAgICAgICAgICAgICBwYWdldGFibGVfZ2V0X21mbih2LT5hcmNoLmd1ZXN0 X3RhYmxlKSk7CiAgICAgICAgICAgICBjLm5hdC0+Y3RybHJlZ1sxXSA9CiAgICAgICAgICAgICAg ICAgcGFnZXRhYmxlX2lzX251bGwodi0+YXJjaC5ndWVzdF90YWJsZV91c2VyKSA/IDAKLSAgICAg ICAgICAgICAgICA6IHhlbl9wZm5fdG9fY3IzKHBhZ2V0YWJsZV9nZXRfcGZuKHYtPmFyY2guZ3Vl c3RfdGFibGVfdXNlcikpOworICAgICAgICAgICAgICAgIDogbWZuX3RvX2NyMyhwYWdldGFibGVf Z2V0X21mbih2LT5hcmNoLmd1ZXN0X3RhYmxlX3VzZXIpKTsKICAgICAgICAgfQogICAgICAgICBl bHNlCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyBi L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwppbmRleCA0YzIzNjQ1NDU0Li4xZjM5MzY3MjUz IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMKKysrIGIveGVuL2FyY2gv eDg2L2h2bS92bXgvdm1jcy5jCkBAIC0xMjkwLDcgKzEyOTAsNyBAQCBzdGF0aWMgaW50IGNvbnN0 cnVjdF92bWNzKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJt ID0gcDJtX2dldF9ob3N0cDJtKGQpOwogICAgICAgICBzdHJ1Y3QgZXB0X2RhdGEgKmVwdCA9ICZw Mm0tPmVwdDsKIAotICAgICAgICBlcHQtPm1mbiA9IHBhZ2V0YWJsZV9nZXRfcGZuKHAybV9nZXRf cGFnZXRhYmxlKHAybSkpOworICAgICAgICBlcHQtPm1mbiA9IG1mbl94KHBhZ2V0YWJsZV9nZXRf bWZuKHAybV9nZXRfcGFnZXRhYmxlKHAybSkpKTsKICAgICAgICAgX192bXdyaXRlKEVQVF9QT0lO VEVSLCBlcHQtPmVwdHApOwogCiAgICAgICAgIF9fdm13cml0ZShIT1NUX1BBVCwgWEVOX01TUl9Q QVQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94 ODYvaHZtL3ZteC92bXguYwppbmRleCBkMjY1ZWQ0NmFkLi5hMWUzYTE5YzBhIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bXguYwpAQCAtMjExMCw3ICsyMTEwLDcgQEAgc3RhdGljIHZvaWQgdm14X3ZjcHVfdXBkYXRlX2Vw dHAoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIHAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKIAog ICAgIGVwdCA9ICZwMm0tPmVwdDsKLSAgICBlcHQtPm1mbiA9IHBhZ2V0YWJsZV9nZXRfcGZuKHAy bV9nZXRfcGFnZXRhYmxlKHAybSkpOworICAgIGVwdC0+bWZuID0gbWZuX3gocGFnZXRhYmxlX2dl dF9tZm4ocDJtX2dldF9wYWdldGFibGUocDJtKSkpOwogCiAgICAgdm14X3ZtY3NfZW50ZXIodik7 CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYyBiL3hlbi9hcmNoL3g4 Ni9odm0vdm14L3Z2bXguYwppbmRleCBmMDQ5OTIwMTk2Li44NGI0N2VmMjc3IDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgv dnZteC5jCkBAIC0xMTQ5LDcgKzExNDksNyBAQCBzdGF0aWMgdWludDY0X3QgZ2V0X3NoYWRvd19l cHRwKHN0cnVjdCB2Y3B1ICp2KQogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBwMm1fZ2V0 X25lc3RlZHAybSh2KTsKICAgICBzdHJ1Y3QgZXB0X2RhdGEgKmVwdCA9ICZwMm0tPmVwdDsKIAot ICAgIGVwdC0+bWZuID0gcGFnZXRhYmxlX2dldF9wZm4ocDJtX2dldF9wYWdldGFibGUocDJtKSk7 CisgICAgZXB0LT5tZm4gPSBtZm5feChwYWdldGFibGVfZ2V0X21mbihwMm1fZ2V0X3BhZ2V0YWJs ZShwMm0pKSk7CiAgICAgcmV0dXJuIGVwdC0+ZXB0cDsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCA3YzBmODE3NTlhLi5hYTBiZjNk MGVlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0u YwpAQCAtMzA4NSw3ICszMDg1LDcgQEAgaW50IHB1dF9vbGRfZ3Vlc3RfdGFibGUoc3RydWN0IHZj cHUgKnYpCiAKIGludCB2Y3B1X2Rlc3Ryb3lfcGFnZXRhYmxlcyhzdHJ1Y3QgdmNwdSAqdikKIHsK LSAgICB1bnNpZ25lZCBsb25nIG1mbiA9IHBhZ2V0YWJsZV9nZXRfcGZuKHYtPmFyY2guZ3Vlc3Rf dGFibGUpOworICAgIG1mbl90IG1mbiA9IHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2guZ3Vlc3Rf dGFibGUpOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBOVUxMOwogICAgIGludCByYyA9 IHB1dF9vbGRfZ3Vlc3RfdGFibGUodik7CiAgICAgYm9vbCBwdXRfZ3Vlc3RfdGFibGVfdXNlciA9 IGZhbHNlOwpAQCAtMzEwMiw5ICszMTAyLDkgQEAgaW50IHZjcHVfZGVzdHJveV9wYWdldGFibGVz KHN0cnVjdCB2Y3B1ICp2KQogICAgICAqLwogICAgIGlmICggaXNfcHZfMzJiaXRfdmNwdSh2KSAp CiAgICAgewotICAgICAgICBsNF9wZ2VudHJ5X3QgKmw0dGFiID0gbWFwX2RvbWFpbl9wYWdlKF9t Zm4obWZuKSk7CisgICAgICAgIGw0X3BnZW50cnlfdCAqbDR0YWIgPSBtYXBfZG9tYWluX3BhZ2Uo bWZuKTsKIAotICAgICAgICBtZm4gPSBsNGVfZ2V0X3BmbigqbDR0YWIpOworICAgICAgICBtZm4g PSBsNGVfZ2V0X21mbigqbDR0YWIpOwogICAgICAgICBsNGVfd3JpdGUobDR0YWIsIGw0ZV9lbXB0 eSgpKTsKICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobDR0YWIpOwogICAgIH0KQEAgLTMxMTYs MjQgKzMxMTYsMjQgQEAgaW50IHZjcHVfZGVzdHJveV9wYWdldGFibGVzKHN0cnVjdCB2Y3B1ICp2 KQogCiAgICAgLyogRnJlZSB0aGF0IHBhZ2UgaWYgbm9uLXplcm8gKi8KICAgICBkbyB7Ci0gICAg ICAgIGlmICggbWZuICkKKyAgICAgICAgaWYgKCAhbWZuX2VxKG1mbiwgX21mbigwKSkgKQogICAg ICAgICB7Ci0gICAgICAgICAgICBwYWdlID0gbWZuX3RvX3BhZ2UoX21mbihtZm4pKTsKKyAgICAg ICAgICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOwogICAgICAgICAgICAgaWYgKCBwYWdpbmdf bW9kZV9yZWZjb3VudHModi0+ZG9tYWluKSApCiAgICAgICAgICAgICAgICAgcHV0X3BhZ2UocGFn ZSk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmMgPSBwdXRfcGFnZV9hbmRf dHlwZV9wcmVlbXB0aWJsZShwYWdlKTsKLSAgICAgICAgICAgIG1mbiA9IDA7CisgICAgICAgICAg ICBtZm4gPSBfbWZuKDApOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCAhcmMgJiYgcHV0X2d1 ZXN0X3RhYmxlX3VzZXIgKQogICAgICAgICB7CiAgICAgICAgICAgICAvKiBEcm9wIHJlZiB0byBn dWVzdF90YWJsZV91c2VyIChmcm9tIE1NVUVYVF9ORVdfVVNFUl9CQVNFUFRSKSAqLwotICAgICAg ICAgICAgbWZuID0gcGFnZXRhYmxlX2dldF9wZm4odi0+YXJjaC5ndWVzdF90YWJsZV91c2VyKTsK KyAgICAgICAgICAgIG1mbiA9IHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2guZ3Vlc3RfdGFibGVf dXNlcik7CiAgICAgICAgICAgICB2LT5hcmNoLmd1ZXN0X3RhYmxlX3VzZXIgPSBwYWdldGFibGVf bnVsbCgpOwogICAgICAgICAgICAgcHV0X2d1ZXN0X3RhYmxlX3VzZXIgPSBmYWxzZTsKICAgICAg ICAgfQotICAgIH0gd2hpbGUgKCBtZm4gKTsKKyAgICB9IHdoaWxlICggIW1mbl9lcShtZm4sIF9t Zm4oMCkpICk7CiAKICAgICAvKgogICAgICAqIElmIGEgInB1dCIgb3BlcmF0aW9uIHdhcyBpbnRl cnJ1cHRlZCwgZmluaXNoIHRoaW5ncyBvZmYgaW4KQEAgLTM1NTEsNyArMzU1MSw4IEBAIGxvbmcg ZG9fbW11ZXh0X29wKAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBNTVVFWFRf TkVXX1VTRVJfQkFTRVBUUjogewotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBvbGRfbWZuOwor ICAgICAgICAgICAgbWZuX3Qgb2xkX21mbjsKKyAgICAgICAgICAgIG1mbl90IG5ld19tZm4gPSBf bWZuKG9wLmFyZzEubWZuKTsKIAogICAgICAgICAgICAgaWYgKCB1bmxpa2VseShjdXJyZCAhPSBw Z19vd25lcikgKQogICAgICAgICAgICAgICAgIHJjID0gLUVQRVJNOwpAQCAtMzU2MCwxOSArMzU2 MSwxOCBAQCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMp ICkKICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgb2xkX21mbiA9IHBhZ2V0 YWJsZV9nZXRfcGZuKGN1cnItPmFyY2guZ3Vlc3RfdGFibGVfdXNlcik7CisgICAgICAgICAgICBv bGRfbWZuID0gcGFnZXRhYmxlX2dldF9tZm4oY3Vyci0+YXJjaC5ndWVzdF90YWJsZV91c2VyKTsK ICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgKiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBv cnRhbnQgd2hlbiBnZXR0aW5nIHJlc3RhcnRlZCBhZnRlciB0aGUKICAgICAgICAgICAgICAqIHBy ZXZpb3VzIGF0dGVtcHQgZ290IHByZWVtcHRlZCBpbiB0aGUgcHV0LW9sZC1NRk4gcGhhc2UuCiAg ICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICggb2xkX21mbiA9PSBvcC5hcmcxLm1mbiAp CisgICAgICAgICAgICBpZiAoIG1mbl9lcShvbGRfbWZuLCBuZXdfbWZuKSApCiAgICAgICAgICAg ICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIGlmICggb3AuYXJnMS5tZm4gIT0gMCApCisgICAg ICAgICAgICBpZiAoICFtZm5fZXEobmV3X21mbiwgX21mbigwKSkgKQogICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgIHJjID0gZ2V0X3BhZ2VfYW5kX3R5cGVfZnJvbV9tZm4oCi0gICAgICAg ICAgICAgICAgICAgIF9tZm4ob3AuYXJnMS5tZm4pLCBQR1Rfcm9vdF9wYWdlX3RhYmxlLCBjdXJy ZCwgUFRGX3ByZWVtcHRpYmxlKTsKLQorICAgICAgICAgICAgICAgIHJjID0gZ2V0X3BhZ2VfYW5k X3R5cGVfZnJvbV9tZm4obmV3X21mbiwgUEdUX3Jvb3RfcGFnZV90YWJsZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJkLCBQVEZfcHJlZW1wdGli bGUpOwogICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICAgICAgICAgICAg ICB7CiAgICAgICAgICAgICAgICAgICAgIGlmICggcmMgPT0gLUVJTlRSICkKQEAgLTM1ODAsMTkg KzM1ODAsMTkgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICAgICAgICAgIGVsc2Ug aWYgKCByYyAhPSAtRVJFU1RBUlQgKQogICAgICAgICAgICAgICAgICAgICAgICAgZ2RwcmludGso WEVOTE9HX1dBUk5JTkcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3Ig JWQgaW5zdGFsbGluZyBuZXcgbWZuICUiIFBSSV9tZm4gIlxuIiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJjLCBvcC5hcmcxLm1mbik7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByYywgbWZuX3gobmV3X21mbikpOwogICAgICAgICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoIFZNX0FTU0lTVChj dXJyZCwgbTJwX3N0cmljdCkgKQotICAgICAgICAgICAgICAgICAgICB6YXBfcm9fbXB0KF9tZm4o b3AuYXJnMS5tZm4pKTsKKyAgICAgICAgICAgICAgICAgICAgemFwX3JvX21wdChuZXdfbWZuKTsK ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgY3Vyci0+YXJjaC5ndWVzdF90YWJsZV91c2Vy ID0gcGFnZXRhYmxlX2Zyb21fcGZuKG9wLmFyZzEubWZuKTsKKyAgICAgICAgICAgIGN1cnItPmFy Y2guZ3Vlc3RfdGFibGVfdXNlciA9IHBhZ2V0YWJsZV9mcm9tX21mbihuZXdfbWZuKTsKIAotICAg ICAgICAgICAgaWYgKCBvbGRfbWZuICE9IDAgKQorICAgICAgICAgICAgaWYgKCAhbWZuX2VxKG9s ZF9tZm4sIF9tZm4oMCkpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwYWdlID0g bWZuX3RvX3BhZ2UoX21mbihvbGRfbWZuKSk7CisgICAgICAgICAgICAgICAgcGFnZSA9IG1mbl90 b19wYWdlKG9sZF9tZm4pOwogCiAgICAgICAgICAgICAgICAgc3dpdGNoICggcmMgPSBwdXRfcGFn ZV9hbmRfdHlwZV9wcmVlbXB0aWJsZShwYWdlKSApCiAgICAgICAgICAgICAgICAgewpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFw LmMKaW5kZXggYTZkNWUzOWIwMi4uMDUxZTkyMTY5YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L21tL2hhcC9oYXAuYworKysgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCkBAIC0zOTQsNyAr Mzk0LDcgQEAgc3RhdGljIG1mbl90IGhhcF9tYWtlX21vbml0b3JfdGFibGUoc3RydWN0IHZjcHUg KnYpCiAgICAgbDRfcGdlbnRyeV90ICpsNGU7CiAgICAgbWZuX3QgbTRtZm47CiAKLSAgICBBU1NF UlQocGFnZXRhYmxlX2dldF9wZm4odi0+YXJjaC5tb25pdG9yX3RhYmxlKSA9PSAwKTsKKyAgICBB U1NFUlQocGFnZXRhYmxlX2lzX251bGwodi0+YXJjaC5tb25pdG9yX3RhYmxlKSk7CiAKICAgICBp ZiAoIChwZyA9IGhhcF9hbGxvYyhkKSkgPT0gTlVMTCApCiAgICAgICAgIGdvdG8gb29tOwpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0t ZXB0LmMKaW5kZXggZWIwZjBlZGZlZi4uMzQ2Njk2ZTQ2OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L21tL3AybS1lcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCkBAIC0xMzY2 LDcgKzEzNjYsNyBAQCB2b2lkIHAybV9pbml0X2FsdHAybV9lcHQoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgaW50IGkpCiAKICAgICBwMm0tPmVwdC5hZCA9IGhvc3RwMm0tPmVwdC5hZDsKICAg ICBlcHQgPSAmcDJtLT5lcHQ7Ci0gICAgZXB0LT5tZm4gPSBwYWdldGFibGVfZ2V0X3BmbihwMm1f Z2V0X3BhZ2V0YWJsZShwMm0pKTsKKyAgICBlcHQtPm1mbiA9IG1mbl94KHBhZ2V0YWJsZV9nZXRf bWZuKHAybV9nZXRfcGFnZXRhYmxlKHAybSkpKTsKICAgICBkLT5hcmNoLmFsdHAybV9lcHRwW2Fy cmF5X2luZGV4X25vc3BlYyhpLCBNQVhfRVBUUCldID0gZXB0LT5lcHRwOwogfQogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMK aW5kZXggZWI2NjA3NzQ5Ni4uY2NjYjA2YzI2ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21t L3AybS1wdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtODY3LDcgKzg2Nyw3 IEBAIHN0YXRpYyB2b2lkIHAybV9wdF9jaGFuZ2VfZW50cnlfdHlwZV9nbG9iYWwoc3RydWN0IHAy bV9kb21haW4gKnAybSwKICAgICB1bnNpZ25lZCBsb25nIGdmbiA9IDA7CiAgICAgdW5zaWduZWQg aW50IGksIGNoYW5nZWQ7CiAKLSAgICBpZiAoIHBhZ2V0YWJsZV9nZXRfcGZuKHAybV9nZXRfcGFn ZXRhYmxlKHAybSkpID09IDAgKQorICAgIGlmICggcGFnZXRhYmxlX2lzX251bGwocDJtX2dldF9w YWdldGFibGUocDJtKSkgKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQoaGFwX2VuYWJs ZWQocDJtLT5kb21haW4pKTsKQEAgLTk1MCw3ICs5NTAsNyBAQCBsb25nIHAybV9wdF9hdWRpdF9w Mm0oc3RydWN0IHAybV9kb21haW4gKnAybSkKICAgICBBU1NFUlQocG9kX2xvY2tlZF9ieV9tZShw Mm0pKTsKIAogICAgIC8qIEF1ZGl0IHBhcnQgb25lOiB3YWxrIHRoZSBkb21haW4ncyBwMm0gdGFi bGUsIGNoZWNraW5nIHRoZSBlbnRyaWVzLiAqLwotICAgIGlmICggcGFnZXRhYmxlX2dldF9wZm4o cDJtX2dldF9wYWdldGFibGUocDJtKSkgIT0gMCApCisgICAgaWYgKCAhcGFnZXRhYmxlX2lzX251 bGwocDJtX2dldF9wYWdldGFibGUocDJtKSkgKQogICAgIHsKICAgICAgICAgbDJfcGdlbnRyeV90 ICpsMmU7CiAgICAgICAgIGwxX3BnZW50cnlfdCAqbDFlOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5jCmluZGV4IDlmNTEzNzAzMjcuLjQ1 YjRiNzg0ZDMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJj aC94ODYvbW0vcDJtLmMKQEAgLTcwMiw3ICs3MDIsNyBAQCBpbnQgcDJtX2FsbG9jX3RhYmxlKHN0 cnVjdCBwMm1fZG9tYWluICpwMm0pCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAot ICAgIGlmICggcGFnZXRhYmxlX2dldF9wZm4ocDJtX2dldF9wYWdldGFibGUocDJtKSkgIT0gMCAp CisgICAgaWYgKCAhcGFnZXRhYmxlX2lzX251bGwocDJtX2dldF9wYWdldGFibGUocDJtKSkgKQog ICAgIHsKICAgICAgICAgUDJNX0VSUk9SKCJwMm0gYWxyZWFkeSBhbGxvY2F0ZWQgZm9yIHRoaXMg ZG9tYWluXG4iKTsKICAgICAgICAgcDJtX3VubG9jayhwMm0pOwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5j CmluZGV4IGI2YWZjMGZiYTQuLjU3NTFkYWUzNDQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9zaGFkb3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKQEAg LTE1MjAsNyArMTUyMCw3IEBAIHNoX21ha2VfbW9uaXRvcl90YWJsZShzdHJ1Y3QgdmNwdSAqdikK IHsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwogCi0gICAgQVNTRVJUKHBhZ2V0 YWJsZV9nZXRfcGZuKHYtPmFyY2gubW9uaXRvcl90YWJsZSkgPT0gMCk7CisgICAgQVNTRVJUKHBh Z2V0YWJsZV9pc19udWxsKHYtPmFyY2gubW9uaXRvcl90YWJsZSkpOwogCiAgICAgLyogR3VhcmFu dGVlIHdlIGNhbiBnZXQgdGhlIG1lbW9yeSB3ZSBuZWVkICovCiAgICAgc2hhZG93X3ByZWFsbG9j KGQsIFNIX3R5cGVfbW9uaXRvcl90YWJsZSwgQ09ORklHX1BBR0lOR19MRVZFTFMpOwpAQCAtMjM1 MSwxMSArMjM1MSwxMSBAQCBpbnQgc2hfc2FmZV9ub3RfdG9fc3luYyhzdHJ1Y3QgdmNwdSAqdiwg bWZuX3QgZ2wxbWZuKQogICAgIEFTU0VSVChtZm5fdmFsaWQoc21mbikpOwogI2VuZGlmCiAKLSAg ICBpZiAoIHBhZ2V0YWJsZV9nZXRfcGZuKHYtPmFyY2guc2hhZG93X3RhYmxlWzBdKSA9PSBtZm5f eChzbWZuKQorICAgIGlmICggbWZuX2VxKHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2guc2hhZG93 X3RhYmxlWzBdKSwgc21mbikKICNpZiAoU0hBRE9XX1BBR0lOR19MRVZFTFMgPT0gMykKLSAgICAg ICAgIHx8IHBhZ2V0YWJsZV9nZXRfcGZuKHYtPmFyY2guc2hhZG93X3RhYmxlWzFdKSA9PSBtZm5f eChzbWZuKQotICAgICAgICAgfHwgcGFnZXRhYmxlX2dldF9wZm4odi0+YXJjaC5zaGFkb3dfdGFi bGVbMl0pID09IG1mbl94KHNtZm4pCi0gICAgICAgICB8fCBwYWdldGFibGVfZ2V0X3Bmbih2LT5h cmNoLnNoYWRvd190YWJsZVszXSkgPT0gbWZuX3goc21mbikKKyAgICAgICAgIHx8IG1mbl9lcShw YWdldGFibGVfZ2V0X21mbih2LT5hcmNoLnNoYWRvd190YWJsZVsxXSksIHNtZm4pCisgICAgICAg ICB8fCBtZm5fZXEocGFnZXRhYmxlX2dldF9tZm4odi0+YXJjaC5zaGFkb3dfdGFibGVbMl0pLCBz bWZuKQorICAgICAgICAgfHwgbWZuX2VxKHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2guc2hhZG93 X3RhYmxlWzNdKSwgc21mbikKICNlbmRpZgogICAgICAgICApCiAgICAgICAgIHJldHVybiAwOwpA QCAtMzcwNyw3ICszNzA3LDcgQEAgc2hfdXBkYXRlX2xpbmVhcl9lbnRyaWVzKHN0cnVjdCB2Y3B1 ICp2KQogCiAgICAgLyogRG9uJ3QgdHJ5IHRvIHVwZGF0ZSB0aGUgbW9uaXRvciB0YWJsZSBpZiBp dCBkb2Vzbid0IGV4aXN0ICovCiAgICAgaWYgKCBzaGFkb3dfbW9kZV9leHRlcm5hbChkKQotICAg ICAgICAgJiYgcGFnZXRhYmxlX2dldF9wZm4odi0+YXJjaC5tb25pdG9yX3RhYmxlKSA9PSAwICkK KyAgICAgICAgICYmIHBhZ2V0YWJsZV9pc19udWxsKHYtPmFyY2gubW9uaXRvcl90YWJsZSkgKQog ICAgICAgICByZXR1cm47CiAKICNpZiBTSEFET1dfUEFHSU5HX0xFVkVMUyA9PSA0CkBAIC0zNzIy LDcgKzM3MjIsNyBAQCBzaF91cGRhdGVfbGluZWFyX2VudHJpZXMoc3RydWN0IHZjcHUgKnYpCiAg ICAgICAgIGlmICggdiA9PSBjdXJyZW50ICkKICAgICAgICAgewogICAgICAgICAgICAgX19saW5l YXJfbDRfdGFibGVbbDRfbGluZWFyX29mZnNldChTSF9MSU5FQVJfUFRfVklSVF9TVEFSVCldID0K LSAgICAgICAgICAgICAgICBsNGVfZnJvbV9wZm4ocGFnZXRhYmxlX2dldF9wZm4odi0+YXJjaC5z aGFkb3dfdGFibGVbMF0pLAorICAgICAgICAgICAgICAgIGw0ZV9mcm9tX21mbihwYWdldGFibGVf Z2V0X21mbih2LT5hcmNoLnNoYWRvd190YWJsZVswXSksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9fUEFHRV9IWVBFUlZJU09SX1JXKTsKICAgICAgICAgfQogICAgICAgICBlbHNlCkBA IC0zNzMwLDcgKzM3MzAsNyBAQCBzaF91cGRhdGVfbGluZWFyX2VudHJpZXMoc3RydWN0IHZjcHUg KnYpCiAgICAgICAgICAgICBsNF9wZ2VudHJ5X3QgKm1sNGU7CiAgICAgICAgICAgICBtbDRlID0g bWFwX2RvbWFpbl9wYWdlKHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2gubW9uaXRvcl90YWJsZSkp OwogICAgICAgICAgICAgbWw0ZVtsNF90YWJsZV9vZmZzZXQoU0hfTElORUFSX1BUX1ZJUlRfU1RB UlQpXSA9Ci0gICAgICAgICAgICAgICAgbDRlX2Zyb21fcGZuKHBhZ2V0YWJsZV9nZXRfcGZuKHYt PmFyY2guc2hhZG93X3RhYmxlWzBdKSwKKyAgICAgICAgICAgICAgICBsNGVfZnJvbV9tZm4ocGFn ZXRhYmxlX2dldF9tZm4odi0+YXJjaC5zaGFkb3dfdGFibGVbMF0pLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBfX1BBR0VfSFlQRVJWSVNPUl9SVyk7CiAgICAgICAgICAgICB1bm1hcF9k b21haW5fcGFnZShtbDRlKTsKICAgICAgICAgfQpAQCAtMzk2NCwxNSArMzk2NCwxNSBAQCBzaF91 cGRhdGVfY3IzKHN0cnVjdCB2Y3B1ICp2LCBpbnQgZG9fbG9ja2luZywgYm9vbCBub2ZsdXNoKQog ICAgIHsKICAgICAgICAgQVNTRVJUKHNoYWRvd19tb2RlX2V4dGVybmFsKGQpKTsKICAgICAgICAg aWYgKCBodm1fcGFnaW5nX2VuYWJsZWQodikgKQotICAgICAgICAgICAgQVNTRVJUKHBhZ2V0YWJs ZV9nZXRfcGZuKHYtPmFyY2guZ3Vlc3RfdGFibGUpKTsKKyAgICAgICAgICAgIEFTU0VSVCghcGFn ZXRhYmxlX2lzX251bGwodi0+YXJjaC5ndWVzdF90YWJsZSkpOwogICAgICAgICBlbHNlCi0gICAg ICAgICAgICBBU1NFUlQodi0+YXJjaC5ndWVzdF90YWJsZS5wZm4KLSAgICAgICAgICAgICAgICAg ICA9PSBkLT5hcmNoLnBhZ2luZy5zaGFkb3cudW5wYWdlZF9wYWdldGFibGUucGZuKTsKKyAgICAg ICAgICAgIEFTU0VSVChtZm5fZXEocGFnZXRhYmxlX2dldF9tZm4odi0+YXJjaC5ndWVzdF90YWJs ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2V0YWJsZV9nZXRfbWZuKGQtPmFyY2gu cGFnaW5nLnNoYWRvdy51bnBhZ2VkX3BhZ2V0YWJsZSkpKTsKICAgICB9CiAjZW5kaWYKIAogICAg IFNIQURPV19QUklOVEsoIiVwdiBndWVzdF90YWJsZT0lIlBSSV9tZm4iXG4iLAotICAgICAgICAg ICAgICAgICAgdiwgKHVuc2lnbmVkIGxvbmcpcGFnZXRhYmxlX2dldF9wZm4odi0+YXJjaC5ndWVz dF90YWJsZSkpOworICAgICAgICAgICAgICAgICAgdiwgbWZuX3gocGFnZXRhYmxlX2dldF9tZm4o di0+YXJjaC5ndWVzdF90YWJsZSkpKTsKIAogI2lmIEdVRVNUX1BBR0lOR19MRVZFTFMgPT0gNAog ICAgIGlmICggISh2LT5hcmNoLmZsYWdzICYgVEZfa2VybmVsX21vZGUpICkKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWls ZC5jCmluZGV4IDMwODQ2YjVmOTcuLjhhYmQ1ZDI1NWMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9wdi9kb20wX2J1aWxkLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYwpAQCAt OTMsMTQgKzkzLDE0IEBAIHN0YXRpYyBfX2luaXQgdm9pZCBtYXJrX3B2X3B0X3BhZ2VzX3Jkb25s eShzdHJ1Y3QgZG9tYWluICpkLAogICAgIH0KIH0KIAotc3RhdGljIF9faW5pdCB2b2lkIHNldHVw X3B2X3BoeXNtYXAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBwZ3RibF9wZm4sCitz dGF0aWMgX19pbml0IHZvaWQgc2V0dXBfcHZfcGh5c21hcChzdHJ1Y3QgZG9tYWluICpkLCBtZm5f dCBwZ3RibF9tZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBsb25nIHZfc3RhcnQsIHVuc2lnbmVkIGxvbmcgdl9lbmQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZwaHlzbWFwX3N0YXJ0LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2cGh5c21hcF9lbmQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG5yX3BhZ2Vz KQogewogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBOVUxMOwotICAgIGw0X3BnZW50cnlf dCAqcGw0ZSwgKmw0c3RhcnQgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwZ3RibF9wZm4pKTsKKyAg ICBsNF9wZ2VudHJ5X3QgKnBsNGUsICpsNHN0YXJ0ID0gbWFwX2RvbWFpbl9wYWdlKHBndGJsX21m bik7CiAgICAgbDNfcGdlbnRyeV90ICpwbDNlID0gTlVMTDsKICAgICBsMl9wZ2VudHJ5X3QgKnBs MmUgPSBOVUxMOwogICAgIGwxX3BnZW50cnlfdCAqcGwxZSA9IE5VTEw7CkBAIC03NjAsMTEgKzc2 MCw5IEBAIGludCBfX2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAqZCwKIAog ICAgIC8qIFNldCB1cCB0aGUgcGh5cy0+bWFjaGluZSB0YWJsZSBpZiBub3QgcGFydCBvZiB0aGUg aW5pdGlhbCBtYXBwaW5nLiAqLwogICAgIGlmICggcGFybXMucDJtX2Jhc2UgIT0gVU5TRVRfQURE UiApCi0gICAgewotICAgICAgICBwZm4gPSBwYWdldGFibGVfZ2V0X3Bmbih2LT5hcmNoLmd1ZXN0 X3RhYmxlKTsKLSAgICAgICAgc2V0dXBfcHZfcGh5c21hcChkLCBwZm4sIHZfc3RhcnQsIHZfZW5k LCB2cGh5c21hcF9zdGFydCwgdnBoeXNtYXBfZW5kLAorICAgICAgICBzZXR1cF9wdl9waHlzbWFw KGQsIHBhZ2V0YWJsZV9nZXRfbWZuKHYtPmFyY2guZ3Vlc3RfdGFibGUpLAorICAgICAgICAgICAg ICAgICAgICAgICAgIHZfc3RhcnQsIHZfZW5kLCB2cGh5c21hcF9zdGFydCwgdnBoeXNtYXBfZW5k LAogICAgICAgICAgICAgICAgICAgICAgICAgIG5yX3BhZ2VzKTsKLSAgICB9CiAKICAgICAvKiBX cml0ZSB0aGUgcGh5cy0+bWFjaGluZSBhbmQgbWFjaGluZS0+cGh5cyB0YWJsZSBlbnRyaWVzLiAq LwogICAgIGZvciAoIHBmbiA9IDA7IHBmbiA8IGNvdW50OyBwZm4rKyApCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDRhYTdjMzVi ZTQuLjA0YTNlYmMwYTIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hl bi9hcmNoL3g4Ni90cmFwcy5jCkBAIC0yNDcsMTIgKzI0NywxMiBAQCBzdGF0aWMgdm9pZCBjb21w YXRfc2hvd19ndWVzdF9zdGFjayhzdHJ1Y3QgdmNwdSAqdiwKICAgICBpZiAoIHYgIT0gY3VycmVu dCApCiAgICAgewogICAgICAgICBzdHJ1Y3QgdmNwdSAqdmNwdTsKLSAgICAgICAgdW5zaWduZWQg bG9uZyBtZm47CisgICAgICAgIG1mbl90IG1mbjsKIAogICAgICAgICBBU1NFUlQoZ3Vlc3Rfa2Vy bmVsX21vZGUodiwgcmVncykpOwotICAgICAgICBtZm4gPSByZWFkX2NyMygpID4+IFBBR0VfU0hJ RlQ7CisgICAgICAgIG1mbiA9IGNyM190b19tZm4ocmVhZF9jcjMoKSk7CiAgICAgICAgIGZvcl9l YWNoX3ZjcHUoIHYtPmRvbWFpbiwgdmNwdSApCi0gICAgICAgICAgICBpZiAoIHBhZ2V0YWJsZV9n ZXRfcGZuKHZjcHUtPmFyY2guZ3Vlc3RfdGFibGUpID09IG1mbiApCisgICAgICAgICAgICBpZiAo IG1mbl9lcShwYWdldGFibGVfZ2V0X21mbih2Y3B1LT5hcmNoLmd1ZXN0X3RhYmxlKSwgbWZuKSAp CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmICggIXZjcHUgKQogICAgICAgICB7 CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvcGFnZS5oCmluZGV4IDYyNGRiYmI5NDkuLjM3N2JhMTRmNmUgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5o CkBAIC0xOCw2ICsxOCw3IEBACiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogIyBpbmNsdWRlIDxhc20v dHlwZXMuaD4KICMgaW5jbHVkZSA8eGVuL2xpYi5oPgorIyBpbmNsdWRlIDx4ZW4vbW1fdHlwZXMu aD4KICNlbmRpZgogCiAjaW5jbHVkZSA8YXNtL3g4Nl82NC9wYWdlLmg+CkBAIC0yMTMsMTcgKzIx NCwxNyBAQCBzdGF0aWMgaW5saW5lIGw0X3BnZW50cnlfdCBsNGVfZnJvbV9wYWRkcihwYWRkcl90 IHBhLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogCiAvKiBQYWdl LXRhYmxlIHR5cGUuICovCi10eXBlZGVmIHN0cnVjdCB7IHU2NCBwZm47IH0gcGFnZXRhYmxlX3Q7 Ci0jZGVmaW5lIHBhZ2V0YWJsZV9nZXRfcGFkZHIoeCkgICgocGFkZHJfdCkoeCkucGZuIDw8IFBB R0VfU0hJRlQpCit0eXBlZGVmIHN0cnVjdCB7IG1mbl90IG1mbjsgfSBwYWdldGFibGVfdDsKKyNk ZWZpbmUgUEFHRVRBQkxFX05VTExfTUZOICAgICAgX21mbigwKQorCisjZGVmaW5lIHBhZ2V0YWJs ZV9nZXRfcGFkZHIoeCkgIG1mbl90b19tYWRkcigoeCkubWZuKQogI2RlZmluZSBwYWdldGFibGVf Z2V0X3BhZ2UoeCkgICBtZm5fdG9fcGFnZShwYWdldGFibGVfZ2V0X21mbih4KSkKLSNkZWZpbmUg cGFnZXRhYmxlX2dldF9wZm4oeCkgICAgKCh4KS5wZm4pCi0jZGVmaW5lIHBhZ2V0YWJsZV9nZXRf bWZuKHgpICAgIF9tZm4oKCh4KS5wZm4pKQotI2RlZmluZSBwYWdldGFibGVfaXNfbnVsbCh4KSAg ICAoKHgpLnBmbiA9PSAwKQotI2RlZmluZSBwYWdldGFibGVfZnJvbV9wZm4ocGZuKSAoKHBhZ2V0 YWJsZV90KSB7IChwZm4pIH0pCi0jZGVmaW5lIHBhZ2V0YWJsZV9mcm9tX21mbihtZm4pICgocGFn ZXRhYmxlX3QpIHsgbWZuX3gobWZuKSB9KQorI2RlZmluZSBwYWdldGFibGVfZ2V0X21mbih4KSAg ICAoKHgpLm1mbikKKyNkZWZpbmUgcGFnZXRhYmxlX2lzX251bGwoeCkgICAgbWZuX2VxKCh4KS5t Zm4sIFBBR0VUQUJMRV9OVUxMX01GTikKKyNkZWZpbmUgcGFnZXRhYmxlX2Zyb21fbWZuKG1mbikg KChwYWdldGFibGVfdCkgeyBtZm4gfSkKICNkZWZpbmUgcGFnZXRhYmxlX2Zyb21fcGFnZShwZykg cGFnZXRhYmxlX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKHBnKSkKLSNkZWZpbmUgcGFnZXRhYmxlX2Zy b21fcGFkZHIocCkgcGFnZXRhYmxlX2Zyb21fcGZuKChwKT4+UEFHRV9TSElGVCkKLSNkZWZpbmUg cGFnZXRhYmxlX251bGwoKSAgICAgICAgcGFnZXRhYmxlX2Zyb21fcGZuKDApCisjZGVmaW5lIHBh Z2V0YWJsZV9mcm9tX3BhZGRyKHApIHBhZ2V0YWJsZV9mcm9tX21mbihtYWRkcl90b19tZm4ocCkp CisjZGVmaW5lIHBhZ2V0YWJsZV9udWxsKCkgICAgICAgIHBhZ2V0YWJsZV9mcm9tX21mbihQQUdF VEFCTEVfTlVMTF9NRk4pCiAKIHZvaWQgY2xlYXJfcGFnZV9zc2UyKHZvaWQgKik7CiB2b2lkIGNv cHlfcGFnZV9zc2UyKHZvaWQgKiwgY29uc3Qgdm9pZCAqKTsKLS0gCjIuMTcuMQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=