From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [PATCH v9 44/84] KVM: introspection: add KVMI_EVENT_UNHOOK Date: Wed, 22 Jul 2020 00:08:42 +0300 Message-ID: <20200721210922.7646-45-alazar@bitdefender.com> References: <20200721210922.7646-1-alazar@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20200721210922.7646-1-alazar@bitdefender.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" To: kvm@vger.kernel.org Cc: =?UTF-8?q?Adalbert=20Laz=C4=83r?= , Paolo Bonzini , virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org SW4gY2VydGFpbiBzaXR1YXRpb25zICh3aGVuIHRoZSBndWVzdCBoYXMgdG8gYmUgcGF1c2VkLApz dXNwZW5kZWQsIG1pZ3JhdGVkLCBldGMuKSwgdGhlIGRldmljZSBtYW5hZ2VyIHdpbGwgdXNlCnRo ZSBLVk1fSU5UUk9TUEVDVElPTl9QUkVVTkhPT0sgaW9jdGwgaW4gb3JkZXIgdG8gdHJpZ2dlciB0 aGUKS1ZNSV9FVkVOVF9VTkhPT0sgZXZlbnQuIElmIHRoZSBldmVudCBpcyBzZW50IHN1Y2Nlc3Nm dWxseSAodGhlIFZNIGhhcyBhbgphY3RpdmUgaW50cm9zcGVjdGlvbiBjaGFubmVsKSwgdGhlIGRl dmljZSBtYW5hZ2VyIHNob3VsZCBkZWxheSB0aGUgYWN0aW9uCihwYXVzZS9zdXNwZW5kLy4uLikg dG8gZ2l2ZSB0aGUgaW50cm9zcGVjdGlvbiB0b29sIHRoZSBjaGFuY2UgdG8gcmVtb3ZlCml0cyBo b29rcyAoZWcuIGJyZWFrcG9pbnRzKSB3aGlsZSB0aGUgZ3Vlc3QgaXMgc3RpbGwgcnVubmluZy4g T25jZSBhCnRpbWVvdXQgaXMgcmVhY2hlZCBvciB0aGUgaW50cm9zcGVjdGlvbiB0b29sIGhhcyBj bG9zZWQgdGhlIHNvY2tldCwKdGhlIGRldmljZSBtYW5hZ2VyIHNob3VsZCByZXN1bWUgdGhlIGFj dGlvbi4KClNpZ25lZC1vZmYtYnk6IEFkYWxiZXJ0IExhesSDciA8YWxhemFyQGJpdGRlZmVuZGVy LmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL3ZpcnQva3ZtL2FwaS5yc3QgICAgICAgICAgICAgICAg fCAyOCArKysrKysrKwogRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9rdm1pLnJzdCAgICAgICAgICAg ICAgIHwgNzAgKysrKysrKysrKysrKysrKystLQogYXJjaC94ODYvaW5jbHVkZS9hc20va3ZtaV9o b3N0LmggICAgICAgICAgICAgIHwgIDIgKwogYXJjaC94ODYvaW5jbHVkZS91YXBpL2FzbS9rdm1p LmggICAgICAgICAgICAgIHwgMjkgKysrKysrKysKIGluY2x1ZGUvbGludXgva3ZtaV9ob3N0Lmgg ICAgICAgICAgICAgICAgICAgICB8ICAzICsKIGluY2x1ZGUvdWFwaS9saW51eC9rdm0uaCAgICAg ICAgICAgICAgICAgICAgICB8ICAyICsKIGluY2x1ZGUvdWFwaS9saW51eC9rdm1pLmggICAgICAg ICAgICAgICAgICAgICB8IDEzICsrKysKIC4uLi90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2XzY0 L2t2bWlfdGVzdC5jICB8IDY1ICsrKysrKysrKysrKysrKystCiB2aXJ0L2t2bS9pbnRyb3NwZWN0 aW9uL2t2bWkuYyAgICAgICAgICAgICAgICAgfCA0MiArKysrKysrKysrLQogdmlydC9rdm0vaW50 cm9zcGVjdGlvbi9rdm1pX2ludC5oICAgICAgICAgICAgIHwgIDEgKwogdmlydC9rdm0vaW50cm9z cGVjdGlvbi9rdm1pX21zZy5jICAgICAgICAgICAgIHwgMzggKysrKysrKysrKwogdmlydC9rdm0v a3ZtX21haW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysKIDEyIGZpbGVzIGNo YW5nZWQsIDI5MSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGFyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtaS5oCgpkaWZmIC0tZ2l0IGEvRG9jdW1l bnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0IGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0 CmluZGV4IDE3NGYxM2YyMzg5ZC4uZmIzY2NhZmFjOTBkIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0 aW9uL3ZpcnQva3ZtL2FwaS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9hcGkucnN0 CkBAIC00ODE5LDYgKzQ4MTksMzQgQEAgdGhlIGV2ZW50IGlzIGRpc2FsbG93ZWQuCiBVbmxlc3Mg c2V0IHRvIC0xIChtZWFuaW5nIGFsbCBldmVudHMpLCBpZCBtdXN0IGJlIGEgZXZlbnQgSUQKIChl LmcuIEtWTUlfRVZFTlRfVU5IT09LLCBLVk1JX0VWRU5UX0NSLCBldGMuKQogCis0LjEzMCBLVk1f SU5UUk9TUEVDVElPTl9QUkVVTkhPT0sKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCis6Q2FwYWJpbGl0eTogS1ZNX0NBUF9JTlRST1NQRUNUSU9OCis6QXJjaGl0ZWN0dXJlczog eDg2Cis6VHlwZTogdm0gaW9jdGwKKzpQYXJhbWV0ZXJzOiBub25lCis6UmV0dXJuczogMCBvbiBz dWNjZXNzLCBhIG5lZ2F0aXZlIHZhbHVlIG9uIGVycm9yCisKK0Vycm9yczoKKworICA9PT09PT0g ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorICBFRkFVTFQgICAgIHRoZSBWTSBpcyBub3QgaW50cm9zcGVjdGVkIHlldCAodXNl IEtWTV9JTlRST1NQRUNUSU9OX0hPT0spCisgIEVOT0VOVCAgICAgdGhlIHNvY2tldCAocGFzc2Vk IHdpdGggS1ZNX0lOVFJPU1BFQ1RJT05fSE9PSykgaGFkIGFuIGVycm9yCisgIEVOT0VOVCAgICAg dGhlIGludHJvc3BlY3Rpb24gdG9vbCBkaWRuJ3Qgc3Vic2NyaWJlZAorICAgICAgICAgICAgIHRv IHRoaXMgdHlwZSBvZiBpbnRyb3NwZWN0aW9uIGV2ZW50ICh1bmhvb2spCisgID09PT09PSAgICAg PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisKK1RoaXMgaW9jdGwgaXMgdXNlZCB0byBpbmZvcm0gdGhhdCB0aGUgY3VycmVudCBWTSBp cworcGF1c2VkL3N1c3BlbmRlZC9taWdyYXRlZC9ldGMuCisKK0tWTSBzaG91bGQgc2VuZCBhbiAn dW5ob29rJyBpbnRyb3NwZWN0aW9uIGV2ZW50IHRvIHRoZSBpbnRyb3NwZWN0aW9uIHRvb2wuCisK K0lmIHRoaXMgaW9jdGwgaXMgc3VjY2Vzc2Z1bCwgdGhlIHVzZXJzcGFjZSBzaG91bGQgZ2l2ZSB0 aGUKK2ludHJvc3BlY3Rpb24gdG9vbCBhIGNoYW5jZSB0byB1bmhvb2sgdGhlIFZNIGFuZCB0aGVu IGl0IHNob3VsZCB1c2UKK0tWTV9JTlRST1NQRUNUSU9OX1VOSE9PSyB0byBtYWtlIHN1cmUgYWxs IHRoZSBpbnRyb3NwZWN0aW9uIHN0cnVjdHVyZXMKK2FyZSBmcmVlZC4KKwogNS4gVGhlIGt2bV9y dW4gc3RydWN0dXJlCiA9PT09PT09PT09PT09PT09PT09PT09PT0KIApkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi92aXJ0L2t2bS9rdm1pLnJzdCBiL0RvY3VtZW50YXRpb24vdmlydC9rdm0va3Zt aS5yc3QKaW5kZXggYTgxZjIyY2I4YzE4Li40MTc0Yzk2OWNiNDcgMTAwNjQ0Ci0tLSBhL0RvY3Vt ZW50YXRpb24vdmlydC9rdm0va3ZtaS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi92aXJ0L2t2bS9r dm1pLnJzdApAQCAtMTk0LDEwICsxOTQsMTAgQEAgYmVjb21lcyBuZWNlc3NhcnkgdG8gcmVtb3Zl IHRoZW0gYmVmb3JlIHRoZSBndWVzdCBpcyBzdXNwZW5kZWQsIG1vdmVkCiAobWlncmF0ZWQpIG9y IGEgc25hcHNob3Qgd2l0aCBtZW1vcnkgaXMgY3JlYXRlZC4KIAogVGhlIGFjdGlvbnMgYXJlIG5v cm1hbGx5IHBlcmZvcm1lZCBieSB0aGUgZGV2aWNlIG1hbmFnZXIuIEluIHRoZSBjYXNlCi1vZiBR RU1VLCBpdCB3aWxsIHVzZSBhbm90aGVyIGlvY3RsIHRvIG5vdGlmeSB0aGUgaW50cm9zcGVjdGlv biB0b29sIGFuZAotd2FpdCBmb3IgYSBsaW1pdGVkIGFtb3VudCBvZiB0aW1lIChhIGZldyBzZWNv bmRzKSBmb3IgYSBjb25maXJtYXRpb24gdGhhdAotaXMgT0sgdG8gcHJvY2VlZCAoaXQgaXMgZW5v dWdoIGZvciB0aGUgaW50cm9zcGVjdGlvbiB0b29sIHRvIGNsb3NlCi10aGUgY29ubmVjdGlvbiku CitvZiBRRU1VLCBpdCB3aWxsIHVzZSB0aGUgKktWTV9JTlRST1NQRUNUSU9OX1BSRVVOSE9PSyog aW9jdGwgdG8gdHJpZ2dlcgordGhlICpLVk1JX0VWRU5UX1VOSE9PSyogZXZlbnQgYW5kIHdhaXQg Zm9yIGEgbGltaXRlZCBhbW91bnQgb2YgdGltZQorKGEgZmV3IHNlY29uZHMpIGZvciBhIGNvbmZp cm1hdGlvbiB0aGF0IGlzIE9LIHRvIHByb2NlZWQgKGl0IGlzIGVub3VnaAorZm9yIHRoZSBpbnRy b3NwZWN0aW9uIHRvb2wgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24pLgogCiBMaXZlIG1pZ3JhdGlv bnMKIC0tLS0tLS0tLS0tLS0tLQpAQCAtMzQxLDMgKzM0MSw2NSBAQCBUaGlzIGNvbW1hbmQgaXMg YWx3YXlzIGFsbG93ZWQuCiAJfTsKIAogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG9ubGluZSB2Q1BV cy4KKworRXZlbnRzCis9PT09PT0KKworQWxsIGludHJvc3BlY3Rpb24gZXZlbnRzIChWTSBvciB2 Q1BVIHJlbGF0ZWQpIGFyZSBzZW50Cit1c2luZyB0aGUgKktWTUlfRVZFTlQqIG1lc3NhZ2UgaWQu CisKK1RoZSAqS1ZNSV9FVkVOVF9VTkhPT0sqIGV2ZW50IGRvZXNuJ3QgaGF2ZSBhIHJlcGx5IGFu ZCBzaGFyZSB0aGUga3ZtaV9ldmVudAorc3RydWN0dXJlLCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0 aGUgdkNQVSBldmVudHMuCisKK1RoZSBtZXNzYWdlIGRhdGEgYmVnaW5zIHdpdGggYSBjb21tb24g c3RydWN0dXJlLCBoYXZpbmcgdGhlIHNpemUgb2YgdGhlCitzdHJ1Y3R1cmUsIHRoZSB2Q1BVIGlu ZGV4IGFuZCB0aGUgZXZlbnQgaWQ6OgorCisJc3RydWN0IGt2bWlfZXZlbnQgeworCQlfX3UxNiBz aXplOworCQlfX3UxNiB2Y3B1OworCQlfX3U4IGV2ZW50OworCQlfX3U4IHBhZGRpbmdbM107CisJ CXN0cnVjdCBrdm1pX2V2ZW50X2FyY2ggYXJjaDsKKwl9CisKK09uIHg4NiB0aGUgc3RydWN0dXJl IGxvb2tzIGxpa2UgdGhpczo6CisKKwlzdHJ1Y3Qga3ZtaV9ldmVudF9hcmNoIHsKKwkJX191OCBt b2RlOworCQlfX3U4IHBhZGRpbmdbN107CisJCXN0cnVjdCBrdm1fcmVncyByZWdzOworCQlzdHJ1 Y3Qga3ZtX3NyZWdzIHNyZWdzOworCQlzdHJ1Y3QgeworCQkJX191NjQgc3lzZW50ZXJfY3M7CisJ CQlfX3U2NCBzeXNlbnRlcl9lc3A7CisJCQlfX3U2NCBzeXNlbnRlcl9laXA7CisJCQlfX3U2NCBl ZmVyOworCQkJX191NjQgc3RhcjsKKwkJCV9fdTY0IGxzdGFyOworCQkJX191NjQgY3N0YXI7CisJ CQlfX3U2NCBwYXQ7CisJCQlfX3U2NCBzaGFkb3dfZ3M7CisJCX0gbXNyczsKKwl9OworCitJdCBj b250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdkNQVSBzdGF0ZSBhdCB0aGUgdGltZSBvZiB0 aGUgZXZlbnQuCisKK1NwZWNpZmljIGV2ZW50IGRhdGEgY2FuIGZvbGxvdyB0aGVzZSBjb21tb24g c3RydWN0dXJlcy4KKworMS4gS1ZNSV9FVkVOVF9VTkhPT0sKKy0tLS0tLS0tLS0tLS0tLS0tLS0t CisKKzpBcmNoaXRlY3R1cmU6IGFsbAorOlZlcnNpb25zOiA+PSAxCis6QWN0aW9uczogbm9uZQor OlBhcmFtZXRlcnM6CisKKzo6CisKKwlzdHJ1Y3Qga3ZtaV9ldmVudDsKKworOlJldHVybnM6IG5v bmUKKworVGhpcyBldmVudCBpcyBzZW50IHdoZW4gdGhlIGRldmljZSBtYW5hZ2VyIGhhcyB0byBw YXVzZS9zdG9wL21pZ3JhdGUgdGhlCitndWVzdCAoc2VlICoqVW5ob29raW5nKiopLiAgVGhlIGlu dHJvc3BlY3Rpb24gdG9vbCBoYXMgYSBjaGFuY2UgdG8gdW5ob29rCithbmQgY2xvc2UgdGhlIEtW TUkgY2hhbm5lbCAoc2lnbmFsaW5nIHRoYXQgdGhlIG9wZXJhdGlvbiBjYW4gcHJvY2VlZCkuCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1pX2hvc3QuaCBiL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL2t2bWlfaG9zdC5oCmluZGV4IDM4YzM5ODI2MjkxMy4uNzQ3ZjNkNzc5ZTE1IDEw MDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9rdm1pX2hvc3QuaAorKysgYi9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9rdm1pX2hvc3QuaApAQCAtMiw2ICsyLDggQEAKICNpZm5kZWYgX0FTTV9Y ODZfS1ZNSV9IT1NUX0gKICNkZWZpbmUgX0FTTV9YODZfS1ZNSV9IT1NUX0gKIAorI2luY2x1ZGUg PGFzbS9rdm1pLmg+CisKIHN0cnVjdCBrdm1fYXJjaF9pbnRyb3NwZWN0aW9uIHsKIH07CiAKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvdWFwaS9hc20va3ZtaS5oIGIvYXJjaC94ODYvaW5j bHVkZS91YXBpL2FzbS9rdm1pLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi41NTFmOWVkMWVkOWMKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL3Vh cGkvYXNtL2t2bWkuaApAQCAtMCwwICsxLDI5IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMCBXSVRIIExpbnV4LXN5c2NhbGwtbm90ZSAqLworI2lmbmRlZiBfVUFQSV9BU01f WDg2X0tWTUlfSAorI2RlZmluZSBfVUFQSV9BU01fWDg2X0tWTUlfSAorCisvKgorICogS1ZNIGlu dHJvc3BlY3Rpb24gLSB4ODYgc3BlY2lmaWMgc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMKKyAq LworCisjaW5jbHVkZSA8YXNtL2t2bS5oPgorCitzdHJ1Y3Qga3ZtaV9ldmVudF9hcmNoIHsKKwlf X3U4IG1vZGU7CQkvKiAyLCA0IG9yIDggKi8KKwlfX3U4IHBhZGRpbmdbN107CisJc3RydWN0IGt2 bV9yZWdzIHJlZ3M7CisJc3RydWN0IGt2bV9zcmVncyBzcmVnczsKKwlzdHJ1Y3QgeworCQlfX3U2 NCBzeXNlbnRlcl9jczsKKwkJX191NjQgc3lzZW50ZXJfZXNwOworCQlfX3U2NCBzeXNlbnRlcl9l aXA7CisJCV9fdTY0IGVmZXI7CisJCV9fdTY0IHN0YXI7CisJCV9fdTY0IGxzdGFyOworCQlfX3U2 NCBjc3RhcjsKKwkJX191NjQgcGF0OworCQlfX3U2NCBzaGFkb3dfZ3M7CisJfSBtc3JzOworfTsK KworI2VuZGlmIC8qIF9VQVBJX0FTTV9YODZfS1ZNSV9IICovCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2t2bWlfaG9zdC5oIGIvaW5jbHVkZS9saW51eC9rdm1pX2hvc3QuaAppbmRleCA3ZWZk MDcxZTM5OGQuLjhkMjFlMDMxNzg4ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9rdm1pX2hv c3QuaAorKysgYi9pbmNsdWRlL2xpbnV4L2t2bWlfaG9zdC5oCkBAIC0xNyw2ICsxNyw4IEBAIHN0 cnVjdCBrdm1faW50cm9zcGVjdGlvbiB7CiAKIAl1bnNpZ25lZCBsb25nICpjbWRfYWxsb3dfbWFz azsKIAl1bnNpZ25lZCBsb25nICpldmVudF9hbGxvd19tYXNrOworCisJYXRvbWljX3QgZXZfc2Vx OwogfTsKIAogaW50IGt2bWlfdmVyc2lvbih2b2lkKTsKQEAgLTMyLDYgKzM0LDcgQEAgaW50IGt2 bWlfaW9jdGxfY29tbWFuZChzdHJ1Y3Qga3ZtICprdm0sCiAJCSAgICAgICBjb25zdCBzdHJ1Y3Qg a3ZtX2ludHJvc3BlY3Rpb25fZmVhdHVyZSAqZmVhdCk7CiBpbnQga3ZtaV9pb2N0bF9ldmVudChz dHJ1Y3Qga3ZtICprdm0sCiAJCSAgICAgY29uc3Qgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2Zl YXR1cmUgKmZlYXQpOworaW50IGt2bWlfaW9jdGxfcHJldW5ob29rKHN0cnVjdCBrdm0gKmt2bSk7 CiAKICNlbHNlCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1 ZGUvdWFwaS9saW51eC9rdm0uaAppbmRleCAxN2RmMDNjZWI0ODMuLjA2ZDg4MTU3ZGUyMCAxMDA2 NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9saW51 eC9rdm0uaApAQCAtMTYzMCw2ICsxNjMwLDggQEAgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2Zl YXR1cmUgewogI2RlZmluZSBLVk1fSU5UUk9TUEVDVElPTl9DT01NQU5EIF9JT1coS1ZNSU8sIDB4 YzUsIHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbl9mZWF0dXJlKQogI2RlZmluZSBLVk1fSU5UUk9T UEVDVElPTl9FVkVOVCAgIF9JT1coS1ZNSU8sIDB4YzYsIHN0cnVjdCBrdm1faW50cm9zcGVjdGlv bl9mZWF0dXJlKQogCisjZGVmaW5lIEtWTV9JTlRST1NQRUNUSU9OX1BSRVVOSE9PSyAgX0lPKEtW TUlPLCAweGM3KQorCiAjZGVmaW5lIEtWTV9ERVZfQVNTSUdOX0VOQUJMRV9JT01NVQkoMSA8PCAw KQogI2RlZmluZSBLVk1fREVWX0FTU0lHTl9QQ0lfMl8zCQkoMSA8PCAxKQogI2RlZmluZSBLVk1f REVWX0FTU0lHTl9NQVNLX0lOVFgJKDEgPDwgMikKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9s aW51eC9rdm1pLmggYi9pbmNsdWRlL3VhcGkvbGludXgva3ZtaS5oCmluZGV4IGVhYmFmN2NlYTFk Zi4uOWZiZTUyY2FmOTZjIDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvbGludXgva3ZtaS5oCisr KyBiL2luY2x1ZGUvdWFwaS9saW51eC9rdm1pLmgKQEAgLTgsMTIgKzgsMTUgQEAKIAogI2luY2x1 ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisjaW5jbHVkZSA8 YXNtL2t2bWkuaD4KIAogZW51bSB7CiAJS1ZNSV9WRVJTSU9OID0gMHgwMDAwMDAwMQogfTsKIAog ZW51bSB7CisJS1ZNSV9FVkVOVCAgICAgICAgICAgID0gMCwKKwogCUtWTUlfR0VUX1ZFUlNJT04g ICAgICA9IDEsCiAJS1ZNSV9WTV9DSEVDS19DT01NQU5EID0gMiwKIAlLVk1JX1ZNX0NIRUNLX0VW RU5UICAgPSAzLApAQCAtMjMsNiArMjYsOCBAQCBlbnVtIHsKIH07CiAKIGVudW0geworCUtWTUlf RVZFTlRfVU5IT09LID0gMCwKKwogCUtWTUlfTlVNX0VWRU5UUwogfTsKIApAQCAtNjksNCArNzQs MTIgQEAgc3RydWN0IGt2bWlfdm1fZ2V0X2luZm9fcmVwbHkgewogCV9fdTMyIHBhZGRpbmdbM107 CiB9OwogCitzdHJ1Y3Qga3ZtaV9ldmVudCB7CisJX191MTYgc2l6ZTsKKwlfX3UxNiB2Y3B1Owor CV9fdTggZXZlbnQ7CisJX191OCBwYWRkaW5nWzNdOworCXN0cnVjdCBrdm1pX2V2ZW50X2FyY2gg YXJjaDsKK307CisKICNlbmRpZiAvKiBfVUFQSV9fTElOVVhfS1ZNSV9IICovCmRpZmYgLS1naXQg YS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2XzY0L2t2bWlfdGVzdC5jIGIvdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMva3ZtL3g4Nl82NC9rdm1pX3Rlc3QuYwppbmRleCAxZjRhMTY1YWI2 NDAuLjNkNDZkNmU2YjM4YyAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMva3Zt L3g4Nl82NC9rdm1pX3Rlc3QuYworKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9rdm0veDg2 XzY0L2t2bWlfdGVzdC5jCkBAIC03Miw2ICs3MiwxMSBAQCBzdGF0aWMgdm9pZCBzZXRfZXZlbnRf cGVybShzdHJ1Y3Qga3ZtX3ZtICp2bSwgX19zMzIgaWQsIF9fdTMyIGFsbG93LAogCQkgIktWTV9J TlRST1NQRUNUSU9OX0VWRU5UIik7CiB9CiAKK3N0YXRpYyB2b2lkIGRpc2FsbG93X2V2ZW50KHN0 cnVjdCBrdm1fdm0gKnZtLCBfX3MzMiBldmVudF9pZCkKK3sKKwlzZXRfZXZlbnRfcGVybSh2bSwg ZXZlbnRfaWQsIDAsIDApOworfQorCiBzdGF0aWMgdm9pZCBhbGxvd19ldmVudChzdHJ1Y3Qga3Zt X3ZtICp2bSwgX19zMzIgZXZlbnRfaWQpCiB7CiAJc2V0X2V2ZW50X3Blcm0odm0sIGV2ZW50X2lk LCAxLCAwKTsKQEAgLTMwMCwxMyArMzA1LDIwIEBAIHN0YXRpYyB2b2lkIGNtZF92bV9jaGVja19l dmVudChfX3UxNiBpZCwgX191MTYgcGFkZGluZywgaW50IGV4cGVjdGVkX2VycikKIAkJLXIsIGt2 bV9zdHJlcnJvcigtciksIGV4cGVjdGVkX2Vycik7CiB9CiAKLXN0YXRpYyB2b2lkIHRlc3RfY21k X3ZtX2NoZWNrX2V2ZW50KHZvaWQpCitzdGF0aWMgdm9pZCB0ZXN0X2NtZF92bV9jaGVja19ldmVu dChzdHJ1Y3Qga3ZtX3ZtICp2bSkKIHsKLQlfX3UxNiBpbnZhbGlkX2lkID0gMHhmZmZmOworCV9f dTE2IHZhbGlkX2lkID0gS1ZNSV9FVkVOVF9VTkhPT0ssIGludmFsaWRfaWQgPSAweGZmZmY7CiAJ X191MTYgcGFkZGluZyA9IDEsIG5vX3BhZGRpbmcgPSAwOwogCiAJY21kX3ZtX2NoZWNrX2V2ZW50 KGludmFsaWRfaWQsIHBhZGRpbmcsIC1LVk1fRUlOVkFMKTsKIAljbWRfdm1fY2hlY2tfZXZlbnQo aW52YWxpZF9pZCwgbm9fcGFkZGluZywgLUtWTV9FTk9FTlQpOworCisJY21kX3ZtX2NoZWNrX2V2 ZW50KHZhbGlkX2lkLCBub19wYWRkaW5nLCAwKTsKKwljbWRfdm1fY2hlY2tfZXZlbnQodmFsaWRf aWQsIHBhZGRpbmcsIC1LVk1fRUlOVkFMKTsKKworCWRpc2FsbG93X2V2ZW50KHZtLCB2YWxpZF9p ZCk7CisJY21kX3ZtX2NoZWNrX2V2ZW50KHZhbGlkX2lkLCAwLCAtS1ZNX0VQRVJNKTsKKwlhbGxv d19ldmVudCh2bSwgdmFsaWRfaWQpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0X2NtZF92bV9nZXRf aW5mbyh2b2lkKQpAQCAtMzIzLDYgKzMzNSw1MiBAQCBzdGF0aWMgdm9pZCB0ZXN0X2NtZF92bV9n ZXRfaW5mbyh2b2lkKQogCXByX2luZm8oInZjcHUgY291bnQ6ICV1XG4iLCBycGwudmNwdV9jb3Vu dCk7CiB9CiAKK3N0YXRpYyB2b2lkIHRyaWdnZXJfZXZlbnRfdW5ob29rX25vdGlmaWNhdGlvbihz dHJ1Y3Qga3ZtX3ZtICp2bSkKK3sKKwlpbnQgcjsKKworCXIgPSBpb2N0bCh2bS0+ZmQsIEtWTV9J TlRST1NQRUNUSU9OX1BSRVVOSE9PSywgTlVMTCk7CisJVEVTVF9BU1NFUlQociA9PSAwLAorCQki S1ZNX0lOVFJPU1BFQ1RJT05fUFJFVU5IT09LIGZhaWxlZCwgZXJybm8gJWQgKCVzKVxuIiwKKwkJ ZXJybm8sIHN0cmVycm9yKGVycm5vKSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlY2VpdmVfZXZlbnQo c3RydWN0IGt2bWlfbXNnX2hkciAqaGRyLCBzdHJ1Y3Qga3ZtaV9ldmVudCAqZXYsCisJCQkgIHNp emVfdCBldl9zaXplLCBpbnQgZXZlbnRfaWQpCit7CisJc2l6ZV90IHRvX3JlYWQgPSBldl9zaXpl OworCisJcmVjZWl2ZV9kYXRhKGhkciwgc2l6ZW9mKCpoZHIpKTsKKworCVRFU1RfQVNTRVJUKGhk ci0+aWQgPT0gS1ZNSV9FVkVOVCwKKwkJIlVuZXhwZWN0ZWQgbWVzc2FnZXMgaWQgJWQsIGV4cGVj dGVkICVkXG4iLAorCQloZHItPmlkLCBLVk1JX0VWRU5UKTsKKworCWlmICh0b19yZWFkID4gaGRy LT5zaXplKQorCQl0b19yZWFkID0gaGRyLT5zaXplOworCisJcmVjZWl2ZV9kYXRhKGV2LCB0b19y ZWFkKTsKKworCVRFU1RfQVNTRVJUKGV2LT5ldmVudCA9PSBldmVudF9pZCwKKwkJIlVuZXhwZWN0 ZWQgZXZlbnQgJWQsIGV4cGVjdGVkICVkXG4iLAorCQlldi0+ZXZlbnQsIGV2ZW50X2lkKTsKKwor CVRFU1RfQVNTRVJUKGhkci0+c2l6ZSA9PSBldl9zaXplLAorCQkiSW52YWxpZCBldmVudCBzaXpl ICVkLCBleHBlY3RlZCAlemQgYnl0ZXNcbiIsCisJCWhkci0+c2l6ZSwgZXZfc2l6ZSk7Cit9CisK K3N0YXRpYyB2b2lkIHRlc3RfZXZlbnRfdW5ob29rKHN0cnVjdCBrdm1fdm0gKnZtKQoreworCV9f dTE2IGlkID0gS1ZNSV9FVkVOVF9VTkhPT0s7CisJc3RydWN0IGt2bWlfbXNnX2hkciBoZHI7CisJ c3RydWN0IGt2bWlfZXZlbnQgZXY7CisKKwl0cmlnZ2VyX2V2ZW50X3VuaG9va19ub3RpZmljYXRp b24odm0pOworCisJcmVjZWl2ZV9ldmVudCgmaGRyLCAmZXYsIHNpemVvZihldiksIGlkKTsKK30K Kwogc3RhdGljIHZvaWQgdGVzdF9pbnRyb3NwZWN0aW9uKHN0cnVjdCBrdm1fdm0gKnZtKQogewog CXNldHVwX3NvY2tldCgpOwpAQCAtMzMxLDggKzM4OSw5IEBAIHN0YXRpYyB2b2lkIHRlc3RfaW50 cm9zcGVjdGlvbihzdHJ1Y3Qga3ZtX3ZtICp2bSkKIAl0ZXN0X2NtZF9pbnZhbGlkKCk7CiAJdGVz dF9jbWRfZ2V0X3ZlcnNpb24oKTsKIAl0ZXN0X2NtZF92bV9jaGVja19jb21tYW5kKHZtKTsKLQl0 ZXN0X2NtZF92bV9jaGVja19ldmVudCgpOworCXRlc3RfY21kX3ZtX2NoZWNrX2V2ZW50KHZtKTsK IAl0ZXN0X2NtZF92bV9nZXRfaW5mbygpOworCXRlc3RfZXZlbnRfdW5ob29rKHZtKTsKIAogCXVu aG9va19pbnRyb3NwZWN0aW9uKHZtKTsKIH0KZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2ludHJvc3Bl Y3Rpb24va3ZtaS5jIGIvdmlydC9rdm0vaW50cm9zcGVjdGlvbi9rdm1pLmMKaW5kZXggZjVjYTQ5 MTY3ZjcwLi5mMTI4YjE0MDdjODQgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24v a3ZtaS5jCisrKyBiL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24va3ZtaS5jCkBAIC0xMyw2ICsxMyw4 IEBACiAKIHN0YXRpYyBERUNMQVJFX0JJVE1BUChLdm1pX2Fsd2F5c19hbGxvd2VkX2NvbW1hbmRz LCBLVk1JX05VTV9DT01NQU5EUyk7CiBzdGF0aWMgREVDTEFSRV9CSVRNQVAoS3ZtaV9rbm93bl9l dmVudHMsIEtWTUlfTlVNX0VWRU5UUyk7CitzdGF0aWMgREVDTEFSRV9CSVRNQVAoS3ZtaV9rbm93 bl92bV9ldmVudHMsIEtWTUlfTlVNX0VWRU5UUyk7CitzdGF0aWMgREVDTEFSRV9CSVRNQVAoS3Zt aV9rbm93bl92Y3B1X2V2ZW50cywgS1ZNSV9OVU1fRVZFTlRTKTsKIAogc3RhdGljIHN0cnVjdCBr bWVtX2NhY2hlICptc2dfY2FjaGU7CiAKQEAgLTY3LDcgKzY5LDEzIEBAIHN0YXRpYyB2b2lkIHNl dHVwX2Fsd2F5c19hbGxvd2VkX2NvbW1hbmRzKHZvaWQpCiAKIHN0YXRpYyB2b2lkIHNldHVwX2tu b3duX2V2ZW50cyh2b2lkKQogewotCWJpdG1hcF96ZXJvKEt2bWlfa25vd25fZXZlbnRzLCBLVk1J X05VTV9FVkVOVFMpOworCWJpdG1hcF96ZXJvKEt2bWlfa25vd25fdm1fZXZlbnRzLCBLVk1JX05V TV9FVkVOVFMpOworCXNldF9iaXQoS1ZNSV9FVkVOVF9VTkhPT0ssIEt2bWlfa25vd25fdm1fZXZl bnRzKTsKKworCWJpdG1hcF96ZXJvKEt2bWlfa25vd25fdmNwdV9ldmVudHMsIEtWTUlfTlVNX0VW RU5UUyk7CisKKwliaXRtYXBfb3IoS3ZtaV9rbm93bl9ldmVudHMsIEt2bWlfa25vd25fdm1fZXZl bnRzLAorCQkgIEt2bWlfa25vd25fdmNwdV9ldmVudHMsIEtWTUlfTlVNX0VWRU5UUyk7CiB9CiAK IGludCBrdm1pX2luaXQodm9pZCkKQEAgLTEyMSw2ICsxMjksOCBAQCBhbGxvY19rdm1pKHN0cnVj dCBrdm0gKmt2bSwgY29uc3Qgc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uX2hvb2sgKmhvb2spCiAJ Yml0bWFwX2NvcHkoa3ZtaS0+Y21kX2FsbG93X21hc2ssIEt2bWlfYWx3YXlzX2FsbG93ZWRfY29t bWFuZHMsCiAJCSAgICBLVk1JX05VTV9DT01NQU5EUyk7CiAKKwlhdG9taWNfc2V0KCZrdm1pLT5l dl9zZXEsIDApOworCiAJa3ZtaS0+a3ZtID0ga3ZtOwogCiAJcmV0dXJuIGt2bWk7CkBAIC0zNzcs MyArMzg3LDMzIEBAIGludCBrdm1pX2lvY3RsX2NvbW1hbmQoc3RydWN0IGt2bSAqa3ZtLAogCW11 dGV4X3VubG9jaygma3ZtLT5rdm1pX2xvY2spOwogCXJldHVybiBlcnI7CiB9CisKK3N0YXRpYyBi b29sIGt2bWlfdW5ob29rX2V2ZW50KHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbiAqa3ZtaSkKK3sK KwlpbnQgZXJyOworCisJZXJyID0ga3ZtaV9tc2dfc2VuZF91bmhvb2soa3ZtaSk7CisKKwlyZXR1 cm4gIWVycjsKK30KKworaW50IGt2bWlfaW9jdGxfcHJldW5ob29rKHN0cnVjdCBrdm0gKmt2bSkK K3sKKwlzdHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb24gKmt2bWk7CisJaW50IGVyciA9IDA7CisKKwlt dXRleF9sb2NrKCZrdm0tPmt2bWlfbG9jayk7CisKKwlrdm1pID0gS1ZNSShrdm0pOworCWlmICgh a3ZtaSkgeworCQllcnIgPSAtRUZBVUxUOworCQlnb3RvIG91dDsKKwl9CisKKwlpZiAoIWt2bWlf dW5ob29rX2V2ZW50KGt2bWkpKQorCQllcnIgPSAtRU5PRU5UOworCitvdXQ6CisJbXV0ZXhfdW5s b2NrKCZrdm0tPmt2bWlfbG9jayk7CisJcmV0dXJuIGVycjsKK30KZGlmZiAtLWdpdCBhL3ZpcnQv a3ZtL2ludHJvc3BlY3Rpb24va3ZtaV9pbnQuaCBiL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24va3Zt aV9pbnQuaAppbmRleCAwYmNhNGJkMGE0MTUuLmMzODVkYzBlYjcwOCAxMDA2NDQKLS0tIGEvdmly dC9rdm0vaW50cm9zcGVjdGlvbi9rdm1pX2ludC5oCisrKyBiL3ZpcnQva3ZtL2ludHJvc3BlY3Rp b24va3ZtaV9pbnQuaApAQCAtMjUsNiArMjUsNyBAQCBib29sIGt2bWlfc29ja19nZXQoc3RydWN0 IGt2bV9pbnRyb3NwZWN0aW9uICprdm1pLCBpbnQgZmQpOwogdm9pZCBrdm1pX3NvY2tfc2h1dGRv d24oc3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uICprdm1pKTsKIHZvaWQga3ZtaV9zb2NrX3B1dChz dHJ1Y3Qga3ZtX2ludHJvc3BlY3Rpb24gKmt2bWkpOwogYm9vbCBrdm1pX21zZ19wcm9jZXNzKHN0 cnVjdCBrdm1faW50cm9zcGVjdGlvbiAqa3ZtaSk7CitpbnQga3ZtaV9tc2dfc2VuZF91bmhvb2so c3RydWN0IGt2bV9pbnRyb3NwZWN0aW9uICprdm1pKTsKIAogLyoga3ZtaS5jICovCiB2b2lkICpr dm1pX21zZ19hbGxvYyh2b2lkKTsKZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24v a3ZtaV9tc2cuYyBiL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24va3ZtaV9tc2cuYwppbmRleCAzZGYx OGY3OTY1YzAuLjU5NmY1YzAyYmI4YyAxMDA2NDQKLS0tIGEvdmlydC9rdm0vaW50cm9zcGVjdGlv bi9rdm1pX21zZy5jCisrKyBiL3ZpcnQva3ZtL2ludHJvc3BlY3Rpb24va3ZtaV9tc2cuYwpAQCAt MjUyLDMgKzI1Miw0MSBAQCBib29sIGt2bWlfbXNnX3Byb2Nlc3Moc3RydWN0IGt2bV9pbnRyb3Nw ZWN0aW9uICprdm1pKQogb3V0OgogCXJldHVybiBlcnIgPT0gMDsKIH0KKworc3RhdGljIHZvaWQg a3ZtaV9zZXR1cF9ldmVudF9tc2dfaGRyKHN0cnVjdCBrdm1faW50cm9zcGVjdGlvbiAqa3ZtaSwK KwkJCQkgICAgIHN0cnVjdCBrdm1pX21zZ19oZHIgKmhkciwKKwkJCQkgICAgIHNpemVfdCBtc2df c2l6ZSkKK3sKKwltZW1zZXQoaGRyLCAwLCBzaXplb2YoKmhkcikpOworCisJaGRyLT5pZCA9IEtW TUlfRVZFTlQ7CisJaGRyLT5zZXEgPSBhdG9taWNfaW5jX3JldHVybigma3ZtaS0+ZXZfc2VxKTsK KwloZHItPnNpemUgPSBtc2dfc2l6ZSAtIHNpemVvZigqaGRyKTsKK30KKworc3RhdGljIHZvaWQg a3ZtaV9zZXR1cF9ldmVudF9jb21tb24oc3RydWN0IGt2bWlfZXZlbnQgKmV2LCB1MzIgZXZfaWQs CisJCQkJICAgIHUxNiB2Y3B1X2lkeCkKK3sKKwltZW1zZXQoZXYsIDAsIHNpemVvZigqZXYpKTsK KworCWV2LT52Y3B1ID0gdmNwdV9pZHg7CisJZXYtPmV2ZW50ID0gZXZfaWQ7CisJZXYtPnNpemUg PSBzaXplb2YoKmV2KTsKK30KKworaW50IGt2bWlfbXNnX3NlbmRfdW5ob29rKHN0cnVjdCBrdm1f aW50cm9zcGVjdGlvbiAqa3ZtaSkKK3sKKwlzdHJ1Y3Qga3ZtaV9tc2dfaGRyIGhkcjsKKwlzdHJ1 Y3Qga3ZtaV9ldmVudCBjb21tb247CisJc3RydWN0IGt2ZWMgdmVjW10gPSB7CisJCXsuaW92X2Jh c2UgPSAmaGRyLAkuaW92X2xlbiA9IHNpemVvZihoZHIpCSB9LAorCQl7Lmlvdl9iYXNlID0gJmNv bW1vbiwJLmlvdl9sZW4gPSBzaXplb2YoY29tbW9uKX0sCisJfTsKKwlzaXplX3QgbXNnX3NpemUg PSBzaXplb2YoaGRyKSArIHNpemVvZihjb21tb24pOworCXNpemVfdCBuID0gQVJSQVlfU0laRSh2 ZWMpOworCisJa3ZtaV9zZXR1cF9ldmVudF9tc2dfaGRyKGt2bWksICZoZHIsIG1zZ19zaXplKTsK Kwlrdm1pX3NldHVwX2V2ZW50X2NvbW1vbigmY29tbW9uLCBLVk1JX0VWRU5UX1VOSE9PSywgMCk7 CisKKwlyZXR1cm4ga3ZtaV9zb2NrX3dyaXRlKGt2bWksIHZlYywgbiwgbXNnX3NpemUpOworfQpk aWZmIC0tZ2l0IGEvdmlydC9rdm0va3ZtX21haW4uYyBiL3ZpcnQva3ZtL2t2bV9tYWluLmMKaW5k ZXggOWFlYjU3ZTkzMTY1Li44NjkxMGU2YzhkOTMgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2t2bV9t YWluLmMKKysrIGIvdmlydC9rdm0va3ZtX21haW4uYwpAQCAtMzg2MSw2ICszODYxLDEyIEBAIHN0 YXRpYyBsb25nIGt2bV92bV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwKIAkJCQlyID0ga3ZtaV9p b2N0bF9jb21tYW5kKGt2bSwgJmZlYXQpOwogCQl9CiAJCWJyZWFrOworCWNhc2UgS1ZNX0lOVFJP U1BFQ1RJT05fUFJFVU5IT09LOgorCQlpZiAoZW5hYmxlX2ludHJvc3BlY3Rpb24pCisJCQlyID0g a3ZtaV9pb2N0bF9wcmV1bmhvb2soa3ZtKTsKKwkJZWxzZQorCQkJciA9IC1FUEVSTTsKKwkJYnJl YWs7CiAjZW5kaWYgLyogQ09ORklHX0tWTV9JTlRST1NQRUNUSU9OICovCiAJZGVmYXVsdDoKIAkJ ciA9IGt2bV9hcmNoX3ZtX2lvY3RsKGZpbHAsIGlvY3RsLCBhcmcpOwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxp c3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0 cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRpb24=