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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9DCDAC4332F for ; Wed, 6 Oct 2021 17:55:46 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (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 5F1EC610A1 for ; Wed, 6 Oct 2021 17:55:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5F1EC610A1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bitdefender.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.linux-foundation.org Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id DA58783AB8; Wed, 6 Oct 2021 17:55:45 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wvfvl4x4Cf8E; Wed, 6 Oct 2021 17:55:44 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 3933983BAA; Wed, 6 Oct 2021 17:55:44 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 208A0C001D; Wed, 6 Oct 2021 17:55:44 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 9C1F0C000D for ; Wed, 6 Oct 2021 17:55:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 69AB383AEB for ; Wed, 6 Oct 2021 17:55:41 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P9k0z-4zKwA5 for ; Wed, 6 Oct 2021 17:55:40 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 Received: from mx01.bbu.dsd.mx.bitdefender.com (mx01.bbu.dsd.mx.bitdefender.com [91.199.104.161]) by smtp1.osuosl.org (Postfix) with ESMTPS id 4B05783AB8 for ; Wed, 6 Oct 2021 17:55:40 +0000 (UTC) Received: from smtp.bitdefender.com (smtp01.buh.bitdefender.com [10.17.80.75]) by mx01.bbu.dsd.mx.bitdefender.com (Postfix) with ESMTPS id A26D5307CAF6; Wed, 6 Oct 2021 20:31:07 +0300 (EEST) Received: from localhost (unknown [91.199.104.28]) by smtp.bitdefender.com (Postfix) with ESMTPSA id 84E04305FFA0; Wed, 6 Oct 2021 20:31:07 +0300 (EEST) X-Is-Junk-Enabled: fGZTSsP0qEJE2AIKtlSuFiRRwg9xyHmJ From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= To: kvm@vger.kernel.org Subject: [PATCH v12 34/77] KVM: introspection: add KVMI_VM_CHECK_COMMAND and KVMI_VM_CHECK_EVENT Date: Wed, 6 Oct 2021 20:30:30 +0300 Message-Id: <20211006173113.26445-35-alazar@bitdefender.com> In-Reply-To: <20211006173113.26445-1-alazar@bitdefender.com> References: <20211006173113.26445-1-alazar@bitdefender.com> MIME-Version: 1.0 Cc: Tamas K Lengyel , Wanpeng Li , Sean Christopherson , Joerg Roedel , virtualization@lists.linux-foundation.org, =?UTF-8?q?Adalbert=20Laz=C4=83r?= , Mathieu Tarral , Paolo Bonzini , Jim Mattson X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" VGhlc2UgY29tbWFuZHMgYXJlIHVzZWQgdG8gY2hlY2sgd2hhdCBpbnRyb3NwZWN0aW9uIGNvbW1h bmRzIGFuZCBldmVudHMKYXJlIHN1cHBvcnRlZCAoa2VybmVsKSBhbmQgYWxsb3dlZCAoZGV2aWNl IG1hbmFnZXIpLgoKVGhlc2UgYXJlIGFsdGVybmF0aXZlIG1ldGhvZHMgdG8gS1ZNSV9HRVRfVkVS U0lPTiBpbiBjaGVja2luZyBpZiB0aGUKaW50cm9zcGVjdGlvbiBzdXBwb3J0cyBhIHNwZWNpZmlj IGNvbW1hbmQvZXZlbnQuCgpBcyB3aXRoIHRoZSBLVk1JX0dFVF9WRVJTSU9OIGNvbW1hbmQsIHRo ZXNlIHR3byBjb21tYW5kcyBjYW4gbmV2ZXIgYmUKZGlzYWxsb3dlZCBieSB0aGUgZGV2aWNlIG1h bmFnZXIuCgpTaWduZWQtb2ZmLWJ5OiBBZGFsYmVydCBMYXrEg3IgPGFsYXphckBiaXRkZWZlbmRl ci5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9rdm1pLnJzdCAgICAgICAgICAgICAg IHwgNjIgKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaCAgICAg ICAgICAgICAgICAgICAgIHwgMTYgKysrKy0KIC4uLi90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2 XzY0L2t2bWlfdGVzdC5jICB8IDQ1ICsrKysrKysrKysrKysrCiB2aXJ0L2t2bS9pbnRyb3NwZWN0 aW9uL2t2bWkuYyAgICAgICAgICAgICAgICAgfCAxOSArKysrKysKIHZpcnQva3ZtL2ludHJvc3Bl Y3Rpb24va3ZtaV9pbnQuaCAgICAgICAgICAgICB8ICAyICsKIHZpcnQva3ZtL2ludHJvc3BlY3Rp b24va3ZtaV9tc2cuYyAgICAgICAgICAgICB8IDQwICsrKysrKysrKysrLQogNiBmaWxlcyBjaGFu Z2VkLCAxODIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1 bWVudGF0aW9uL3ZpcnQva3ZtL2t2bWkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9rdm1p LnJzdAppbmRleCBkM2Q2NzJhMDc4NzIuLjEzMTY5NTc1Zjc1ZiAxMDA2NDQKLS0tIGEvRG9jdW1l bnRhdGlvbi92aXJ0L2t2bS9rdm1pLnJzdAorKysgYi9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2t2 bWkucnN0CkBAIC0yNTAsMyArMjUwLDY1IEBAIGxhcmdlciBtZXNzYWdlcy4KIFRoZSBpbnRyb3Nw ZWN0aW9uIHRvb2wgc2hvdWxkIHVzZSB0aGlzIGNvbW1hbmQgdG8gaWRlbnRpZnkgdGhlIGZlYXR1 cmVzCiBzdXBwb3J0ZWQgYnkgdGhlIGtlcm5lbCBzaWRlIGFuZCB3aGF0IG1lc3NhZ2VzIG11c3Qg YmUgdXNlZCBmb3IgZXZlbnQKIHJlcGxpZXMuCisKKzIuIEtWTUlfVk1fQ0hFQ0tfQ09NTUFORAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzpBcmNoaXRlY3R1cmVzOiBhbGwKKzpWZXJzaW9u czogPj0gMQorOlBhcmFtZXRlcnM6CisKKzo6CisKKwlzdHJ1Y3Qga3ZtaV92bV9jaGVja19jb21t YW5kIHsKKwkJX191MTYgaWQ7CisJCV9fdTE2IHBhZGRpbmcxOworCQlfX3UzMiBwYWRkaW5nMjsK Kwl9OworCis6UmV0dXJuczoKKworOjoKKworCXN0cnVjdCBrdm1pX2Vycm9yX2NvZGU7CisKK0No ZWNrcyBpZiB0aGUgY29tbWFuZCBzcGVjaWZpZWQgYnkgYGBpZGBgIGlzIHN1cHBvcnRlZCBhbmQg YWxsb3dlZC4KKworVGhpcyBjb21tYW5kIGlzIGFsd2F5cyBhbGxvd2VkLgorCis6RXJyb3JzOgor CisqIC1LVk1fRU5PRU5UIC0gdGhlIGNvbW1hbmQgc3BlY2lmaWVkIGJ5IGBgaWRgYCBpcyB1bnN1 cHBvcnRlZAorKiAtS1ZNX0VQRVJNIC0gdGhlIGNvbW1hbmQgc3BlY2lmaWVkIGJ5IGBgaWRgYCBp cyBkaXNhbGxvd2VkCisqIC1LVk1fRUlOVkFMIC0gdGhlIHBhZGRpbmcgaXMgbm90IHplcm8KKwor My4gS1ZNSV9WTV9DSEVDS19FVkVOVAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCis6QXJjaGl0 ZWN0dXJlczogYWxsCis6VmVyc2lvbnM6ID49IDEKKzpQYXJhbWV0ZXJzOgorCis6OgorCisJc3Ry dWN0IGt2bWlfdm1fY2hlY2tfZXZlbnQgeworCQlfX3UxNiBpZDsKKwkJX191MTYgcGFkZGluZzE7 CisJCV9fdTMyIHBhZGRpbmcyOworCX07CisKKzpSZXR1cm5zOgorCis6OgorCisJc3RydWN0IGt2 bWlfZXJyb3JfY29kZTsKKworQ2hlY2tzIGlmIHRoZSBldmVudCBzcGVjaWZpZWQgYnkgYGBpZGBg IGlzIHN1cHBvcnRlZCBhbmQgYWxsb3dlZC4KKworVGhpcyBjb21tYW5kIGlzIGFsd2F5cyBhbGxv d2VkLgorCis6RXJyb3JzOgorCisqIC1LVk1fRU5PRU5UIC0gdGhlIGV2ZW50IHNwZWNpZmllZCBi eSBgYGlkYGAgaXMgdW5zdXBwb3J0ZWQKKyogLUtWTV9FUEVSTSAtIHRoZSBldmVudCBzcGVjaWZp ZWQgYnkgYGBpZGBgIGlzIGRpc2FsbG93ZWQKKyogLUtWTV9FSU5WQUwgLSB0aGUgcGFkZGluZyBp cyBub3QgemVybwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaCBiL2luY2x1 ZGUvdWFwaS9saW51eC9rdm1pLmgKaW5kZXggNzdkZDcyN2RmZTE4Li4wYzJkMGNlZGRlNmYgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgKKysrIGIvaW5jbHVkZS91YXBpL2xp bnV4L2t2bWkuaApAQCAtMTcsNyArMTcsOSBAQCBlbnVtIHsKICNkZWZpbmUgS1ZNSV9WQ1BVX01F U1NBR0VfSUQoaWQpICgoKGlkKSA8PCAxKSB8IDEpCiAKIGVudW0gewotCUtWTUlfR0VUX1ZFUlNJ T04gPSBLVk1JX1ZNX01FU1NBR0VfSUQoMSksCisJS1ZNSV9HRVRfVkVSU0lPTiAgICAgID0gS1ZN SV9WTV9NRVNTQUdFX0lEKDEpLAorCUtWTUlfVk1fQ0hFQ0tfQ09NTUFORCA9IEtWTUlfVk1fTUVT U0FHRV9JRCgyKSwKKwlLVk1JX1ZNX0NIRUNLX0VWRU5UICAgPSBLVk1JX1ZNX01FU1NBR0VfSUQo MyksCiAKIAlLVk1JX05FWFRfVk1fTUVTU0FHRQogfTsKQEAgLTUzLDQgKzU1LDE2IEBAIHN0cnVj dCBrdm1pX2dldF92ZXJzaW9uX3JlcGx5IHsKIAlfX3UzMiBtYXhfbXNnX3NpemU7CiB9OwogCitz dHJ1Y3Qga3ZtaV92bV9jaGVja19jb21tYW5kIHsKKwlfX3UxNiBpZDsKKwlfX3UxNiBwYWRkaW5n MTsKKwlfX3UzMiBwYWRkaW5nMjsKK307CisKK3N0cnVjdCBrdm1pX3ZtX2NoZWNrX2V2ZW50IHsK KwlfX3UxNiBpZDsKKwlfX3UxNiBwYWRkaW5nMTsKKwlfX3UzMiBwYWRkaW5nMjsKK307CisKICNl bmRpZiAvKiBfVUFQSV9fTElOVVhfS1ZNSV9IICovCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9rdm0veDg2XzY0L2t2bWlfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVz dHMva3ZtL3g4Nl82NC9rdm1pX3Rlc3QuYwppbmRleCA2OTk5M2U1NDMzNGEuLjU3ZjY4ZmY2MGVi OSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Nl82NC9rdm1pX3Rl c3QuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2XzY0L2t2bWlfdGVzdC5j CkBAIC0xMDAsNiArMTAwLDggQEAgc3RhdGljIHZvaWQgaG9va19pbnRyb3NwZWN0aW9uKHN0cnVj dCBrdm1fdm0gKnZtKQogCWRvX2hvb2tfaW9jdGwodm0sIEt2bV9zb2NrZXQsIEVFWElTVCk7CiAK IAlzZXRfY29tbWFuZF9wZXJtKHZtLCBLVk1JX0dFVF9WRVJTSU9OLCBkaXNhbGxvdywgRVBFUk0p OworCXNldF9jb21tYW5kX3Blcm0odm0sIEtWTUlfVk1fQ0hFQ0tfQ09NTUFORCwgZGlzYWxsb3cs IEVQRVJNKTsKKwlzZXRfY29tbWFuZF9wZXJtKHZtLCBLVk1JX1ZNX0NIRUNLX0VWRU5ULCBkaXNh bGxvdywgRVBFUk0pOwogCXNldF9jb21tYW5kX3Blcm0odm0sIGFsbF9JRHMsIGFsbG93X2ludmFs LCBFSU5WQUwpOwogCXNldF9jb21tYW5kX3Blcm0odm0sIGFsbF9JRHMsIGRpc2FsbG93LCAwKTsK IAlzZXRfY29tbWFuZF9wZXJtKHZtLCBhbGxfSURzLCBhbGxvdywgMCk7CkBAIC0yNDgsNiArMjUw LDQ3IEBAIHN0YXRpYyB2b2lkIHRlc3RfY21kX2dldF92ZXJzaW9uKHZvaWQpCiAJcHJfZGVidWco Ik1heCBtZXNzYWdlIHNpemU6ICV1XG4iLCBycGwubWF4X21zZ19zaXplKTsKIH0KIAorc3RhdGlj IHZvaWQgY21kX3ZtX2NoZWNrX2NvbW1hbmQoX191MTYgaWQsIGludCBleHBlY3RlZF9lcnIpCit7 CisJc3RydWN0IHsKKwkJc3RydWN0IGt2bWlfbXNnX2hkciBoZHI7CisJCXN0cnVjdCBrdm1pX3Zt X2NoZWNrX2NvbW1hbmQgY21kOworCX0gcmVxID0ge307CisKKwlyZXEuY21kLmlkID0gaWQ7CisK Kwl0ZXN0X3ZtX2NvbW1hbmQoS1ZNSV9WTV9DSEVDS19DT01NQU5ELCAmcmVxLmhkciwgc2l6ZW9m KHJlcSksIE5VTEwsIDAsCisJCQlleHBlY3RlZF9lcnIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0 X2NtZF92bV9jaGVja19jb21tYW5kKHZvaWQpCit7CisJX191MTYgdmFsaWRfaWQgPSBLVk1JX0dF VF9WRVJTSU9OLCBpbnZhbGlkX2lkID0gMHhmZmZmOworCisJY21kX3ZtX2NoZWNrX2NvbW1hbmQo dmFsaWRfaWQsIDApOworCWNtZF92bV9jaGVja19jb21tYW5kKGludmFsaWRfaWQsIC1LVk1fRU5P RU5UKTsKK30KKworc3RhdGljIHZvaWQgY21kX3ZtX2NoZWNrX2V2ZW50KF9fdTE2IGlkLCBpbnQg ZXhwZWN0ZWRfZXJyKQoreworCXN0cnVjdCB7CisJCXN0cnVjdCBrdm1pX21zZ19oZHIgaGRyOwor CQlzdHJ1Y3Qga3ZtaV92bV9jaGVja19ldmVudCBjbWQ7CisJfSByZXEgPSB7fTsKKworCXJlcS5j bWQuaWQgPSBpZDsKKworCXRlc3Rfdm1fY29tbWFuZChLVk1JX1ZNX0NIRUNLX0VWRU5ULCAmcmVx Lmhkciwgc2l6ZW9mKHJlcSksIE5VTEwsIDAsCisJCQlleHBlY3RlZF9lcnIpOworfQorCitzdGF0 aWMgdm9pZCB0ZXN0X2NtZF92bV9jaGVja19ldmVudCh2b2lkKQoreworCV9fdTE2IGludmFsaWRf aWQgPSAweGZmZmY7CisKKwljbWRfdm1fY2hlY2tfZXZlbnQoaW52YWxpZF9pZCwgLUtWTV9FTk9F TlQpOworfQorCiBzdGF0aWMgdm9pZCB0ZXN0X2ludHJvc3BlY3Rpb24oc3RydWN0IGt2bV92bSAq dm0pCiB7CiAJc2V0dXBfc29ja2V0KCk7CkBAIC0yNTUsNiArMjk4LDggQEAgc3RhdGljIHZvaWQg dGVzdF9pbnRyb3NwZWN0aW9uKHN0cnVjdCBrdm1fdm0gKnZtKQogCiAJdGVzdF9jbWRfaW52YWxp ZCgpOwogCXRlc3RfY21kX2dldF92ZXJzaW9uKCk7CisJdGVzdF9jbWRfdm1fY2hlY2tfY29tbWFu ZCgpOworCXRlc3RfY21kX3ZtX2NoZWNrX2V2ZW50KCk7CiAKIAl1bmhvb2tfaW50cm9zcGVjdGlv bih2bSk7CiB9CmRpZmYgLS1naXQgYS92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWkuYyBiL3Zp cnQva3ZtL2ludHJvc3BlY3Rpb24va3ZtaS5jCmluZGV4IDNjYmM2OGM0OGIxYy4uZTM5ZmU0NzIx MjQzIDEwMDY0NAotLS0gYS92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWkuYworKysgYi92aXJ0 L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWkuYwpAQCAtMTYsNiArMTYsNyBAQAogI2RlZmluZSBLVk1J X01TR19TSVpFX0FMTE9DIChzaXplb2Yoc3RydWN0IGt2bWlfbXNnX2hkcikgKyBLVk1JX01BWF9N U0dfU0laRSkKIAogc3RhdGljIERFQ0xBUkVfQklUTUFQKEt2bWlfYWx3YXlzX2FsbG93ZWRfY29t bWFuZHMsIEtWTUlfTlVNX0NPTU1BTkRTKTsKK3N0YXRpYyBERUNMQVJFX0JJVE1BUChLdm1pX2tu b3duX2V2ZW50cywgS1ZNSV9OVU1fRVZFTlRTKTsKIAogc3RhdGljIHN0cnVjdCBrbWVtX2NhY2hl ICptc2dfY2FjaGU7CiAKQEAgLTU1LDE1ICs1NiwzMyBAQCBib29sIGt2bWlfaXNfY29tbWFuZF9h bGxvd2VkKHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbiAqa3ZtaSwgdTE2IGlkKQogCXJldHVybiBp ZCA8IEtWTUlfTlVNX0NPTU1BTkRTICYmIHRlc3RfYml0KGlkLCBrdm1pLT5jbWRfYWxsb3dfbWFz ayk7CiB9CiAKK2Jvb2wga3ZtaV9pc19ldmVudF9hbGxvd2VkKHN0cnVjdCBrdm1faW50cm9zcGVj dGlvbiAqa3ZtaSwgdTE2IGlkKQoreworCXJldHVybiBpZCA8IEtWTUlfTlVNX0VWRU5UUyAmJiB0 ZXN0X2JpdChpZCwga3ZtaS0+ZXZlbnRfYWxsb3dfbWFzayk7Cit9CisKK2Jvb2wga3ZtaV9pc19r bm93bl9ldmVudCh1MTYgaWQpCit7CisJcmV0dXJuIGlkIDwgS1ZNSV9OVU1fRVZFTlRTICYmIHRl c3RfYml0KGlkLCBLdm1pX2tub3duX2V2ZW50cyk7Cit9CisKIHN0YXRpYyB2b2lkIGt2bWlfaW5p dF9hbHdheXNfYWxsb3dlZF9jb21tYW5kcyh2b2lkKQogewogCWJpdG1hcF96ZXJvKEt2bWlfYWx3 YXlzX2FsbG93ZWRfY29tbWFuZHMsIEtWTUlfTlVNX0NPTU1BTkRTKTsKIAlzZXRfYml0KEtWTUlf R0VUX1ZFUlNJT04sIEt2bWlfYWx3YXlzX2FsbG93ZWRfY29tbWFuZHMpOworCXNldF9iaXQoS1ZN SV9WTV9DSEVDS19DT01NQU5ELCBLdm1pX2Fsd2F5c19hbGxvd2VkX2NvbW1hbmRzKTsKKwlzZXRf Yml0KEtWTUlfVk1fQ0hFQ0tfRVZFTlQsIEt2bWlfYWx3YXlzX2FsbG93ZWRfY29tbWFuZHMpOwor fQorCitzdGF0aWMgdm9pZCBrdm1pX2luaXRfa25vd25fZXZlbnRzKHZvaWQpCit7CisJYml0bWFw X3plcm8oS3ZtaV9rbm93bl9ldmVudHMsIEtWTUlfTlVNX0VWRU5UUyk7CiB9CiAKIGludCBrdm1p X2luaXQodm9pZCkKIHsKIAlrdm1pX2luaXRfYWx3YXlzX2FsbG93ZWRfY29tbWFuZHMoKTsKKwlr dm1pX2luaXRfa25vd25fZXZlbnRzKCk7CiAKIAlyZXR1cm4ga3ZtaV9jYWNoZV9jcmVhdGUoKTsK IH0KZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24va3ZtaV9pbnQuaCBiL3ZpcnQv a3ZtL2ludHJvc3BlY3Rpb24va3ZtaV9pbnQuaAppbmRleCAyMDZhYWY5M2Y4YmEuLjFlMWQxZmFk NDAzNSAxMDA2NDQKLS0tIGEvdmlydC9rdm0vaW50cm9zcGVjdGlvbi9rdm1pX2ludC5oCisrKyBi L3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24va3ZtaV9pbnQuaApAQCAtMjMsNSArMjMsNyBAQCBib29s IGt2bWlfbXNnX3Byb2Nlc3Moc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uICprdm1pKTsKIHZvaWQg Kmt2bWlfbXNnX2FsbG9jKHZvaWQpOwogdm9pZCBrdm1pX21zZ19mcmVlKHZvaWQgKmFkZHIpOwog Ym9vbCBrdm1pX2lzX2NvbW1hbmRfYWxsb3dlZChzdHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb24gKmt2 bWksIHUxNiBpZCk7Citib29sIGt2bWlfaXNfZXZlbnRfYWxsb3dlZChzdHJ1Y3Qga3ZtX2ludHJv c3BlY3Rpb24gKmt2bWksIHUxNiBpZCk7Citib29sIGt2bWlfaXNfa25vd25fZXZlbnQodTE2IGlk KTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWlfbXNn LmMgYi92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWlfbXNnLmMKaW5kZXggY2JmMzliOGI2NGNm Li4xNmRkYTM0ZDFhY2QgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24va3ZtaV9t c2cuYworKysgYi92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWlfbXNnLmMKQEAgLTEyLDYgKzEy LDggQEAgdHlwZWRlZiBpbnQgKCprdm1pX3ZtX21zZ19mY3QpKHN0cnVjdCBrdm1faW50cm9zcGVj dGlvbiAqa3ZtaSwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3Qga3ZtaV9tc2dfaGRyICptc2csCiAJ CQkgICAgICAgY29uc3Qgdm9pZCAqcmVxKTsKIAorc3RhdGljIGJvb2wgaXNfdm1fY29tbWFuZCh1 MTYgaWQpOworCiBib29sIGt2bWlfc29ja19nZXQoc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uICpr dm1pLCBpbnQgZmQpCiB7CiAJc3RydWN0IHNvY2tldCAqc29jazsKQEAgLTExNCwxMSArMTE2LDQ3 IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2dldF92ZXJzaW9uKHN0cnVjdCBrdm1faW50cm9zcGVjdGlv biAqa3ZtaSwKIAlyZXR1cm4ga3ZtaV9tc2dfdm1fcmVwbHkoa3ZtaSwgbXNnLCAwLCAmcnBsLCBz aXplb2YocnBsKSk7CiB9CiAKK3N0YXRpYyBpbnQgaGFuZGxlX3ZtX2NoZWNrX2NvbW1hbmQoc3Ry dWN0IGt2bV9pbnRyb3NwZWN0aW9uICprdm1pLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBrdm1pX21z Z19oZHIgKm1zZywKKwkJCQkgICBjb25zdCB2b2lkICpfcmVxKQoreworCWNvbnN0IHN0cnVjdCBr dm1pX3ZtX2NoZWNrX2NvbW1hbmQgKnJlcSA9IF9yZXE7CisJaW50IGVjID0gMDsKKworCWlmIChy ZXEtPnBhZGRpbmcxIHx8IHJlcS0+cGFkZGluZzIpCisJCWVjID0gLUtWTV9FSU5WQUw7CisJZWxz ZSBpZiAoIWlzX3ZtX2NvbW1hbmQocmVxLT5pZCkpCisJCWVjID0gLUtWTV9FTk9FTlQ7CisJZWxz ZSBpZiAoIWt2bWlfaXNfY29tbWFuZF9hbGxvd2VkKGt2bWksIHJlcS0+aWQpKQorCQllYyA9IC1L Vk1fRVBFUk07CisKKwlyZXR1cm4ga3ZtaV9tc2dfdm1fcmVwbHkoa3ZtaSwgbXNnLCBlYywgTlVM TCwgMCk7Cit9CisKK3N0YXRpYyBpbnQgaGFuZGxlX3ZtX2NoZWNrX2V2ZW50KHN0cnVjdCBrdm1f aW50cm9zcGVjdGlvbiAqa3ZtaSwKKwkJCQkgY29uc3Qgc3RydWN0IGt2bWlfbXNnX2hkciAqbXNn LAorCQkJCSBjb25zdCB2b2lkICpfcmVxKQoreworCWNvbnN0IHN0cnVjdCBrdm1pX3ZtX2NoZWNr X2V2ZW50ICpyZXEgPSBfcmVxOworCWludCBlYyA9IDA7CisKKwlpZiAocmVxLT5wYWRkaW5nMSB8 fCByZXEtPnBhZGRpbmcyKQorCQllYyA9IC1LVk1fRUlOVkFMOworCWVsc2UgaWYgKCFrdm1pX2lz X2tub3duX2V2ZW50KHJlcS0+aWQpKQorCQllYyA9IC1LVk1fRU5PRU5UOworCWVsc2UgaWYgKCFr dm1pX2lzX2V2ZW50X2FsbG93ZWQoa3ZtaSwgcmVxLT5pZCkpCisJCWVjID0gLUtWTV9FUEVSTTsK KworCXJldHVybiBrdm1pX21zZ192bV9yZXBseShrdm1pLCBtc2csIGVjLCBOVUxMLCAwKTsKK30K KwogLyoKICAqIFRoZXNlIGNvbW1hbmRzIGFyZSBleGVjdXRlZCBieSB0aGUgcmVjZWl2aW5nIHRo cmVhZC4KICAqLwogc3RhdGljIGNvbnN0IGt2bWlfdm1fbXNnX2ZjdCBtc2dfdm1bXSA9IHsKLQlb S1ZNSV9HRVRfVkVSU0lPTl0gPSBoYW5kbGVfZ2V0X3ZlcnNpb24sCisJW0tWTUlfR0VUX1ZFUlNJ T05dICAgICAgPSBoYW5kbGVfZ2V0X3ZlcnNpb24sCisJW0tWTUlfVk1fQ0hFQ0tfQ09NTUFORF0g PSBoYW5kbGVfdm1fY2hlY2tfY29tbWFuZCwKKwlbS1ZNSV9WTV9DSEVDS19FVkVOVF0gICA9IGhh bmRsZV92bV9jaGVja19ldmVudCwKIH07CiAKIHN0YXRpYyBrdm1pX3ZtX21zZ19mY3QgZ2V0X3Zt X21zZ19oYW5kbGVyKHUxNiBpZCkKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1YWxpemF0aW9uQGxp c3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhmb3VuZGF0aW9uLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u