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 6A5DBC07EBA for ; Wed, 6 Oct 2021 17:41:03 +0000 (UTC) Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (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 2C72C6052B for ; Wed, 6 Oct 2021 17:41:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 2C72C6052B 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 smtp2.osuosl.org (Postfix) with ESMTP id E466F407D0; Wed, 6 Oct 2021 17:41:02 +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 ij8CxRMlgHNg; Wed, 6 Oct 2021 17:41:01 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp2.osuosl.org (Postfix) with ESMTPS id 9F54940DA9; Wed, 6 Oct 2021 17:41:00 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 21A3BC0048; Wed, 6 Oct 2021 17:40:57 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 24996C0023 for ; Wed, 6 Oct 2021 17:40:51 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 0C35D84073 for ; Wed, 6 Oct 2021 17:40:48 +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 z-R8S_T4eMes for ; Wed, 6 Oct 2021 17:40:47 +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 DB47583F35 for ; Wed, 6 Oct 2021 17:40:46 +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 27D5E307CAF5; 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 0C667305FFA0; 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 33/77] KVM: introspection: add KVMI_GET_VERSION Date: Wed, 6 Oct 2021 20:30:29 +0300 Message-Id: <20211006173113.26445-34-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" V2hlbiBoYW5kbGluZyBpbnRyb3NwZWN0aW9uIGNvbW1hbmRzIGZyb20gdG9vbHMgYnVpbHQgd2l0 aCBvbGRlciBvcgpuZXdlciB2ZXJzaW9ucyBvZiB0aGUgaW50cm9zcGVjdGlvbiBBUEksIHRoZSBy ZWNlaXZpbmcgdGhyZWFkIHNpbGVudGx5CmFjY2VwdHMgc21hbGxlci9sYXJnZXIgbWVzc2FnZXMs IGJ1dCBpdCByZXBsaWVzIHdpdGggbWVzc2FnZXMgcmVsYXRlZCB0bwpjdXJyZW50L2tlcm5lbCB2 ZXJzaW9uLiBTbWFsbGVyIGludHJvc3BlY3Rpb24gZXZlbnQgcmVwbGllcyBhcmUgYWNjZXB0ZWQK dG9vLiBIb3dldmVyLCBsYXJnZXIgbWVzc2FnZXMgZm9yIGV2ZW50IHJlcGxpZXMgYXJlIG5vdCBh bGxvd2VkLgoKRXZlbiBpZiBhbiBpbnRyb3NwZWN0aW9uIHRvb2wgY2FuIHVzZSB0aGUgQVBJIHZl cnNpb24gcmV0dXJuZWQgYnkgdGhlCktWTUlfR0VUX1ZFUlNJT04gY29tbWFuZCB0byBjaGVjayB0 aGUgc3VwcG9ydGVkIGZlYXR1cmVzLCB0aGUgbW9zdAppbXBvcnRhbnQgdXNhZ2Ugb2YgdGhpcyBj b21tYW5kIGlzIHRvIGF2b2lkIHNlbmRpbmcgbmV3ZXIgdmVyc2lvbnMgb2YKZXZlbnQgcmVwbGll cyB0aGF0IHRoZSBrZXJuZWwgc2lkZSBkb2Vzbid0IGtub3cuIE9uIGxhcmdlciBtZXNzYWdlcywK dGhlIGludHJvc3BlY3Rpb24gc29ja2V0IHdpbGwgYmUgY2xvc2VkLgoKQW55IGF0dGVtcHQgZnJv bSB0aGUgZGV2aWNlIG1hbmFnZXIgdG8gZXhwbGljaXRseSBkaXNhbGxvdyB0aGlzIGNvbW1hbmQK dGhyb3VnaCB0aGUgS1ZNX0lOVFJPU1BFQ1RJT05fQ09NTUFORCBpb2N0bCB3aWxsIGdldCAtRVBF Uk0sIHVubGVzcyBhbGwKY29tbWFuZHMgYXJlIGRpc2FsbG93ZWQgKHVzaW5nIGlkPS0xKSwgaW4g d2hpY2ggY2FzZSBLVk1JX0dFVF9WRVJTSU9OCmlzIHNpbGVudGx5IGFsbG93ZWQsIHdpdGhvdXQg ZXJyb3IuCgpTaWduZWQtb2ZmLWJ5OiBBZGFsYmVydCBMYXrEg3IgPGFsYXphckBiaXRkZWZlbmRl ci5jb20+Ci0tLQogRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9rdm1pLnJzdCAgICAgICAgICAgICAg IHwgMzggKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaCAgICAg ICAgICAgICAgICAgICAgIHwgMTAgKysrKysKIC4uLi90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2 XzY0L2t2bWlfdGVzdC5jICB8IDM1ICsrKysrKysrKysrKysrKysrCiB2aXJ0L2t2bS9pbnRyb3Nw ZWN0aW9uL2t2bWkuYyAgICAgICAgICAgICAgICAgfCAyNyArKysrKysrKysrKy0tCiB2aXJ0L2t2 bS9pbnRyb3NwZWN0aW9uL2t2bWlfbXNnLmMgICAgICAgICAgICAgfCAxMyArKysrKysrCiA1IGZp bGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL0RvY3VtZW50YXRpb24vdmlydC9rdm0va3ZtaS5yc3QgYi9Eb2N1bWVudGF0aW9uL3ZpcnQv a3ZtL2t2bWkucnN0CmluZGV4IGFlNmJiZjM3YWVmMy4uZDNkNjcyYTA3ODcyIDEwMDY0NAotLS0g YS9Eb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2t2bWkucnN0CisrKyBiL0RvY3VtZW50YXRpb24vdmly dC9rdm0va3ZtaS5yc3QKQEAgLTIxMiwzICsyMTIsNDEgQEAgZGV2aWNlLXNwZWNpZmljIG1lbW9y eSAoRE1BLCBlbXVsYXRlZCBNTUlPLCByZXNlcnZlZCBieSBhIHBhc3N0aHJvdWdoCiBkZXZpY2Ug ZXRjLikuIEl0IGlzIHVwIHRvIHRoZSB1c2VyIHRvIGRldGVybWluZSwgdXNpbmcgdGhlIGd1ZXN0 IG9wZXJhdGluZwogc3lzdGVtIGRhdGEgc3RydWN0dXJlcywgdGhlIGFyZWFzIHRoYXQgYXJlIHNh ZmUgdG8gYWNjZXNzIChjb2RlLCBzdGFjaywgaGVhcAogZXRjLikuCisKK0NvbW1hbmRzCistLS0t LS0tLQorCitUaGUgZm9sbG93aW5nIEMgc3RydWN0dXJlcyBhcmUgbWVhbnQgdG8gYmUgdXNlZCBk aXJlY3RseSB3aGVuIGNvbW11bmljYXRpbmcKK292ZXIgdGhlIHdpcmUuIFRoZSBwZWVyIHRoYXQg ZGV0ZWN0cyBhbnkgc2l6ZSBtaXNtYXRjaCBzaG91bGQgc2ltcGx5IGNsb3NlCit0aGUgY29ubmVj dGlvbiBhbmQgcmVwb3J0IHRoZSBlcnJvci4KKworMS4gS1ZNSV9HRVRfVkVSU0lPTgorLS0tLS0t LS0tLS0tLS0tLS0tLQorCis6QXJjaGl0ZWN0dXJlczogYWxsCis6VmVyc2lvbnM6ID49IDEKKzpQ YXJhbWV0ZXJzOiBub25lCis6UmV0dXJuczoKKworOjoKKworCXN0cnVjdCBrdm1pX2Vycm9yX2Nv ZGU7CisJc3RydWN0IGt2bWlfZ2V0X3ZlcnNpb25fcmVwbHkgeworCQlfX3UzMiB2ZXJzaW9uOwor CQlfX3UzMiBtYXhfbXNnX3NpemU7CisJfTsKKworUmV0dXJucyB0aGUgaW50cm9zcGVjdGlvbiBB UEkgdmVyc2lvbiBhbmQgdGhlIGxhcmdlc3QgYWNjZXB0ZWQgbWVzc2FnZQorc2l6ZSAodXNlZnVs IGZvciB2YXJpYWJsZSBsZW5ndGggbWVzc2FnZXMpLgorCitUaGlzIGNvbW1hbmQgaXMgYWx3YXlz IGFsbG93ZWQgYW5kIHN1Y2Nlc3NmdWwuCisKK1RoZSBtZXNzYWdlcyB1c2VkIGZvciBpbnRyb3Nw ZWN0aW9uIGNvbW1hbmRzL2V2ZW50cyBtaWdodCBiZSBleHRlbmRlZAoraW4gZnV0dXJlIHZlcnNp b25zIGFuZCB3aGlsZSB0aGUga2VybmVsIHdpbGwgYWNjZXB0IGNvbW1hbmRzIHdpdGgKK3Nob3J0 ZXIgbWVzc2FnZXMgKG9sZGVyIHZlcnNpb25zKSBvciBsYXJnZXIgbWVzc2FnZXMgKG5ld2VyIHZl cnNpb25zLAoraWdub3JpbmcgdGhlIGV4dHJhIGluZm9ybWF0aW9uKSwgaXQgd2lsbCBub3QgYWNj ZXB0IGV2ZW50IHJlcGxpZXMgd2l0aAorbGFyZ2VyIG1lc3NhZ2VzLgorCitUaGUgaW50cm9zcGVj dGlvbiB0b29sIHNob3VsZCB1c2UgdGhpcyBjb21tYW5kIHRvIGlkZW50aWZ5IHRoZSBmZWF0dXJl cworc3VwcG9ydGVkIGJ5IHRoZSBrZXJuZWwgc2lkZSBhbmQgd2hhdCBtZXNzYWdlcyBtdXN0IGJl IHVzZWQgZm9yIGV2ZW50CityZXBsaWVzLgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4 L2t2bWkuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgKaW5kZXggMmIzN2VlZTgyYzUyLi43 N2RkNzI3ZGZlMTggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgKKysrIGIv aW5jbHVkZS91YXBpL2xpbnV4L2t2bWkuaApAQCAtNiw2ICs2LDkgQEAKICAqIEtWTUkgc3RydWN0 dXJlcyBhbmQgZGVmaW5pdGlvbnMKICAqLwogCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+Cisj aW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKwogZW51bSB7CiAJS1ZNSV9WRVJTSU9OID0gMHgwMDAw MDAwMQogfTsKQEAgLTE0LDYgKzE3LDggQEAgZW51bSB7CiAjZGVmaW5lIEtWTUlfVkNQVV9NRVNT QUdFX0lEKGlkKSAoKChpZCkgPDwgMSkgfCAxKQogCiBlbnVtIHsKKwlLVk1JX0dFVF9WRVJTSU9O ID0gS1ZNSV9WTV9NRVNTQUdFX0lEKDEpLAorCiAJS1ZNSV9ORVhUX1ZNX01FU1NBR0UKIH07CiAK QEAgLTQzLDQgKzQ4LDkgQEAgc3RydWN0IGt2bWlfZXJyb3JfY29kZSB7CiAJX191MzIgcGFkZGlu ZzsKIH07CiAKK3N0cnVjdCBrdm1pX2dldF92ZXJzaW9uX3JlcGx5IHsKKwlfX3UzMiB2ZXJzaW9u OworCV9fdTMyIG1heF9tc2dfc2l6ZTsKK307CisKICNlbmRpZiAvKiBfVUFQSV9fTElOVVhfS1ZN SV9IICovCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2XzY0L2t2 bWlfdGVzdC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Nl82NC9rdm1pX3Rlc3Qu YwppbmRleCA2ZDc4MDI0MDNmMTYuLjY5OTkzZTU0MzM0YSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMva3ZtL3g4Nl82NC9rdm1pX3Rlc3QuYworKysgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9rdm0veDg2XzY0L2t2bWlfdGVzdC5jCkBAIC05OSw2ICs5OSw3IEBAIHN0YXRp YyB2b2lkIGhvb2tfaW50cm9zcGVjdGlvbihzdHJ1Y3Qga3ZtX3ZtICp2bSkKIAlkb19ob29rX2lv Y3RsKHZtLCBLdm1fc29ja2V0LCAwKTsKIAlkb19ob29rX2lvY3RsKHZtLCBLdm1fc29ja2V0LCBF RVhJU1QpOwogCisJc2V0X2NvbW1hbmRfcGVybSh2bSwgS1ZNSV9HRVRfVkVSU0lPTiwgZGlzYWxs b3csIEVQRVJNKTsKIAlzZXRfY29tbWFuZF9wZXJtKHZtLCBhbGxfSURzLCBhbGxvd19pbnZhbCwg RUlOVkFMKTsKIAlzZXRfY29tbWFuZF9wZXJtKHZtLCBhbGxfSURzLCBkaXNhbGxvdywgMCk7CiAJ c2V0X2NvbW1hbmRfcGVybSh2bSwgYWxsX0lEcywgYWxsb3csIDApOwpAQCAtMjE0LDEyICsyMTUs NDYgQEAgc3RhdGljIHZvaWQgdGVzdF9jbWRfaW52YWxpZCh2b2lkKQogCQktciwga3ZtX3N0cmVy cm9yKC1yKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3Rfdm1fY29tbWFuZChpbnQgY21kX2lkLCBz dHJ1Y3Qga3ZtaV9tc2dfaGRyICpyZXEsCisJCQkgICAgc2l6ZV90IHJlcV9zaXplLCB2b2lkICpy cGwsIHNpemVfdCBycGxfc2l6ZSwKKwkJCSAgICBpbnQgZXhwZWN0ZWRfZXJyKQoreworCWludCBy OworCisJciA9IGRvX2NvbW1hbmQoY21kX2lkLCByZXEsIHJlcV9zaXplLCBycGwsIHJwbF9zaXpl KTsKKwlURVNUX0FTU0VSVChyID09IGV4cGVjdGVkX2VyciwKKwkJICAgICJDb21tYW5kICVkIGZh aWxlZCwgZXJyb3IgJWQgKCVzKSBpbnN0ZWFkIG9mICVkICglcylcbiIsCisJCSAgICBjbWRfaWQs IC1yLCBrdm1fc3RyZXJyb3IoLXIpLAorCQkgICAgZXhwZWN0ZWRfZXJyLCBrdm1fc3RyZXJyb3Io ZXhwZWN0ZWRfZXJyKSk7Cit9CisKK3N0YXRpYyB2b2lkIGNtZF92bV9nZXRfdmVyc2lvbihzdHJ1 Y3Qga3ZtaV9nZXRfdmVyc2lvbl9yZXBseSAqdmVyKQoreworCXN0cnVjdCBrdm1pX21zZ19oZHIg cmVxOworCisJdGVzdF92bV9jb21tYW5kKEtWTUlfR0VUX1ZFUlNJT04sICZyZXEsIHNpemVvZihy ZXEpLCB2ZXIsIHNpemVvZigqdmVyKSwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfY21kX2dl dF92ZXJzaW9uKHZvaWQpCit7CisJc3RydWN0IGt2bWlfZ2V0X3ZlcnNpb25fcmVwbHkgcnBsOwor CisJY21kX3ZtX2dldF92ZXJzaW9uKCZycGwpOworCVRFU1RfQVNTRVJUKHJwbC52ZXJzaW9uID09 IEtWTUlfVkVSU0lPTiwKKwkJICAgICJVbmV4cGVjdGVkIEtWTUkgdmVyc2lvbiAlZCwgZXhwZWN0 aW5nICVkXG4iLAorCQkgICAgcnBsLnZlcnNpb24sIEtWTUlfVkVSU0lPTik7CisKKwlwcl9kZWJ1 ZygiS1ZNSSB2ZXJzaW9uOiAldVxuIiwgcnBsLnZlcnNpb24pOworCXByX2RlYnVnKCJNYXggbWVz c2FnZSBzaXplOiAldVxuIiwgcnBsLm1heF9tc2dfc2l6ZSk7Cit9CisKIHN0YXRpYyB2b2lkIHRl c3RfaW50cm9zcGVjdGlvbihzdHJ1Y3Qga3ZtX3ZtICp2bSkKIHsKIAlzZXR1cF9zb2NrZXQoKTsK IAlob29rX2ludHJvc3BlY3Rpb24odm0pOwogCiAJdGVzdF9jbWRfaW52YWxpZCgpOworCXRlc3Rf Y21kX2dldF92ZXJzaW9uKCk7CiAKIAl1bmhvb2tfaW50cm9zcGVjdGlvbih2bSk7CiB9CmRpZmYg LS1naXQgYS92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWkuYyBiL3ZpcnQva3ZtL2ludHJvc3Bl Y3Rpb24va3ZtaS5jCmluZGV4IDNjNTFhNWY1OWFjMi4uM2NiYzY4YzQ4YjFjIDEwMDY0NAotLS0g YS92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWkuYworKysgYi92aXJ0L2t2bS9pbnRyb3NwZWN0 aW9uL2t2bWkuYwpAQCAtMTUsNiArMTUsOCBAQAogCiAjZGVmaW5lIEtWTUlfTVNHX1NJWkVfQUxM T0MgKHNpemVvZihzdHJ1Y3Qga3ZtaV9tc2dfaGRyKSArIEtWTUlfTUFYX01TR19TSVpFKQogCitz dGF0aWMgREVDTEFSRV9CSVRNQVAoS3ZtaV9hbHdheXNfYWxsb3dlZF9jb21tYW5kcywgS1ZNSV9O VU1fQ09NTUFORFMpOworCiBzdGF0aWMgc3RydWN0IGttZW1fY2FjaGUgKm1zZ19jYWNoZTsKIAog dm9pZCAqa3ZtaV9tc2dfYWxsb2Modm9pZCkKQEAgLTUzLDggKzU1LDE2IEBAIGJvb2wga3ZtaV9p c19jb21tYW5kX2FsbG93ZWQoc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uICprdm1pLCB1MTYgaWQp CiAJcmV0dXJuIGlkIDwgS1ZNSV9OVU1fQ09NTUFORFMgJiYgdGVzdF9iaXQoaWQsIGt2bWktPmNt ZF9hbGxvd19tYXNrKTsKIH0KIAorc3RhdGljIHZvaWQga3ZtaV9pbml0X2Fsd2F5c19hbGxvd2Vk X2NvbW1hbmRzKHZvaWQpCit7CisJYml0bWFwX3plcm8oS3ZtaV9hbHdheXNfYWxsb3dlZF9jb21t YW5kcywgS1ZNSV9OVU1fQ09NTUFORFMpOworCXNldF9iaXQoS1ZNSV9HRVRfVkVSU0lPTiwgS3Zt aV9hbHdheXNfYWxsb3dlZF9jb21tYW5kcyk7Cit9CisKIGludCBrdm1pX2luaXQodm9pZCkKIHsK Kwlrdm1pX2luaXRfYWx3YXlzX2FsbG93ZWRfY29tbWFuZHMoKTsKKwogCXJldHVybiBrdm1pX2Nh Y2hlX2NyZWF0ZSgpOwogfQogCkBAIC05OCw2ICsxMDgsOSBAQCBrdm1pX2FsbG9jKHN0cnVjdCBr dm0gKmt2bSwgY29uc3Qgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2hvb2sgKmhvb2spCiAJQlVJ TERfQlVHX09OKHNpemVvZihob29rLT51dWlkKSAhPSBzaXplb2Yoa3ZtaS0+dXVpZCkpOwogCW1l bWNweSgma3ZtaS0+dXVpZCwgJmhvb2stPnV1aWQsIHNpemVvZihrdm1pLT51dWlkKSk7CiAKKwli aXRtYXBfY29weShrdm1pLT5jbWRfYWxsb3dfbWFzaywgS3ZtaV9hbHdheXNfYWxsb3dlZF9jb21t YW5kcywKKwkJICAgIEtWTUlfTlVNX0NPTU1BTkRTKTsKKwogCWt2bWktPmt2bSA9IGt2bTsKIAog CXJldHVybiBrdm1pOwpAQCAtMzA1LDggKzMxOCw4IEBAIGludCBrdm1pX2lvY3RsX2V2ZW50KHN0 cnVjdCBrdm0gKmt2bSwKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBrdm1pX2NvbnRy b2xfYWxsb3dlZF9jb21tYW5kcyhzdHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb24gKmt2bWksCi0JCQkJ CSAgczMyIGlkLCBib29sIGFsbG93KQorc3RhdGljIGludCBrdm1pX2NvbnRyb2xfYWxsb3dlZF9j b21tYW5kcyhzdHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb24gKmt2bWksCisJCQkJCSBzMzIgaWQsIGJv b2wgYWxsb3cpCiB7CiAJczMyIGFsbF9jb21tYW5kcyA9IC0xOwogCkBAIC0zMTcsMTAgKzMzMCwx NiBAQCBzdGF0aWMgdm9pZCBrdm1pX2NvbnRyb2xfYWxsb3dlZF9jb21tYW5kcyhzdHJ1Y3Qga3Zt X2ludHJvc3BlY3Rpb24gKmt2bWksCiAJCQlzZXRfYml0KGlkLCBrdm1pLT5jbWRfYWxsb3dfbWFz ayk7CiAJfSBlbHNlIHsKIAkJaWYgKGlkID09IGFsbF9jb21tYW5kcykKLQkJCWJpdG1hcF96ZXJv KGt2bWktPmNtZF9hbGxvd19tYXNrLCBLVk1JX05VTV9DT01NQU5EUyk7CisJCQliaXRtYXBfY29w eShrdm1pLT5jbWRfYWxsb3dfbWFzaywKKwkJCQkgICAgS3ZtaV9hbHdheXNfYWxsb3dlZF9jb21t YW5kcywKKwkJCQkgICAgS1ZNSV9OVU1fQ09NTUFORFMpOworCQllbHNlIGlmICh0ZXN0X2JpdChp ZCwgS3ZtaV9hbHdheXNfYWxsb3dlZF9jb21tYW5kcykpCisJCQlyZXR1cm4gLUVQRVJNOwogCQll bHNlCiAJCQljbGVhcl9iaXQoaWQsIGt2bWktPmNtZF9hbGxvd19tYXNrKTsKIAl9CisKKwlyZXR1 cm4gMDsKIH0KIAogaW50IGt2bWlfaW9jdGxfY29tbWFuZChzdHJ1Y3Qga3ZtICprdm0sCkBAIC0z MzksNyArMzU4LDcgQEAgaW50IGt2bWlfaW9jdGxfY29tbWFuZChzdHJ1Y3Qga3ZtICprdm0sCiAK IAlrdm1pID0gS1ZNSShrdm0pOwogCWlmIChrdm1pKQotCQlrdm1pX2NvbnRyb2xfYWxsb3dlZF9j b21tYW5kcyhrdm1pLCBpZCwgYWxsb3cpOworCQllcnIgPSBrdm1pX2NvbnRyb2xfYWxsb3dlZF9j b21tYW5kcyhrdm1pLCBpZCwgYWxsb3cpOwogCWVsc2UKIAkJZXJyID0gLUVGQVVMVDsKIApkaWZm IC0tZ2l0IGEvdmlydC9rdm0vaW50cm9zcGVjdGlvbi9rdm1pX21zZy5jIGIvdmlydC9rdm0vaW50 cm9zcGVjdGlvbi9rdm1pX21zZy5jCmluZGV4IGI3MmRmMDBhZThhNy4uY2JmMzliOGI2NGNmIDEw MDY0NAotLS0gYS92aXJ0L2t2bS9pbnRyb3NwZWN0aW9uL2t2bWlfbXNnLmMKKysrIGIvdmlydC9r dm0vaW50cm9zcGVjdGlvbi9rdm1pX21zZy5jCkBAIC0xMDIsMTAgKzEwMiwyMyBAQCBzdGF0aWMg aW50IGt2bWlfbXNnX3ZtX3JlcGx5KHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbiAqa3ZtaSwKIAly ZXR1cm4ga3ZtaV9tc2dfcmVwbHkoa3ZtaSwgbXNnLCBlcnIsIHJwbCwgcnBsX3NpemUpOwogfQog CitzdGF0aWMgaW50IGhhbmRsZV9nZXRfdmVyc2lvbihzdHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb24g Kmt2bWksCisJCQkgICAgICBjb25zdCBzdHJ1Y3Qga3ZtaV9tc2dfaGRyICptc2csIGNvbnN0IHZv aWQgKnJlcSkKK3sKKwlzdHJ1Y3Qga3ZtaV9nZXRfdmVyc2lvbl9yZXBseSBycGw7CisKKwltZW1z ZXQoJnJwbCwgMCwgc2l6ZW9mKHJwbCkpOworCXJwbC52ZXJzaW9uID0ga3ZtaV92ZXJzaW9uKCk7 CisJcnBsLm1heF9tc2dfc2l6ZSA9IEtWTUlfTUFYX01TR19TSVpFOworCisJcmV0dXJuIGt2bWlf bXNnX3ZtX3JlcGx5KGt2bWksIG1zZywgMCwgJnJwbCwgc2l6ZW9mKHJwbCkpOworfQorCiAvKgog ICogVGhlc2UgY29tbWFuZHMgYXJlIGV4ZWN1dGVkIGJ5IHRoZSByZWNlaXZpbmcgdGhyZWFkLgog ICovCiBzdGF0aWMgY29uc3Qga3ZtaV92bV9tc2dfZmN0IG1zZ192bVtdID0geworCVtLVk1JX0dF VF9WRVJTSU9OXSA9IGhhbmRsZV9nZXRfdmVyc2lvbiwKIH07CiAKIHN0YXRpYyBrdm1pX3ZtX21z Z19mY3QgZ2V0X3ZtX21zZ19oYW5kbGVyKHUxNiBpZCkKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KVmlydHVhbGl6YXRpb24gbWFpbGluZyBsaXN0ClZpcnR1 YWxpemF0aW9uQGxpc3RzLmxpbnV4LWZvdW5kYXRpb24ub3JnCmh0dHBzOi8vbGlzdHMubGludXhm b3VuZGF0aW9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3ZpcnR1YWxpemF0aW9u