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 F1970C433EF for ; Wed, 6 Oct 2021 17:55:54 +0000 (UTC) Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (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 C123F61184 for ; Wed, 6 Oct 2021 17:55:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C123F61184 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 smtp4.osuosl.org (Postfix) with ESMTP id 9D5A04090C; Wed, 6 Oct 2021 17:55:54 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PgSI40fEqBQy; Wed, 6 Oct 2021 17:55:53 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp4.osuosl.org (Postfix) with ESMTPS id A9F6540902; Wed, 6 Oct 2021 17:55:52 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id EBD62C0037; Wed, 6 Oct 2021 17:55:50 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 6D966C0011 for ; Wed, 6 Oct 2021 17:55:46 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 2F51840D90 for ; Wed, 6 Oct 2021 17:55:46 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pjSiZfHizCsq for ; Wed, 6 Oct 2021 17:55:44 +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 smtp2.osuosl.org (Postfix) with ESMTPS id 6B567407F6 for ; Wed, 6 Oct 2021 17:55:44 +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 4BF09307CAF3; Wed, 6 Oct 2021 20:31:06 +0300 (EEST) Received: from localhost (unknown [91.199.104.28]) by smtp.bitdefender.com (Postfix) with ESMTPSA id 2FE67305FFA0; Wed, 6 Oct 2021 20:31:06 +0300 (EEST) X-Is-Junk-Enabled: fGZTSsP0qEJE2AIKtlSuFiRRwg9xyHmJ From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= To: kvm@vger.kernel.org Subject: [PATCH v12 31/77] KVM: introspection: add permission access ioctls Date: Wed, 6 Oct 2021 20:30:27 +0300 Message-Id: <20211006173113.26445-32-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" S1ZNX0lOVFJPU1BFQ1RJT05fQ09NTUFORCBhbmQgS1ZNX0lOVFJPU1BFQ1RJT05fRVZFTlRTIGlv Y3RscyBhcmUgdXNlZApieSB0aGUgZGV2aWNlIG1hbmFnZXIgdG8gYWxsb3cvZGlzYWxsb3cgYWNj ZXNzIHRvIHNwZWNpZmljIChvciBhbGwpCmludHJvc3BlY3Rpb24gY29tbWFuZHMgYW5kIGV2ZW50 cy4gVGhlIGludHJvc3BlY3Rpb24gdG9vbCB3aWxsIGdldCB0aGUKS1ZNX0VQRVJNIGVycm9yIGNv ZGUgb24gYW55IGF0dGVtcHQgdG8gdXNlIGEgZGlzYWxsb3dlZCBjb21tYW5kLgoKQnkgZGVmYXVs dCwgYWxsIGV2ZW50cyBhbmQgYWxtb3N0IGFsbCBjb21tYW5kcyBhcmUgZGlzYWxsb3dlZC4KU29t ZSBjb21tYW5kcyBhcmUgYWx3YXlzIGFsbG93ZWQgKHRob3NlIHF1ZXJ5aW5nIHRoZSBpbnRyb3Nw ZWN0aW9uCmNhcGFiaWxpdGllcykuCgpTaWduZWQtb2ZmLWJ5OiBBZGFsYmVydCBMYXrEg3IgPGFs YXphckBiaXRkZWZlbmRlci5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0 ICAgICAgICAgICAgICAgIHwgIDY4ICsrKysrKysrKysKIGluY2x1ZGUvbGludXgva3ZtaV9ob3N0 LmggICAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBpbmNsdWRlL3VhcGkvbGludXgva3ZtLmgg ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKysKIGluY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgg ICAgICAgICAgICAgICAgICAgICB8ICAyMiArKysrCiAuLi4vdGVzdGluZy9zZWxmdGVzdHMva3Zt L3g4Nl82NC9rdm1pX3Rlc3QuYyAgfCAgNDkgKysrKysrKwogdmlydC9rdm0vaW50cm9zcGVjdGlv bi9rdm1pLmMgICAgICAgICAgICAgICAgIHwgMTIyICsrKysrKysrKysrKysrKysrKwogdmlydC9r dm0va3ZtX21haW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsrKwogNyBmaWxl cyBjaGFuZ2VkLCAyOTQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24v dmlydC9rdm0vYXBpLnJzdCBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdAppbmRleCA2 ODIzODA0MjVlZjYuLjg1ZjAyZWRhNDg5NSAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0 L2t2bS9hcGkucnN0CisrKyBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0vYXBpLnJzdApAQCAtNTUy Niw2ICs1NTI2LDc0IEBAIEVycm9yczoKIFRoaXMgaW9jdGwgaXMgdXNlZCB0byBmcmVlIGFsbCBp bnRyb3NwZWN0aW9uIHN0cnVjdHVyZXMKIHJlbGF0ZWQgdG8gdGhpcyBWTS4KIAorNC4xMzYgS1ZN X0lOVFJPU1BFQ1RJT05fQ09NTUFORAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor Cis6Q2FwYWJpbGl0eTogS1ZNX0NBUF9JTlRST1NQRUNUSU9OCis6QXJjaGl0ZWN0dXJlczogeDg2 Cis6VHlwZTogdm0gaW9jdGwKKzpQYXJhbWV0ZXJzOiBzdHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb25f ZmVhdHVyZSAoaW4pCis6UmV0dXJuczogMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIHZhbHVlIG9u IGVycm9yCisKK0Vycm9yczoKKworICA9PT09PT0gICAgID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIEVGQVVMVCAgICAgdGhlIFZN IGlzIG5vdCBpbnRyb3NwZWN0ZWQgeWV0ICh1c2UgS1ZNX0lOVFJPU1BFQ1RJT05fSE9PSykKKyAg RUlOVkFMICAgICB0aGUgY29tbWFuZCBpcyB1bmtub3duCisgIEVQRVJNICAgICAgdGhlIGNvbW1h bmQgY2FuJ3QgYmUgZGlzYWxsb3dlZCAoZS5nLiBLVk1JX0dFVF9WRVJTSU9OKQorICBFUEVSTSAg ICAgIHRoZSBpbnRyb3NwZWN0aW9uIGlzIGRpc2FibGVkIChrdm0uaW50cm9zcGVjdGlvbj0wKQor ICA9PT09PT0gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisKK1RoaXMgaW9jdGwgaXMgdXNlZCB0byBhbGxvdyBvciBkaXNhbGxv dyBpbnRyb3NwZWN0aW9uIGNvbW1hbmRzCitmb3IgdGhlIGN1cnJlbnQgVk0uIEJ5IGRlZmF1bHQs IGFsbW9zdCBhbGwgY29tbWFuZHMgYXJlIGRpc2FsbG93ZWQKK2V4Y2VwdCBmb3IgdGhvc2UgdXNl ZCB0byBxdWVyeSB0aGUgQVBJIGZlYXR1cmVzLgorCis6OgorCisgIHN0cnVjdCBrdm1faW50cm9z cGVjdGlvbl9mZWF0dXJlIHsKKwlfX3UzMiBhbGxvdzsKKwlfX3MzMiBpZDsKKyAgfTsKKworSWYg YWxsb3cgaXMgMSwgdGhlIGNvbW1hbmQgc3BlY2lmaWVkIGJ5IGlkIGlzIGFsbG93ZWQuIElmIGFs bG93IGlzIDAsCit0aGUgY29tbWFuZCBpcyBkaXNhbGxvd2VkLgorCitVbmxlc3Mgc2V0IHRvIC0x IChtZWFuaW5nIGFsbCBjb21tYW5kcyksIGlkIG11c3QgYmUgYSBjb21tYW5kIElECisoZS5nLiBL Vk1JX0dFVF9WRVJTSU9OKQorCis0LjEzNyBLVk1fSU5UUk9TUEVDVElPTl9FVkVOVAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworOkNhcGFiaWxpdHk6IEtWTV9DQVBfSU5UUk9TUEVD VElPTgorOkFyY2hpdGVjdHVyZXM6IHg4NgorOlR5cGU6IHZtIGlvY3RsCis6UGFyYW1ldGVyczog c3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2ZlYXR1cmUgKGluKQorOlJldHVybnM6IDAgb24gc3Vj Y2VzcywgYSBuZWdhdGl2ZSB2YWx1ZSBvbiBlcnJvcgorCitFcnJvcnM6CisKKyAgPT09PT09ICAg ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorICBFRkFVTFQgICAgIHRoZSBWTSBpcyBub3QgaW50cm9zcGVjdGVkIHlldCAodXNlIEtW TV9JTlRST1NQRUNUSU9OX0hPT0spCisgIEVJTlZBTCAgICAgdGhlIGV2ZW50IGlzIHVua25vd24K KyAgRVBFUk0gICAgICB0aGUgaW50cm9zcGVjdGlvbiBpcyBkaXNhYmxlZCAoa3ZtLmludHJvc3Bl Y3Rpb249MCkKKyAgPT09PT09ICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGlzIGlvY3RsIGlzIHVzZWQgdG8gYWxsb3cg b3IgZGlzYWxsb3cgaW50cm9zcGVjdGlvbiBldmVudHMKK2ZvciB0aGUgY3VycmVudCBWTS4gQnkg ZGVmYXVsdCwgYWxsIGV2ZW50cyBhcmUgZGlzYWxsb3dlZC4KKworOjoKKworICBzdHJ1Y3Qga3Zt X2ludHJvc3BlY3Rpb25fZmVhdHVyZSB7CisJX191MzIgYWxsb3c7CisJX19zMzIgaWQ7CisgIH07 CisKK0lmIGFsbG93IGlzIDEsIHRoZSBldmVudCBzcGVjaWZpZWQgYnkgaWQgaXMgYWxsb3dlZC4g SWYgYWxsb3cgaXMgMCwKK3RoZSBldmVudCBpcyBkaXNhbGxvd2VkLgorCitVbmxlc3Mgc2V0IHRv IC0xIChtZWFuaW5nIGFsbCBldmVudHMpLCBpZCBtdXN0IGJlIGEgZXZlbnQgSUQKKyhlLmcuIEtW TUlfVk1fRVZFTlRfVU5IT09LLCBLVk1JX1ZDUFVfRVZFTlRfQ1IsIGV0Yy4pCisKIDUuIFRoZSBr dm1fcnVuIHN0cnVjdHVyZQogPT09PT09PT09PT09PT09PT09PT09PT09CiAKZGlmZiAtLWdpdCBh L2luY2x1ZGUvbGludXgva3ZtaV9ob3N0LmggYi9pbmNsdWRlL2xpbnV4L2t2bWlfaG9zdC5oCmlu ZGV4IDg1NzRiOTY4ODczNi4uYTVlZGUwNzY4NmI5IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L2t2bWlfaG9zdC5oCisrKyBiL2luY2x1ZGUvbGludXgva3ZtaV9ob3N0LmgKQEAgLTE0LDYgKzE0 LDkgQEAgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uIHsKIAogCXN0cnVjdCBzb2NrZXQgKnNvY2s7 CiAJc3RydWN0IHRhc2tfc3RydWN0ICpyZWN2OworCisJdW5zaWduZWQgbG9uZyAqY21kX2FsbG93 X21hc2s7CisJdW5zaWduZWQgbG9uZyAqZXZlbnRfYWxsb3dfbWFzazsKIH07CiAKIGludCBrdm1p X3ZlcnNpb24odm9pZCk7CkBAIC0yNSw2ICsyOCwxMCBAQCB2b2lkIGt2bWlfZGVzdHJveV92bShz dHJ1Y3Qga3ZtICprdm0pOwogaW50IGt2bWlfaW9jdGxfaG9vayhzdHJ1Y3Qga3ZtICprdm0sCiAJ CSAgICBjb25zdCBzdHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb25faG9vayAqaG9vayk7CiBpbnQga3Zt aV9pb2N0bF91bmhvb2soc3RydWN0IGt2bSAqa3ZtKTsKK2ludCBrdm1pX2lvY3RsX2NvbW1hbmQo c3RydWN0IGt2bSAqa3ZtLAorCQkgICAgICAgY29uc3Qgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9u X2ZlYXR1cmUgKmZlYXQpOworaW50IGt2bWlfaW9jdGxfZXZlbnQoc3RydWN0IGt2bSAqa3ZtLAor CQkgICAgIGNvbnN0IHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbl9mZWF0dXJlICpmZWF0KTsKIAog I2Vsc2UKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oIGIvaW5jbHVkZS91 YXBpL2xpbnV4L2t2bS5oCmluZGV4IGUzMzIxM2YxMjNiMC4uYzU2ZjQwYzQ3ODkwIDEwMDY0NAot LS0gYS9pbmNsdWRlL3VhcGkvbGludXgva3ZtLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2 bS5oCkBAIC0xODI2LDYgKzE4MjYsMTQgQEAgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2hvb2sg ewogI2RlZmluZSBLVk1fSU5UUk9TUEVDVElPTl9IT09LICAgIF9JT1coS1ZNSU8sIDB4YzgsIHN0 cnVjdCBrdm1faW50cm9zcGVjdGlvbl9ob29rKQogI2RlZmluZSBLVk1fSU5UUk9TUEVDVElPTl9V TkhPT0sgIF9JTyhLVk1JTywgMHhjOSkKIAorc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2ZlYXR1 cmUgeworCV9fdTMyIGFsbG93OworCV9fczMyIGlkOworfTsKKworI2RlZmluZSBLVk1fSU5UUk9T UEVDVElPTl9DT01NQU5EIF9JT1coS1ZNSU8sIDB4Y2EsIHN0cnVjdCBrdm1faW50cm9zcGVjdGlv bl9mZWF0dXJlKQorI2RlZmluZSBLVk1fSU5UUk9TUEVDVElPTl9FVkVOVCAgIF9JT1coS1ZNSU8s IDB4Y2IsIHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbl9mZWF0dXJlKQorCiAjZGVmaW5lIEtWTV9E RVZfQVNTSUdOX0VOQUJMRV9JT01NVQkoMSA8PCAwKQogI2RlZmluZSBLVk1fREVWX0FTU0lHTl9Q Q0lfMl8zCQkoMSA8PCAxKQogI2RlZmluZSBLVk1fREVWX0FTU0lHTl9NQVNLX0lOVFgJKDEgPDwg MikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm1pLmggYi9pbmNsdWRlL3VhcGkv bGludXgva3ZtaS5oCmluZGV4IDM0ZGRhOTEwMTZkYi4uODVmODYyMmRkZjk1IDEwMDY0NAotLS0g YS9pbmNsdWRlL3VhcGkvbGludXgva3ZtaS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm1p LmgKQEAgLTEwLDQgKzEwLDI2IEBAIGVudW0gewogCUtWTUlfVkVSU0lPTiA9IDB4MDAwMDAwMDEK IH07CiAKKyNkZWZpbmUgS1ZNSV9WTV9NRVNTQUdFX0lEKGlkKSAgICAoKGlkKSA8PCAxKQorI2Rl ZmluZSBLVk1JX1ZDUFVfTUVTU0FHRV9JRChpZCkgKCgoaWQpIDw8IDEpIHwgMSkKKworZW51bSB7 CisJS1ZNSV9ORVhUX1ZNX01FU1NBR0UKK307CisKK2VudW0geworCUtWTUlfTkVYVF9WQ1BVX01F U1NBR0UKK307CisKKyNkZWZpbmUgS1ZNSV9WTV9FVkVOVF9JRChpZCkgICAgKChpZCkgPDwgMSkK KyNkZWZpbmUgS1ZNSV9WQ1BVX0VWRU5UX0lEKGlkKSAoKChpZCkgPDwgMSkgfCAxKQorCitlbnVt IHsKKwlLVk1JX05FWFRfVk1fRVZFTlQKK307CisKK2VudW0geworCUtWTUlfTkVYVF9WQ1BVX0VW RU5UCit9OworCiAjZW5kaWYgLyogX1VBUElfX0xJTlVYX0tWTUlfSCAqLwpkaWZmIC0tZ2l0IGEv dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Nl82NC9rdm1pX3Rlc3QuYyBiL3Rvb2xzL3Rl c3Rpbmcvc2VsZnRlc3RzL2t2bS94ODZfNjQva3ZtaV90ZXN0LmMKaW5kZXggZTkxZjNkYTExZTgz Li4yNWJlZjIxNjQxODYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2t2bS94 ODZfNjQva3ZtaV90ZXN0LmMKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Nl82 NC9rdm1pX3Rlc3QuYwpAQCAtNDQsOCArNDQsNDkgQEAgc3RhdGljIHZvaWQgZG9faG9va19pb2N0 bChzdHJ1Y3Qga3ZtX3ZtICp2bSwgX19zMzIgZmQsIGludCBleHBlY3RlZF9lcnIpCiAJCWVycm5v LCBzdHJlcnJvcihlcnJubyksIGV4cGVjdGVkX2VyciwgZmQpOwogfQogCitzdGF0aWMgdm9pZCBz ZXRfcGVybShzdHJ1Y3Qga3ZtX3ZtICp2bSwgX19zMzIgaWQsIF9fdTMyIGFsbG93LAorCQkgICAg IGludCBleHBlY3RlZF9lcnIsIGludCBpb2N0bF9pZCwKKwkJICAgICBjb25zdCBjaGFyICppb2N0 bF9zdHIpCit7CisJc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2ZlYXR1cmUgZmVhdCA9IHsKKwkJ LmFsbG93ID0gYWxsb3csCisJCS5pZCA9IGlkCisJfTsKKwlpbnQgcjsKKworCXIgPSBpb2N0bCh2 bS0+ZmQsIGlvY3RsX2lkLCAmZmVhdCk7CisJVEVTVF9BU1NFUlQociA9PSAwIHx8IGVycm5vID09 IGV4cGVjdGVkX2VyciwKKwkJIiVzIGZhaWxlZCwgaWQgJWQsIGVycm5vICVkICglcyksIGV4cGVj dGVkICVkXG4iLAorCQlpb2N0bF9zdHIsIGlkLCBlcnJubywgc3RyZXJyb3IoZXJybm8pLCBleHBl Y3RlZF9lcnIpOworfQorCitzdGF0aWMgdm9pZCBzZXRfZXZlbnRfcGVybShzdHJ1Y3Qga3ZtX3Zt ICp2bSwgX19zMzIgaWQsIF9fdTMyIGFsbG93LAorCQkJICAgaW50IGV4cGVjdGVkX2VycikKK3sK KwlzZXRfcGVybSh2bSwgaWQsIGFsbG93LCBleHBlY3RlZF9lcnIsIEtWTV9JTlRST1NQRUNUSU9O X0VWRU5ULAorCQkgIktWTV9JTlRST1NQRUNUSU9OX0VWRU5UIik7Cit9CisKK3N0YXRpYyB2b2lk IGFsbG93X2V2ZW50KHN0cnVjdCBrdm1fdm0gKnZtLCBfX3MzMiBldmVudF9pZCkKK3sKKwlzZXRf ZXZlbnRfcGVybSh2bSwgZXZlbnRfaWQsIDEsIDApOworfQorCitzdGF0aWMgdm9pZCBzZXRfY29t bWFuZF9wZXJtKHN0cnVjdCBrdm1fdm0gKnZtLCBfX3MzMiBpZCwgX191MzIgYWxsb3csCisJCQkg ICAgIGludCBleHBlY3RlZF9lcnIpCit7CisJc2V0X3Blcm0odm0sIGlkLCBhbGxvdywgZXhwZWN0 ZWRfZXJyLCBLVk1fSU5UUk9TUEVDVElPTl9DT01NQU5ELAorCQkgIktWTV9JTlRST1NQRUNUSU9O X0NPTU1BTkQiKTsKK30KKwogc3RhdGljIHZvaWQgaG9va19pbnRyb3NwZWN0aW9uKHN0cnVjdCBr dm1fdm0gKnZtKQogeworCV9fdTMyIGFsbG93ID0gMSwgZGlzYWxsb3cgPSAwLCBhbGxvd19pbnZh bCA9IDI7CisJX19zMzIgYWxsX0lEcyA9IC0xOworCisJc2V0X2NvbW1hbmRfcGVybSh2bSwgYWxs X0lEcywgYWxsb3csIEVGQVVMVCk7CisJc2V0X2V2ZW50X3Blcm0odm0sIGFsbF9JRHMsIGFsbG93 LCBFRkFVTFQpOworCiAJLyogZG9faG9va19pb2N0bCh2bSwgLTEsIEVJTlZBTCk7ICovCiAKIAkv KgpAQCAtNTYsNiArOTcsMTQgQEAgc3RhdGljIHZvaWQgaG9va19pbnRyb3NwZWN0aW9uKHN0cnVj dCBrdm1fdm0gKnZtKQogCiAJZG9faG9va19pb2N0bCh2bSwgS3ZtX3NvY2tldCwgMCk7CiAJZG9f aG9va19pb2N0bCh2bSwgS3ZtX3NvY2tldCwgRUVYSVNUKTsKKworCXNldF9jb21tYW5kX3Blcm0o dm0sIGFsbF9JRHMsIGFsbG93X2ludmFsLCBFSU5WQUwpOworCXNldF9jb21tYW5kX3Blcm0odm0s IGFsbF9JRHMsIGRpc2FsbG93LCAwKTsKKwlzZXRfY29tbWFuZF9wZXJtKHZtLCBhbGxfSURzLCBh bGxvdywgMCk7CisKKwlzZXRfZXZlbnRfcGVybSh2bSwgYWxsX0lEcywgYWxsb3dfaW52YWwsIEVJ TlZBTCk7CisJc2V0X2V2ZW50X3Blcm0odm0sIGFsbF9JRHMsIGRpc2FsbG93LCAwKTsKKwlhbGxv d19ldmVudCh2bSwgYWxsX0lEcyk7CiB9CiAKIHN0YXRpYyB2b2lkIHVuaG9va19pbnRyb3NwZWN0 aW9uKHN0cnVjdCBrdm1fdm0gKnZtKQpkaWZmIC0tZ2l0IGEvdmlydC9rdm0vaW50cm9zcGVjdGlv bi9rdm1pLmMgYi92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWkuYwppbmRleCAxMDc2ZTVhOWJm M2QuLjliNWYxYjY1NDEyNSAxMDA2NDQKLS0tIGEvdmlydC9rdm0vaW50cm9zcGVjdGlvbi9rdm1p LmMKKysrIGIvdmlydC9rdm0vaW50cm9zcGVjdGlvbi9rdm1pLmMKQEAgLTgsNiArOCwxMSBAQAog I2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KICNpbmNsdWRlICJrdm1pX2ludC5oIgogCisjZGVm aW5lIEtWTUlfTlVNX0NPTU1BTkRTIF9fY21wKChpbnQpS1ZNSV9ORVhUX1ZNX01FU1NBR0UsIFwK KwkJCQkoaW50KUtWTUlfTkVYVF9WQ1BVX01FU1NBR0UsID4pCisjZGVmaW5lIEtWTUlfTlVNX0VW RU5UUyAgIF9fY21wKChpbnQpS1ZNSV9ORVhUX1ZNX0VWRU5ULCBcCisJCQkJKGludClLVk1JX05F WFRfVkNQVV9FVkVOVCwgPikKKwogaW50IGt2bWlfaW5pdCh2b2lkKQogewogCXJldHVybiAwOwpA QCAtMjQsNiArMjksOSBAQCB2b2lkIGt2bWlfdW5pbml0KHZvaWQpCiAKIHN0YXRpYyB2b2lkIGt2 bWlfZnJlZShzdHJ1Y3Qga3ZtICprdm0pCiB7CisJYml0bWFwX2ZyZWUoa3ZtLT5rdm1pLT5jbWRf YWxsb3dfbWFzayk7CisJYml0bWFwX2ZyZWUoa3ZtLT5rdm1pLT5ldmVudF9hbGxvd19tYXNrKTsK KwogCWtmcmVlKGt2bS0+a3ZtaSk7CiAJa3ZtLT5rdm1pID0gTlVMTDsKIH0KQEAgLTM3LDYgKzQ1 LDE1IEBAIGt2bWlfYWxsb2Moc3RydWN0IGt2bSAqa3ZtLCBjb25zdCBzdHJ1Y3Qga3ZtX2ludHJv c3BlY3Rpb25faG9vayAqaG9vaykKIAlpZiAoIWt2bWkpCiAJCXJldHVybiBOVUxMOwogCisJa3Zt aS0+Y21kX2FsbG93X21hc2sgPSBiaXRtYXBfemFsbG9jKEtWTUlfTlVNX0NPTU1BTkRTLCBHRlBf S0VSTkVMKTsKKwlrdm1pLT5ldmVudF9hbGxvd19tYXNrID0gYml0bWFwX3phbGxvYyhLVk1JX05V TV9FVkVOVFMsIEdGUF9LRVJORUwpOworCWlmICgha3ZtaS0+Y21kX2FsbG93X21hc2sgfHwgIWt2 bWktPmV2ZW50X2FsbG93X21hc2spIHsKKwkJYml0bWFwX2ZyZWUoa3ZtaS0+Y21kX2FsbG93X21h c2spOworCQliaXRtYXBfZnJlZShrdm1pLT5ldmVudF9hbGxvd19tYXNrKTsKKwkJa2ZyZWUoa3Zt aSk7CisJCXJldHVybiBOVUxMOworCX0KKwogCUJVSUxEX0JVR19PTihzaXplb2YoaG9vay0+dXVp ZCkgIT0gc2l6ZW9mKGt2bWktPnV1aWQpKTsKIAltZW1jcHkoJmt2bWktPnV1aWQsICZob29rLT51 dWlkLCBzaXplb2Yoa3ZtaS0+dXVpZCkpOwogCkBAIC0xODMsMyArMjAwLDEwOCBAQCB2b2lkIGt2 bWlfZGVzdHJveV92bShzdHJ1Y3Qga3ZtICprdm0pCiB7CiAJa3ZtaV91bmhvb2soa3ZtKTsKIH0K Kworc3RhdGljIGludAora3ZtaV9pb2N0bF9nZXRfZmVhdHVyZShjb25zdCBzdHJ1Y3Qga3ZtX2lu dHJvc3BlY3Rpb25fZmVhdHVyZSAqZmVhdCwKKwkJICAgICAgIGJvb2wgKmFsbG93LCBzMzIgKmlk LCB1bnNpZ25lZCBpbnQgbmJpdHMpCit7CisJczMyIGFsbF9iaXRzID0gLTE7CisKKwlpZiAoZmVh dC0+aWQgPCAwICYmIGZlYXQtPmlkICE9IGFsbF9iaXRzKQorCQlyZXR1cm4gLUVJTlZBTDsKKwor CWlmIChmZWF0LT5pZCA+IDAgJiYgZmVhdC0+aWQgPj0gbmJpdHMpCisJCXJldHVybiAtRUlOVkFM OworCisJaWYgKGZlYXQtPmFsbG93ID4gMSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkqYWxsb3cg PSBmZWF0LT5hbGxvdyA9PSAxOworCSppZCA9IGZlYXQtPmlkOworCisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyB2b2lkIGt2bWlfY29udHJvbF9hbGxvd2VkX2V2ZW50cyhzdHJ1Y3Qga3ZtX2ludHJv c3BlY3Rpb24gKmt2bWksCisJCQkJCXMzMiBpZCwgYm9vbCBhbGxvdykKK3sKKwlzMzIgYWxsX2V2 ZW50cyA9IC0xOworCisJaWYgKGFsbG93KSB7CisJCWlmIChpZCA9PSBhbGxfZXZlbnRzKQorCQkJ Yml0bWFwX2ZpbGwoa3ZtaS0+ZXZlbnRfYWxsb3dfbWFzaywgS1ZNSV9OVU1fRVZFTlRTKTsKKwkJ ZWxzZQorCQkJc2V0X2JpdChpZCwga3ZtaS0+ZXZlbnRfYWxsb3dfbWFzayk7CisJfSBlbHNlIHsK KwkJaWYgKGlkID09IGFsbF9ldmVudHMpCisJCQliaXRtYXBfemVybyhrdm1pLT5ldmVudF9hbGxv d19tYXNrLCBLVk1JX05VTV9FVkVOVFMpOworCQllbHNlCisJCQljbGVhcl9iaXQoaWQsIGt2bWkt PmV2ZW50X2FsbG93X21hc2spOworCX0KK30KKworaW50IGt2bWlfaW9jdGxfZXZlbnQoc3RydWN0 IGt2bSAqa3ZtLAorCQkgICAgIGNvbnN0IHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbl9mZWF0dXJl ICpmZWF0KQoreworCXN0cnVjdCBrdm1faW50cm9zcGVjdGlvbiAqa3ZtaTsKKwlib29sIGFsbG93 OworCWludCBlcnI7CisJczMyIGlkOworCisJZXJyID0ga3ZtaV9pb2N0bF9nZXRfZmVhdHVyZShm ZWF0LCAmYWxsb3csICZpZCwgS1ZNSV9OVU1fRVZFTlRTKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4g ZXJyOworCisJbXV0ZXhfbG9jaygma3ZtLT5rdm1pX2xvY2spOworCisJa3ZtaSA9IEtWTUkoa3Zt KTsKKwlpZiAoa3ZtaSkKKwkJa3ZtaV9jb250cm9sX2FsbG93ZWRfZXZlbnRzKGt2bWksIGlkLCBh bGxvdyk7CisJZWxzZQorCQllcnIgPSAtRUZBVUxUOworCisJbXV0ZXhfdW5sb2NrKCZrdm0tPmt2 bWlfbG9jayk7CisJcmV0dXJuIGVycjsKK30KKworc3RhdGljIHZvaWQga3ZtaV9jb250cm9sX2Fs bG93ZWRfY29tbWFuZHMoc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uICprdm1pLAorCQkJCQkgIHMz MiBpZCwgYm9vbCBhbGxvdykKK3sKKwlzMzIgYWxsX2NvbW1hbmRzID0gLTE7CisKKwlpZiAoYWxs b3cpIHsKKwkJaWYgKGlkID09IGFsbF9jb21tYW5kcykKKwkJCWJpdG1hcF9maWxsKGt2bWktPmNt ZF9hbGxvd19tYXNrLCBLVk1JX05VTV9DT01NQU5EUyk7CisJCWVsc2UKKwkJCXNldF9iaXQoaWQs IGt2bWktPmNtZF9hbGxvd19tYXNrKTsKKwl9IGVsc2UgeworCQlpZiAoaWQgPT0gYWxsX2NvbW1h bmRzKQorCQkJYml0bWFwX3plcm8oa3ZtaS0+Y21kX2FsbG93X21hc2ssIEtWTUlfTlVNX0NPTU1B TkRTKTsKKwkJZWxzZQorCQkJY2xlYXJfYml0KGlkLCBrdm1pLT5jbWRfYWxsb3dfbWFzayk7CisJ fQorfQorCitpbnQga3ZtaV9pb2N0bF9jb21tYW5kKHN0cnVjdCBrdm0gKmt2bSwKKwkJICAgICAg IGNvbnN0IHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbl9mZWF0dXJlICpmZWF0KQoreworCXN0cnVj dCBrdm1faW50cm9zcGVjdGlvbiAqa3ZtaTsKKwlib29sIGFsbG93OworCWludCBlcnI7CisJczMy IGlkOworCisJZXJyID0ga3ZtaV9pb2N0bF9nZXRfZmVhdHVyZShmZWF0LCAmYWxsb3csICZpZCwg S1ZNSV9OVU1fQ09NTUFORFMpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwltdXRleF9s b2NrKCZrdm0tPmt2bWlfbG9jayk7CisKKwlrdm1pID0gS1ZNSShrdm0pOworCWlmIChrdm1pKQor CQlrdm1pX2NvbnRyb2xfYWxsb3dlZF9jb21tYW5kcyhrdm1pLCBpZCwgYWxsb3cpOworCWVsc2UK KwkJZXJyID0gLUVGQVVMVDsKKworCW11dGV4X3VubG9jaygma3ZtLT5rdm1pX2xvY2spOworCXJl dHVybiBlcnI7Cit9CmRpZmYgLS1naXQgYS92aXJ0L2t2bS9rdm1fbWFpbi5jIGIvdmlydC9rdm0v a3ZtX21haW4uYwppbmRleCAzMTJjY2VkZDMzNDAuLjc3MTAyYmU0MjQ3NSAxMDA2NDQKLS0tIGEv dmlydC9rdm0va3ZtX21haW4uYworKysgYi92aXJ0L2t2bS9rdm1fbWFpbi5jCkBAIC00NTYyLDYg KzQ1NjIsMjQgQEAgc3RhdGljIGxvbmcga3ZtX3ZtX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLAog CQlpZiAoZW5hYmxlX2ludHJvc3BlY3Rpb24pCiAJCQlyID0ga3ZtaV9pb2N0bF91bmhvb2soa3Zt KTsKIAkJYnJlYWs7CisJY2FzZSBLVk1fSU5UUk9TUEVDVElPTl9DT01NQU5EOgorCWNhc2UgS1ZN X0lOVFJPU1BFQ1RJT05fRVZFTlQ6IHsKKwkJc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2ZlYXR1 cmUgZmVhdDsKKworCQlyID0gLUVQRVJNOworCQlpZiAoIWVuYWJsZV9pbnRyb3NwZWN0aW9uKQor CQkJZ290byBvdXQ7CisKKwkJciA9IC1FRkFVTFQ7CisJCWlmIChjb3B5X2Zyb21fdXNlcigmZmVh dCwgYXJncCwgc2l6ZW9mKGZlYXQpKSkKKwkJCWdvdG8gb3V0OworCisJCWlmIChpb2N0bCA9PSBL Vk1fSU5UUk9TUEVDVElPTl9FVkVOVCkKKwkJCXIgPSBrdm1pX2lvY3RsX2V2ZW50KGt2bSwgJmZl YXQpOworCQllbHNlCisJCQlyID0ga3ZtaV9pb2N0bF9jb21tYW5kKGt2bSwgJmZlYXQpOworCQli cmVhazsKKwl9CiAjZW5kaWYgLyogQ09ORklHX0tWTV9JTlRST1NQRUNUSU9OICovCiAJZGVmYXVs dDoKIAkJciA9IGt2bV9hcmNoX3ZtX2lvY3RsKGZpbHAsIGlvY3RsLCBhcmcpOwpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWls aW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6 Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRp b24=