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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D23DCC25B75 for ; Wed, 29 May 2024 12:16:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=1QxrsiMv8U5sL7gc3HzmimalKwQEXEGCUFbabHOkCus=; b=ITqTrL+KD0ClLvleteFMBchh83 OiZpOyTVw2gv1LmwTxtSx0iYBUPBRe/gFdNYgRUw5QzP4C+Cz5IMP3D2MZPAAEQ+7DFoMCdaZCfJY A7HWhZBhW3CxJqcbCtDrzPG91imBsVVRTEUEmX9jhH/ReA+kntr2vAHp2TJvrRKH63ASLnyNT1zsb psAPkm7AeokU993jEWfpRTQLyAQ5V31hu8R4M+YpPXVolvo84PxhFGWufY68EIAwiPBPW1HfX9Y+O JMry3O1tk1STai3etngB0C90/os1DBZjxnVlTDiKJDeHMG9mXHwWTmJcr0dI3hcs0c3ft6Or1FVHk /q+YLTOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCIEH-000000043xI-0BO5; Wed, 29 May 2024 12:16:29 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sCICr-000000043GV-10Ln for linux-arm-kernel@lists.infradead.org; Wed, 29 May 2024 12:15:16 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-df771b4eacbso3511095276.2 for ; Wed, 29 May 2024 05:15:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1716984900; x=1717589700; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=2WYr4Xqu6SHeaXEynQRTMZNyZEDRWLI9UmjyxKqMZ9M=; b=lYGV9dA6+/EvdaC7zSmV16R0me81U9eCSEirHLjGdi6XK0u1inapEajpBx3O7d6mVV PUi+5SHRblnsIURLUF56p02FeYjAXaQ5a+KbBts9k8GEjOkZsHnjbm/W2xoxYw3fBRiU vR+hPfJ0dTtfqgqeNwXVC9jF7CqB8zE4/ikqZNwrLEdPP7DiRgBW4E16Yt7K2SBJanQ/ hNxsR7d45+UKr0KgXUoAXYyL4U0pLA0Ly1yxOM3cHG1mf3cmYikQvSB57j4XOp/SbXQU NM9ZV4d/s+xgBb8fTVKcDETqXil065+js2y8BUAE+j7RdAW7OcvDXtUUMUBDSyqoZmYs SVkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716984900; x=1717589700; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=2WYr4Xqu6SHeaXEynQRTMZNyZEDRWLI9UmjyxKqMZ9M=; b=mW+VS6LglcSow9V9E+tN7lDCp3AQBrciqkcgBy3BKfMo2fA5rdxF9QTO4TVHZbJWlw wBAL2uk76S8pNUgbfbhb9+SIKeENxtLledhjCCY4uQMHZAFQdmMTIrHmKeSkZwaPoW73 6k+u0gwv+LBRF4W6qsTAhxaZogNRDv0Nx7cz3kfV4+VZZ2uRwKjWkOrHecxYrEzAgjCU H1PhTT1mxgiG5Heyt2RkCUWpiYInVxC9TNxOFJNHDpHqFCDc4OpLXjCQaM31DPvM2sUR e2Wy2PKrQ/uTSuce6cLZoVwEnbUjm/v/Pi689MXKcAgO5VPLcADHA8veu7OmNSvZa5E7 DIEQ== X-Forwarded-Encrypted: i=1; AJvYcCUMnkdd74Q/ZAI/7tvEy5z+vO66b9Sgfv3Ldq8RylUY7d/t5hUi2FbwdvUPxi2Vf8F3LcAyDRS/9KCvgTah0l+ZvCiidx0d3VLWXpqDGUObaqRR378= X-Gm-Message-State: AOJu0YycoGDSm0yhdXFhCurMPYOpXVfhNbhY2MDH+F/VtgQ+wZrUFXJg lAfsxUT7xoRG9Qdl7xdipuSdg8QKMSUlhQiSslIMq1PAqpPKIAEs/UgLCtGGu68LT+6qFudAng= = X-Google-Smtp-Source: AGHT+IHHUoIUjFzO4GjkhNWRkyuptnIeiIsPtLJmFaYxcziwtscpK8PJLaAhdGcG5Z1QL/wRAezHUEYegw== X-Received: from ptosi.c.googlers.com ([fda3:e722:ac3:cc00:31:98fb:c0a8:11ec]) (user=ptosi job=sendgmr) by 2002:a25:ea14:0:b0:df7:8f43:f8a3 with SMTP id 3f1490d57ef6-df78f440daemr2830788276.0.1716984899780; Wed, 29 May 2024 05:14:59 -0700 (PDT) Date: Wed, 29 May 2024 13:12:19 +0100 In-Reply-To: <20240529121251.1993135-1-ptosi@google.com> Mime-Version: 1.0 References: <20240529121251.1993135-1-ptosi@google.com> X-Mailer: git-send-email 2.45.1.288.g0e0cd299f1-goog Message-ID: <20240529121251.1993135-14-ptosi@google.com> Subject: [PATCH v4 13/13] KVM: arm64: nVHE: Support test module for hyp kCFI From: "=?UTF-8?q?Pierre-Cl=C3=A9ment=20Tosi?=" To: kvmarm@lists.linux.dev, linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org Cc: "=?UTF-8?q?Pierre-Cl=C3=A9ment=20Tosi?=" , Marc Zyngier , Oliver Upton , Suzuki K Poulose , Vincent Donnefort X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240529_051501_995668_DB6D0C0A X-CRM114-Status: GOOD ( 26.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org RXh0ZW5kIHN1cHBvcnQgZm9yIHRoZSBrQ0ZJIHRlc3QgbW9kdWxlIHRvIG5WSEUgYnkgcmVwbGlj YXRpbmcgdGhlIGhvb2tzCm9uIHRoZSBLVk1fUlVOIGhhbmRsZXIgcGF0aCBjdXJyZW50bHkgZXhp c3RpbmcgaW4gVkhFIGluIHRoZSBuVkhFIGNvZGUsCmV4cG9ydGluZyB0aGUgZXF1aXZhbGVudCBj YWxsYmFjayB0YXJnZXRzIGZvciB0cmlnZ2VyaW5nIGJ1aWx0LWluIGh5cAprQ0ZJIGZhdWx0cywg YW5kIGV4cG9zaW5nIGEgbmV3IENPTkZJR19IWVBfQ0ZJX1RFU1Qtb25seSBob3N0IEhWQyB0bwpp bXBsZW1lbnQgY2FsbGJhY2sgcmVnaXN0cmF0aW9uLgoKVXBkYXRlIHRoZSB0ZXN0IG1vZHVsZSB0 byByZWdpc3RlciB0aGUgblZIRSBlcXVpdmFsZW50IGNhbGxiYWNrIGZvciB0ZXN0CmNhc2UgJzEn IChpLmUuIGJvdGggRUwyIGh5cCBjYWxsZXIgYW5kIGNhbGxlZSBhcmUgYnVpbHQtaW4pIGFuZCBk b2N1bWVudAp0aGF0IG90aGVyIGNhc2VzIGFyZSBub3Qgc3VwcG9ydGVkIG91dHNpZGUgb2YgVkhF LCBhcyB0aGV5IHJlcXVpcmUgRUwyCnN5bWJvbHMgaW4gdGhlIG1vZHVsZSwgd2hpY2ggaXMgbm90 IGN1cnJlbnRseSBzdXBwb3J0ZWQgZm9yIG5WSEUuCgpOb3RlIHRoYXQgYSBrZXJuZWwgaW4gcHJv dGVjdGVkIG1vZGUgdGhhdCBkb2Vzbid0IHN1cHBvcnQgSFlQX0NGSV9URVNUCndpbGwgcHJldmVu dCB0aGUgbW9kdWxlIGZyb20gcmVnaXN0ZXJpbmcgblZIRSBjYWxsYmFja3MgYm90aCBieSBub3QK ZXhwb3J0aW5nIHRoZSBuZWNlc3Nhcnkgc3ltYm9scyAoc2ltaWxhciB0byBWSEUpIGJ1dCBhbHNv IGJ5IHJlamVjdGluZwp0aGUgY29ycmVzcG9uZGluZyBIVkMsIGlmIHRoZSBtb2R1bGUgdHJpZXMg dG8gaXNzdWUgaXQgZGlyZWN0bHkuCgpBbHNvIG5vdGUgdGhhdCB0aGUgdGVzdCBtb2R1bGUgd2ls bCBydW4gaW4gcEtWTSAod2l0aCBIWVBfQ0ZJX1RFU1QpCmluZGVwZW5kZW50bHkgb2Ygb3RoZXIg ZGVidWcgS2NvbmZpZyBmbGFncyBidXQgdGhhdCBub3Qgc3RhY2t0cmFjZSB3aWxsCmJlIHByaW50 ZWQgd2l0aG91dCBQUk9URUNURURfTlZIRV9TVEFDS1RSQUNFLiBUaGlzIGFsbG93cyB0ZXN0aW5n IGtDRkkKdW5kZXIgY29uZGl0aW9ucyBjbG9zZXIgdG8gcmVsZWFzZSBidWlsZHMsIGlmIGRlc2ly ZWQuCgpTaWduZWQtb2ZmLWJ5OiBQaWVycmUtQ2zDqW1lbnQgVG9zaSA8cHRvc2lAZ29vZ2xlLmNv bT4KLS0tCiBhcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9hc20uaCAgICAgfCAgMyArKwogYXJj aC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fY2ZpLmggICAgIHwgIDYgKystLQogYXJjaC9hcm02NC9r dm0vS2NvbmZpZyAgICAgICAgICAgICAgIHwgIDIgLS0KIGFyY2gvYXJtNjQva3ZtL2h5cC97dmhl ID0+IH0vY2ZpLmMgICB8ICAwCiBhcmNoL2FybTY0L2t2bS9oeXAvbnZoZS9NYWtlZmlsZSAgICAg fCAgMSArCiBhcmNoL2FybTY0L2t2bS9oeXAvbnZoZS9oeXAtbWFpbi5jICAgfCAxOSArKysrKysr KysrKysKIGFyY2gvYXJtNjQva3ZtL2h5cC9udmhlL3N3aXRjaC5jICAgICB8ICA3ICsrKysrCiBh cmNoL2FybTY0L2t2bS9oeXAvdmhlL01ha2VmaWxlICAgICAgfCAgMiArLQogYXJjaC9hcm02NC9r dm0vaHlwX2NmaV90ZXN0LmMgICAgICAgIHwgNDQgKysrKysrKysrKysrKysrKysrKysrKysrLS0t LQogYXJjaC9hcm02NC9rdm0vaHlwX2NmaV90ZXN0X21vZHVsZS5jIHwgMjQgKysrKysrKystLS0t LS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkK IHJlbmFtZSBhcmNoL2FybTY0L2t2bS9oeXAve3ZoZSA9PiB9L2NmaS5jICgxMDAlKQoKZGlmZiAt LWdpdCBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2FzbS5oIGIvYXJjaC9hcm02NC9pbmNs dWRlL2FzbS9rdm1fYXNtLmgKaW5kZXggYTYzMzA0NjBkOWU1Li43OTEwNTQ0OTI5MjAgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2FzbS5oCisrKyBiL2FyY2gvYXJtNjQv aW5jbHVkZS9hc20va3ZtX2FzbS5oCkBAIC03OSw2ICs3OSw5IEBAIGVudW0gX19rdm1faG9zdF9z bWNjY19mdW5jIHsKIAlfX0tWTV9IT1NUX1NNQ0NDX0ZVTkNfX19wa3ZtX2luaXRfdm0sCiAJX19L Vk1fSE9TVF9TTUNDQ19GVU5DX19fcGt2bV9pbml0X3ZjcHUsCiAJX19LVk1fSE9TVF9TTUNDQ19G VU5DX19fcGt2bV90ZWFyZG93bl92bSwKKyNpZmRlZiBDT05GSUdfSFlQX1NVUFBPUlRTX0NGSV9U RVNUCisJX19LVk1fSE9TVF9TTUNDQ19GVU5DX19fa3ZtX3JlZ2lzdGVyX2NmaV90ZXN0X2NiLAor I2VuZGlmCiB9OwogCiAjZGVmaW5lIERFQ0xBUkVfS1ZNX1ZIRV9TWU0oc3ltKQlleHRlcm4gY2hh ciBzeW1bXQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fY2ZpLmggYi9h cmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9jZmkuaAppbmRleCAxM2NjN2IxOWQ4MzguLmVkNjQy MmVlYmNlNSAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fY2ZpLmgKKysr IGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1fY2ZpLmgKQEAgLTEyLDggKzEyLDggQEAKIAog I2lmZGVmIENPTkZJR19IWVBfU1VQUE9SVFNfQ0ZJX1RFU1QKIAotaW50IGt2bV9jZmlfdGVzdF9y ZWdpc3Rlcl9ob3N0X2N0eHRfY2Iodm9pZCAoKmNiKSh2b2lkKSk7Ci1pbnQga3ZtX2NmaV90ZXN0 X3JlZ2lzdGVyX2d1ZXN0X2N0eHRfY2Iodm9pZCAoKmNiKSh2b2lkKSk7CitpbnQga3ZtX2NmaV90 ZXN0X3JlZ2lzdGVyX2hvc3RfY3R4dF9jYih2b2lkICgqdmhlX2NiKSh2b2lkKSwgdm9pZCAqbnZo ZV9jYik7CitpbnQga3ZtX2NmaV90ZXN0X3JlZ2lzdGVyX2d1ZXN0X2N0eHRfY2Iodm9pZCAoKnZo ZV9jYikodm9pZCksIHZvaWQgKm52aGVfY2IpOwogCiAjZWxzZQogCkBAIC0zMSw2ICszMSw4IEBA IHN0YXRpYyBpbmxpbmUgaW50IGt2bV9jZmlfdGVzdF9yZWdpc3Rlcl9ndWVzdF9jdHh0X2NiKHZv aWQgKCpjYikodm9pZCkpCiAKIC8qIFN5bWJvbHMgd2hpY2ggdGhlIGhvc3QgY2FuIHJlZ2lzdGVy IGFzIGh5cCBjYWxsYmFja3M7IHNlZSA8aHlwL2NmaS5oPi4gKi8KIHZvaWQgaHlwX3RyaWdnZXJf YnVpbHRpbl9jZmlfZmF1bHQodm9pZCk7CitERUNMQVJFX0tWTV9OVkhFX1NZTShoeXBfdHJpZ2dl cl9idWlsdGluX2NmaV9mYXVsdCk7CiB2b2lkIGh5cF9idWlsdGluX2NmaV9mYXVsdF90YXJnZXQo aW50IHVudXNlZCk7CitERUNMQVJFX0tWTV9OVkhFX1NZTShoeXBfYnVpbHRpbl9jZmlfZmF1bHRf dGFyZ2V0KTsKIAogI2VuZGlmIC8qIF9fQVJNNjRfS1ZNX0NGSV9IX18gKi8KZGlmZiAtLWdpdCBh L2FyY2gvYXJtNjQva3ZtL0tjb25maWcgYi9hcmNoL2FybTY0L2t2bS9LY29uZmlnCmluZGV4IDVk YWE4MDc5YTEyMC4uNzE1Yzg1MDg4YzA2IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2bS9LY29u ZmlnCisrKyBiL2FyY2gvYXJtNjQva3ZtL0tjb25maWcKQEAgLTc1LDggKzc1LDYgQEAgY29uZmln IEhZUF9DRklfVEVTVAogCSAgU2F5IE0gaGVyZSB0byBhbHNvIGJ1aWxkIGEgbW9kdWxlIHdoaWNo IHJlZ2lzdGVycyBjYWxsYmFja3MgdHJpZ2dlcmluZwogCSAgZmF1bHRzIGFuZCBzZWxlY3RlZCBi eSB1c2Vyc3BhY2UgdGhyb3VnaCBpdHMgcGFyYW1ldGVycy4KIAotCSAgTm90ZSB0aGF0IHRoaXMg ZmVhdHVyZSBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgaW4gVkhFIG1vZGUuCi0KIAkgIElm IHVuc3VyZSwgc2F5IE4uCiAKIGNvbmZpZyBIWVBfU1VQUE9SVFNfQ0ZJX1RFU1QKZGlmZiAtLWdp dCBhL2FyY2gvYXJtNjQva3ZtL2h5cC92aGUvY2ZpLmMgYi9hcmNoL2FybTY0L2t2bS9oeXAvY2Zp LmMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIGFyY2gvYXJtNjQva3ZtL2h5cC92 aGUvY2ZpLmMKcmVuYW1lIHRvIGFyY2gvYXJtNjQva3ZtL2h5cC9jZmkuYwpkaWZmIC0tZ2l0IGEv YXJjaC9hcm02NC9rdm0vaHlwL252aGUvTWFrZWZpbGUgYi9hcmNoL2FybTY0L2t2bS9oeXAvbnZo ZS9NYWtlZmlsZQppbmRleCA3ODJiMzRiMDA0YmUuLjExNWFhODg4MDI2MCAxMDA2NDQKLS0tIGEv YXJjaC9hcm02NC9rdm0vaHlwL252aGUvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm02NC9rdm0vaHlw L252aGUvTWFrZWZpbGUKQEAgLTI1LDYgKzI1LDcgQEAgaHlwLW9iai15IDo9IHRpbWVyLXNyLm8g c3lzcmVnLXNyLm8gZGVidWctc3IubyBzd2l0Y2gubyB0bGIubyBoeXAtaW5pdC5vIGhvc3Qubwog CSBjYWNoZS5vIHNldHVwLm8gbW0ubyBtZW1fcHJvdGVjdC5vIHN5c19yZWdzLm8gcGt2bS5vIHN0 YWNrdHJhY2UubyBmZmEubwogaHlwLW9iai15ICs9IC4uL3ZnaWMtdjMtc3IubyAuLi9hYXJjaDMy Lm8gLi4vdmdpYy12Mi1jcHVpZi1wcm94eS5vIC4uL2VudHJ5Lm8gXAogCSAuLi9mcHNpbWQubyAu Li9oeXAtZW50cnkubyAuLi9leGNlcHRpb24ubyAuLi9wZ3RhYmxlLm8KK2h5cC1vYmotJChDT05G SUdfSFlQX1NVUFBPUlRTX0NGSV9URVNUKSArPSAuLi9jZmkubwogaHlwLW9iai0kKENPTkZJR19M SVNUX0hBUkRFTkVEKSArPSBsaXN0X2RlYnVnLm8KIGh5cC1vYmoteSArPSAkKGxpYi1vYmpzKQog CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9oeXAvbnZoZS9oeXAtbWFpbi5jIGIvYXJjaC9h cm02NC9rdm0vaHlwL252aGUvaHlwLW1haW4uYwppbmRleCBkNWM0OGRjOThmNjcuLjM5ZWQwNmZi YjE5MCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rdm0vaHlwL252aGUvaHlwLW1haW4uYworKysg Yi9hcmNoL2FybTY0L2t2bS9oeXAvbnZoZS9oeXAtbWFpbi5jCkBAIC01LDYgKzUsNyBAQAogICov CiAKICNpbmNsdWRlIDxoeXAvYWRqdXN0X3BjLmg+CisjaW5jbHVkZSA8aHlwL2NmaS5oPgogCiAj aW5jbHVkZSA8YXNtL3BndGFibGUtdHlwZXMuaD4KICNpbmNsdWRlIDxhc20va3ZtX2FzbS5oPgpA QCAtMTMsNiArMTQsOCBAQAogI2luY2x1ZGUgPGFzbS9rdm1faHlwLmg+CiAjaW5jbHVkZSA8YXNt L2t2bV9tbXUuaD4KIAorI2luY2x1ZGUgPGxpbnV4L2NvbXBpbGVyLmg+CisKICNpbmNsdWRlIDxu dmhlL2ZmYS5oPgogI2luY2x1ZGUgPG52aGUvbWVtX3Byb3RlY3QuaD4KICNpbmNsdWRlIDxudmhl L21tLmg+CkBAIC0zMDEsNiArMzA0LDE5IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9fX3Brdm1fdGVh cmRvd25fdm0oc3RydWN0IGt2bV9jcHVfY29udGV4dCAqaG9zdF9jdHh0KQogCWNwdV9yZWcoaG9z dF9jdHh0LCAxKSA9IF9fcGt2bV90ZWFyZG93bl92bShoYW5kbGUpOwogfQogCisjaWZuZGVmIENP TkZJR19IWVBfU1VQUE9SVFNfQ0ZJX1RFU1QKK19fYWx3YXlzX3VudXNlZAorI2VuZGlmCitzdGF0 aWMgdm9pZCBoYW5kbGVfX19rdm1fcmVnaXN0ZXJfY2ZpX3Rlc3RfY2Ioc3RydWN0IGt2bV9jcHVf Y29udGV4dCAqaG9zdF9jdHh0KQoreworCURFQ0xBUkVfUkVHKHBoeXNfYWRkcl90LCBjYl9waHlz LCBob3N0X2N0eHQsIDEpOworCURFQ0xBUkVfUkVHKGJvb2wsIGluX2hvc3RfY3R4dCwgaG9zdF9j dHh0LCAyKTsKKworCXZvaWQgKCpjYikodm9pZCkgPSBjYl9waHlzID8gX19oeXBfdmEoY2JfcGh5 cykgOiBOVUxMOworCisJY3B1X3JlZyhob3N0X2N0eHQsIDEpID0gX19rdm1fcmVnaXN0ZXJfY2Zp X3Rlc3RfY2IoY2IsIGluX2hvc3RfY3R4dCk7Cit9CisKIHR5cGVkZWYgdm9pZCAoKmhjYWxsX3Qp KHN0cnVjdCBrdm1fY3B1X2NvbnRleHQgKik7CiAKICNkZWZpbmUgSEFORExFX0ZVTkMoeCkJW19f S1ZNX0hPU1RfU01DQ0NfRlVOQ18jI3hdID0gKGhjYWxsX3QpaGFuZGxlXyMjeApAQCAtMzMzLDYg KzM0OSw5IEBAIHN0YXRpYyBjb25zdCBoY2FsbF90IGhvc3RfaGNhbGxbXSA9IHsKIAlIQU5ETEVf RlVOQyhfX3Brdm1faW5pdF92bSksCiAJSEFORExFX0ZVTkMoX19wa3ZtX2luaXRfdmNwdSksCiAJ SEFORExFX0ZVTkMoX19wa3ZtX3RlYXJkb3duX3ZtKSwKKyNpZmRlZiBDT05GSUdfSFlQX1NVUFBP UlRTX0NGSV9URVNUCisJSEFORExFX0ZVTkMoX19rdm1fcmVnaXN0ZXJfY2ZpX3Rlc3RfY2IpLAor I2VuZGlmCiB9OwogCiBzdGF0aWMgdm9pZCBoYW5kbGVfaG9zdF9oY2FsbChzdHJ1Y3Qga3ZtX2Nw dV9jb250ZXh0ICpob3N0X2N0eHQpCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9oeXAvbnZo ZS9zd2l0Y2guYyBiL2FyY2gvYXJtNjQva3ZtL2h5cC9udmhlL3N3aXRjaC5jCmluZGV4IDY3NThj ZDkwNTU3MC4uNTJkMmZhZGE5ZTE5IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2bS9oeXAvbnZo ZS9zd2l0Y2guYworKysgYi9hcmNoL2FybTY0L2t2bS9oeXAvbnZoZS9zd2l0Y2guYwpAQCAtNCw2 ICs0LDcgQEAKICAqIEF1dGhvcjogTWFyYyBaeW5naWVyIDxtYXJjLnp5bmdpZXJAYXJtLmNvbT4K ICAqLwogCisjaW5jbHVkZSA8aHlwL2NmaS5oPgogI2luY2x1ZGUgPGh5cC9zd2l0Y2guaD4KICNp bmNsdWRlIDxoeXAvc3lzcmVnLXNyLmg+CiAKQEAgLTI0OSw2ICsyNTAsOSBAQCBpbnQgX19rdm1f dmNwdV9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCWJvb2wgcG11X3N3aXRjaF9uZWVkZWQ7 CiAJdTY0IGV4aXRfY29kZTsKIAorCWlmIChJU19FTkFCTEVEKENPTkZJR19IWVBfU1VQUE9SVFNf Q0ZJX1RFU1QpICYmIHVubGlrZWx5KGh5cF90ZXN0X2hvc3RfY3R4dF9jZmkpKQorCQloeXBfdGVz dF9ob3N0X2N0eHRfY2ZpKCk7CisKIAkvKgogCSAqIEhhdmluZyBJUlFzIG1hc2tlZCB2aWEgUE1S IHdoZW4gZW50ZXJpbmcgdGhlIGd1ZXN0IG1lYW5zIHRoZSBHSUMKIAkgKiB3aWxsIG5vdCBzaWdu YWwgdGhlIENQVSBvZiBpbnRlcnJ1cHRzIG9mIGxvd2VyIHByaW9yaXR5LCBhbmQgdGhlCkBAIC0z MDksNiArMzEzLDkgQEAgaW50IF9fa3ZtX3ZjcHVfcnVuKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkK IAogCV9fZGVidWdfc3dpdGNoX3RvX2d1ZXN0KHZjcHUpOwogCisJaWYgKElTX0VOQUJMRUQoQ09O RklHX0hZUF9TVVBQT1JUU19DRklfVEVTVCkgJiYgdW5saWtlbHkoaHlwX3Rlc3RfZ3Vlc3RfY3R4 dF9jZmkpKQorCQloeXBfdGVzdF9ndWVzdF9jdHh0X2NmaSgpOworCiAJZG8gewogCQkvKiBKdW1w IGluIHRoZSBmaXJlISAqLwogCQlleGl0X2NvZGUgPSBfX2d1ZXN0X2VudGVyKHZjcHUpOwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwL3ZoZS9NYWtlZmlsZSBiL2FyY2gvYXJtNjQva3Zt L2h5cC92aGUvTWFrZWZpbGUKaW5kZXggMTljYTU4NGNjMjFlLi45NTFjOGMwMGE2ODUgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtNjQva3ZtL2h5cC92aGUvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm02NC9r dm0vaHlwL3ZoZS9NYWtlZmlsZQpAQCAtOSw0ICs5LDQgQEAgY2NmbGFncy15IDo9IC1EX19LVk1f VkhFX0hZUEVSVklTT1JfXwogb2JqLXkgOj0gdGltZXItc3IubyBzeXNyZWctc3IubyBkZWJ1Zy1z ci5vIHN3aXRjaC5vIHRsYi5vCiBvYmoteSArPSAuLi92Z2ljLXYzLXNyLm8gLi4vYWFyY2gzMi5v IC4uL3ZnaWMtdjItY3B1aWYtcHJveHkubyAuLi9lbnRyeS5vIFwKIAkgLi4vZnBzaW1kLm8gLi4v aHlwLWVudHJ5Lm8gLi4vZXhjZXB0aW9uLm8KLW9iai0kKENPTkZJR19IWVBfU1VQUE9SVFNfQ0ZJ X1RFU1QpICs9IGNmaS5vCitvYmotJChDT05GSUdfSFlQX1NVUFBPUlRTX0NGSV9URVNUKSArPSAu Li9jZmkubwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwX2NmaV90ZXN0LmMgYi9hcmNo L2FybTY0L2t2bS9oeXBfY2ZpX3Rlc3QuYwppbmRleCBkYTdiMjVjYTFiMWYuLjZhMDJiNDNjNDVm NiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rdm0vaHlwX2NmaV90ZXN0LmMKKysrIGIvYXJjaC9h cm02NC9rdm0vaHlwX2NmaV90ZXN0LmMKQEAgLTYsNiArNiw3IEBACiAjaW5jbHVkZSA8YXNtL2t2 bV9hc20uaD4KICNpbmNsdWRlIDxhc20va3ZtX2NmaS5oPgogI2luY2x1ZGUgPGFzbS9rdm1faG9z dC5oPgorI2luY2x1ZGUgPGFzbS9rdm1fbW11Lmg+CiAjaW5jbHVkZSA8YXNtL3ZpcnQuaD4KIAog I2luY2x1ZGUgPGxpbnV4L2V4cG9ydC5oPgpAQCAtMTUsMjkgKzE2LDYwIEBACiAvKiBGb3IgY2Fs bGluZyBkaXJlY3RseSBpbnRvIHRoZSBWSEUgaHlwZXJ2aXNvcjsgc2VlIDxoeXAvY2ZpLmg+LiAq LwogaW50IF9fa3ZtX3JlZ2lzdGVyX2NmaV90ZXN0X2NiKHZvaWQgKCopKHZvaWQpLCBib29sKTsK IAotc3RhdGljIGludCBrdm1fcmVnaXN0ZXJfY2ZpX3Rlc3RfY2Iodm9pZCAoKnZoZV9jYikodm9p ZCksIGJvb2wgaW5faG9zdF9jdHh0KQorc3RhdGljIGludCBrdm1fcmVnaXN0ZXJfbnZoZV9jZmlf dGVzdF9jYih2b2lkICpjYiwgYm9vbCBpbl9ob3N0X2N0eHQpCit7CisJZXh0ZXJuIHZvaWQgKmt2 bV9udmhlX3N5bShoeXBfdGVzdF9ob3N0X2N0eHRfY2ZpKTsKKwlleHRlcm4gdm9pZCAqa3ZtX252 aGVfc3ltKGh5cF90ZXN0X2d1ZXN0X2N0eHRfY2ZpKTsKKworCWlmIChpc19wcm90ZWN0ZWRfa3Zt X2VuYWJsZWQoKSkgeworCQlwaHlzX2FkZHJfdCBjYl9waHlzID0gY2IgPyB2aXJ0X3RvX3BoeXMo Y2IpIDogMDsKKworCQkvKiBVc2UgSFZDIGFzIG9ubHkgdGhlIGh5cCBjYW4gbW9kaWZ5IGl0cyBj YWxsYmFjayBwb2ludGVycy4gKi8KKwkJcmV0dXJuIGt2bV9jYWxsX2h5cF9udmhlKF9fa3ZtX3Jl Z2lzdGVyX2NmaV90ZXN0X2NiLCBjYl9waHlzLAorCQkJCQkgaW5faG9zdF9jdHh0KTsKKwl9CisK KwkvKgorCSAqIEluIG5vbi1wcm90ZWN0ZWQgblZIRSwgdGhlIHBLVk0gSFZDIGlzIG5vdCBhdmFp bGFibGUgYnV0IHRoZQorCSAqIGh5cCBjYWxsYmFjayBwb2ludGVycyBjYW4gYmUgYWNjZXNzZWQg YW5kIG1vZGlmaWVkIGRpcmVjdGx5LgorCSAqLworCWlmIChjYikKKwkJY2IgPSBrZXJuX2h5cF92 YShrdm1fa3N5bV9yZWYoY2IpKTsKKworCWlmIChpbl9ob3N0X2N0eHQpCisJCWt2bV9udmhlX3N5 bShoeXBfdGVzdF9ob3N0X2N0eHRfY2ZpKSA9IGNiOworCWVsc2UKKwkJa3ZtX252aGVfc3ltKGh5 cF90ZXN0X2d1ZXN0X2N0eHRfY2ZpKSA9IGNiOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQga3ZtX3JlZ2lzdGVyX2NmaV90ZXN0X2NiKHZvaWQgKCp2aGVfY2IpKHZvaWQpLCB2b2lkICpu dmhlX2NiLAorCQkJCSAgICBib29sIGluX2hvc3RfY3R4dCkKIHsKIAlpZiAoIWlzX2h5cF9tb2Rl X2F2YWlsYWJsZSgpKQogCQlyZXR1cm4gLUVOWElPOwogCiAJaWYgKGlzX2h5cF9udmhlKCkpCi0J CXJldHVybiAtRU9QTk9UU1VQUDsKKwkJcmV0dXJuIGt2bV9yZWdpc3Rlcl9udmhlX2NmaV90ZXN0 X2NiKG52aGVfY2IsIGluX2hvc3RfY3R4dCk7CiAKIAlyZXR1cm4gX19rdm1fcmVnaXN0ZXJfY2Zp X3Rlc3RfY2IodmhlX2NiLCBpbl9ob3N0X2N0eHQpOwogfQogCi1pbnQga3ZtX2NmaV90ZXN0X3Jl Z2lzdGVyX2hvc3RfY3R4dF9jYih2b2lkICgqY2IpKHZvaWQpKQoraW50IGt2bV9jZmlfdGVzdF9y ZWdpc3Rlcl9ob3N0X2N0eHRfY2Iodm9pZCAoKnZoZV9jYikodm9pZCksIHZvaWQgKm52aGVfY2Ip CiB7Ci0JcmV0dXJuIGt2bV9yZWdpc3Rlcl9jZmlfdGVzdF9jYihjYiwgdHJ1ZSk7CisJcmV0dXJu IGt2bV9yZWdpc3Rlcl9jZmlfdGVzdF9jYih2aGVfY2IsIG52aGVfY2IsIHRydWUpOwogfQogRVhQ T1JUX1NZTUJPTChrdm1fY2ZpX3Rlc3RfcmVnaXN0ZXJfaG9zdF9jdHh0X2NiKTsKIAotaW50IGt2 bV9jZmlfdGVzdF9yZWdpc3Rlcl9ndWVzdF9jdHh0X2NiKHZvaWQgKCpjYikodm9pZCkpCitpbnQg a3ZtX2NmaV90ZXN0X3JlZ2lzdGVyX2d1ZXN0X2N0eHRfY2Iodm9pZCAoKnZoZV9jYikodm9pZCks IHZvaWQgKm52aGVfY2IpCiB7Ci0JcmV0dXJuIGt2bV9yZWdpc3Rlcl9jZmlfdGVzdF9jYihjYiwg ZmFsc2UpOworCXJldHVybiBrdm1fcmVnaXN0ZXJfY2ZpX3Rlc3RfY2IodmhlX2NiLCBudmhlX2Ni LCBmYWxzZSk7CiB9CiBFWFBPUlRfU1lNQk9MKGt2bV9jZmlfdGVzdF9yZWdpc3Rlcl9ndWVzdF9j dHh0X2NiKTsKIAogLyogSHlwZXJ2aXNvciBjYWxsYmFja3MgZm9yIHRoZSB0ZXN0IG1vZHVsZSB0 byByZWdpc3Rlci4gKi8KIEVYUE9SVF9TWU1CT0woaHlwX3RyaWdnZXJfYnVpbHRpbl9jZmlfZmF1 bHQpOworRVhQT1JUX1NZTUJPTChrdm1fbnZoZV9zeW0oaHlwX3RyaWdnZXJfYnVpbHRpbl9jZmlf ZmF1bHQpKTsKIEVYUE9SVF9TWU1CT0woaHlwX2J1aWx0aW5fY2ZpX2ZhdWx0X3RhcmdldCk7CitF WFBPUlRfU1lNQk9MKGt2bV9udmhlX3N5bShoeXBfYnVpbHRpbl9jZmlfZmF1bHRfdGFyZ2V0KSk7 CmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9oeXBfY2ZpX3Rlc3RfbW9kdWxlLmMgYi9hcmNo L2FybTY0L2t2bS9oeXBfY2ZpX3Rlc3RfbW9kdWxlLmMKaW5kZXggZWVkYTRiZTRkM2VmLi42M2E1 ZTk5Y2IxNjQgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva3ZtL2h5cF9jZmlfdGVzdF9tb2R1bGUu YworKysgYi9hcmNoL2FybTY0L2t2bS9oeXBfY2ZpX3Rlc3RfbW9kdWxlLmMKQEAgLTIwLDkgKzIw LDkgQEAgc3RhdGljIGludCBzZXRfZ3Vlc3RfbW9kZShjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0 cnVjdCBrZXJuZWxfcGFyYW0gKmtwKTsKICNkZWZpbmUgTV9ERVNDIFwKIAkiXG5cdDA6IG5vbmUi IFwKIAkiXG5cdDE6IGJ1aWx0LWluIGNhbGxlciAmIGJ1aWx0LWluIGNhbGxlZSIgXAotCSJcblx0 MjogYnVpbHQtaW4gY2FsbGVyICYgbW9kdWxlIGNhbGxlZSIgXAotCSJcblx0MzogbW9kdWxlIGNh bGxlciAmIGJ1aWx0LWluIGNhbGxlZSIgXAotCSJcblx0NDogbW9kdWxlIGNhbGxlciAmIG1vZHVs ZSBjYWxsZWUiCisJIlxuXHQyOiBidWlsdC1pbiBjYWxsZXIgJiBtb2R1bGUgY2FsbGVlIChWSEUg b25seSkiIFwKKwkiXG5cdDM6IG1vZHVsZSBjYWxsZXIgJiBidWlsdC1pbiBjYWxsZWUgKFZIRSBv bmx5KSIgXAorCSJcblx0NDogbW9kdWxlIGNhbGxlciAmIG1vZHVsZSBjYWxsZWUgKFZIRSBvbmx5 KSIKIAogc3RhdGljIHVuc2lnbmVkIGludCBob3N0X21vZGU7CiBtb2R1bGVfcGFyYW1fY2FsbCho b3N0LCBzZXRfaG9zdF9tb2RlLCBwYXJhbV9nZXRfdWludCwgJmhvc3RfbW9kZSwgMDY0NCk7CkBA IC00MCw3ICs0MCw3IEBAIHN0YXRpYyB2b2lkIGh5cF9jZmlfbW9kdWxlMm1vZHVsZV90ZXN0X3Rh cmdldChpbnQpOwogc3RhdGljIHZvaWQgaHlwX2NmaV9idWlsdGluMm1vZHVsZV90ZXN0X3Rhcmdl dChpbnQpOwogCiBzdGF0aWMgaW50IHNldF9wYXJhbV9tb2RlKGNvbnN0IGNoYXIgKnZhbCwgY29u c3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3AsCi0JCQkgaW50ICgqcmVnaXN0ZXJfY2IpKHZvaWQg KCopKHZvaWQpKSkKKwkJCSBpbnQgKCpyZWdpc3Rlcl9jYikodm9pZCAoKikodm9pZCksIHZvaWQg KikpCiB7CiAJdW5zaWduZWQgaW50ICptb2RlID0ga3AtPmFyZzsKIAlpbnQgZXJyOwpAQCAtNTEs MTUgKzUxLDE3IEBAIHN0YXRpYyBpbnQgc2V0X3BhcmFtX21vZGUoY29uc3QgY2hhciAqdmFsLCBj b25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCwKIAogCXN3aXRjaCAoKm1vZGUpIHsKIAljYXNl IDA6Ci0JCXJldHVybiByZWdpc3Rlcl9jYihOVUxMKTsKKwkJcmV0dXJuIHJlZ2lzdGVyX2NiKE5V TEwsIE5VTEwpOwogCWNhc2UgMToKLQkJcmV0dXJuIHJlZ2lzdGVyX2NiKGh5cF90cmlnZ2VyX2J1 aWx0aW5fY2ZpX2ZhdWx0KTsKKwkJcmV0dXJuIHJlZ2lzdGVyX2NiKGh5cF90cmlnZ2VyX2J1aWx0 aW5fY2ZpX2ZhdWx0LAorCQkJCSAgIGt2bV9udmhlX3N5bShoeXBfdHJpZ2dlcl9idWlsdGluX2Nm aV9mYXVsdCkpOwogCWNhc2UgMjoKLQkJcmV0dXJuIHJlZ2lzdGVyX2NiKCh2b2lkICopaHlwX2Nm aV9idWlsdGluMm1vZHVsZV90ZXN0X3RhcmdldCk7CisJCXJldHVybiByZWdpc3Rlcl9jYigodm9p ZCAqKWh5cF9jZmlfYnVpbHRpbjJtb2R1bGVfdGVzdF90YXJnZXQsCisJCQkJICAgTlVMTCk7CiAJ Y2FzZSAzOgotCQlyZXR1cm4gcmVnaXN0ZXJfY2IodHJpZ2dlcl9tb2R1bGUyYnVpbHRpbl9jZmlf ZmF1bHQpOworCQlyZXR1cm4gcmVnaXN0ZXJfY2IodHJpZ2dlcl9tb2R1bGUyYnVpbHRpbl9jZmlf ZmF1bHQsIE5VTEwpOwogCWNhc2UgNDoKLQkJcmV0dXJuIHJlZ2lzdGVyX2NiKHRyaWdnZXJfbW9k dWxlMm1vZHVsZV9jZmlfZmF1bHQpOworCQlyZXR1cm4gcmVnaXN0ZXJfY2IodHJpZ2dlcl9tb2R1 bGUybW9kdWxlX2NmaV9mYXVsdCwgTlVMTCk7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIC1FSU5WQUw7 CiAJfQpAQCAtNzksMTEgKzgxLDExIEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBleGl0X2h5cF9jZmlf dGVzdCh2b2lkKQogewogCWludCBlcnI7CiAKLQllcnIgPSBrdm1fY2ZpX3Rlc3RfcmVnaXN0ZXJf aG9zdF9jdHh0X2NiKE5VTEwpOworCWVyciA9IGt2bV9jZmlfdGVzdF9yZWdpc3Rlcl9ob3N0X2N0 eHRfY2IoTlVMTCwgTlVMTCk7CiAJaWYgKGVycikKIAkJcHJfZXJyKCJGYWlsZWQgdG8gdW5yZWdp c3RlciBob3N0IGNvbnRleHQgdHJpZ2dlcjogJWRcbiIsIGVycik7CiAKLQllcnIgPSBrdm1fY2Zp X3Rlc3RfcmVnaXN0ZXJfZ3Vlc3RfY3R4dF9jYihOVUxMKTsKKwllcnIgPSBrdm1fY2ZpX3Rlc3Rf cmVnaXN0ZXJfZ3Vlc3RfY3R4dF9jYihOVUxMLCBOVUxMKTsKIAlpZiAoZXJyKQogCQlwcl9lcnIo IkZhaWxlZCB0byB1bnJlZ2lzdGVyIGd1ZXN0IGNvbnRleHQgdHJpZ2dlcjogJWRcbiIsIGVycik7 CiB9Ci0tIAoyLjQ1LjEuMjg4LmcwZTBjZDI5OWYxLWdvb2cKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==