From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v4 05/12] KVM: arm: introduce kvm_arm_init/setup/clear_debug Date: Fri, 15 May 2015 15:27:08 +0100 Message-ID: <1431700035-23479-6-git-send-email-alex.bennee@linaro.org> References: <1431700035-23479-1-git-send-email-alex.bennee@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Lorenzo Pieralisi , Russell King , Richard Weinberger , Ard Biesheuvel , Gleb Natapov , jan.kiszka@siemens.com, Will Deacon , open list , dahi@linux.vnet.ibm.com, Andre Przywara , Catalin Marinas , r65777@freescale.com, bp@suse.de To: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.cs.columbia.edu, christoffer.dall@linaro.org, marc.zyngier@arm.com, peter.maydell@linaro.org, agraf@suse.de, drjones@redhat.com, pbonzini@redhat.com, zhichao.huang@linaro.org Return-path: In-Reply-To: <1431700035-23479-1-git-send-email-alex.bennee@linaro.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kvmarm-bounces@lists.cs.columbia.edu Sender: kvmarm-bounces@lists.cs.columbia.edu List-Id: kvm.vger.kernel.org VGhpcyBpcyBhIHByZWN1cnNvciBmb3IgbGF0ZXIgcGF0Y2hlcyB3aGljaCB3aWxsIG5lZWQgdG8g ZG8gbW9yZSB0bwpzZXR1cCBkZWJ1ZyBzdGF0ZSBiZWZvcmUgZW50ZXJpbmcgdGhlIGh5cC5TIHN3 aXRjaCBjb2RlLiBUaGUgZXhpc3RpbmcKZnVuY3Rpb25hbGl0eSBmb3Igc2V0dGluZyBtZGNyX2Vs MiBoYXMgYmVlbiBtb3ZlZCBvdXQgb2YgaHlwLlMgYW5kIG5vdwp1c2VzIHRoZSB2YWx1ZSBrZXB0 IGluIHZjcHUtPmFyY2gubWRjcl9lbDIuCgpBcyB0aGUgYXNzZW1ibGVyIHVzZWQgdG8gcHJldmlv dXNseSBtYXNrIGFuZCBwcmVzZXJ2ZSBNRENSX0VMMi5IUE1OIEkndmUKaGFkIHRvIGFkZCBhIG1l Y2hhbmlzbSB0byBzYXZlIHRoZSB2YWx1ZSBvZiBtZGNyX2VsMiBhcyBhIHBlci1jcHUKdmFyaWFi bGUgZHVyaW5nIHRoZSBpbml0aWFsaXNhdGlvbiBjb2RlLiBUaGUga2VybmVsIG5ldmVyIHNldHMg dGhpcwpudW1iZXIgc28gd2UgYXJlIGFzc3VtaW5nIHRoZSBib290Y29kZSBoYXMgc2V0IHVwIHRo ZSBjb3JyZWN0IHZhbHVlCmhlcmUuCgpUaGlzIGFsc28gbW92ZXMgdGhlIGNvbmRpdGlvbmFsIHNl dHRpbmcgb2YgdGhlIFREQSBiaXQgZnJvbSB0aGUgaHlwIGNvZGUKaW50byB0aGUgQyBjb2RlIHdo aWNoIGlzIGN1cnJlbnRseSB1c2VkIGZvciB0aGUgbGF6eSBkZWJ1ZyByZWdpc3Rlcgpjb250ZXh0 IHN3aXRjaCBjb2RlLgoKU2lnbmVkLW9mZi1ieTogQWxleCBCZW5uw6llIDxhbGV4LmJlbm5lZUBs aW5hcm8ub3JnPgoKLS0tCnYzCiAgLSByZW5hbWUgZm5zIGZyb20gYXJjaC0+YXJtCiAgLSBwcmVz ZXJ2ZSBNRENSX0VMMi5IUE1OIHNldHRpbmcKICAtIHJlLXdvcmQgc29tZSBvZiB0aGUgY29tbWVu dHMKICAtIGZpeCBzb21lIG1pbm9yIGdyYW1tYXIgbml0cwogIC0gbWVyZ2Ugc2V0dGluZyBvZiBt ZGNyX2VsMgogIC0gaW50cm9kdWNlIHRyYXBfZGVidWcgZmxhZwogIC0gbW92ZSBzZXR1cC9jbGVh ciB3aXRoaW4gdGhlIGlycSBsb2NrIHNlY3Rpb24KdjQKICAtIGZpeCBURE9TQSBkZXNjCiAgLSBy bSB1bi1uZWVkZWQgZWxzZSBsZWcKICAtIHMvYXJjaC9hcm0vCgogY3JlYXRlIG1vZGUgMTAwNjQ0 IGFyY2gvYXJtNjQva3ZtL2RlYnVnLmMKCmRpZmYgLS1naXQgYS9hcmNoL2FybS9pbmNsdWRlL2Fz bS9rdm1faG9zdC5oIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20va3ZtX2hvc3QuaAppbmRleCBkNzE2 MDdjLi43NDZjMGM2OSAxMDA2NDQKLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20va3ZtX2hvc3Qu aAorKysgYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCkBAIC0yMzYsNCArMjM2LDgg QEAgc3RhdGljIGlubGluZSB2b2lkIGt2bV9hcmNoX3N5bmNfZXZlbnRzKHN0cnVjdCBrdm0gKmt2 bSkge30KIHN0YXRpYyBpbmxpbmUgdm9pZCBrdm1fYXJjaF92Y3B1X3VuaW5pdChzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpIHt9CiBzdGF0aWMgaW5saW5lIHZvaWQga3ZtX2FyY2hfc2NoZWRfaW4oc3Ry dWN0IGt2bV92Y3B1ICp2Y3B1LCBpbnQgY3B1KSB7fQogCitzdGF0aWMgaW5saW5lIHZvaWQga3Zt X2FybV9pbml0X2RlYnVnKHZvaWQpIHt9CitzdGF0aWMgaW5saW5lIHZvaWQga3ZtX2FybV9zZXR1 cF9kZWJ1ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpIHt9CitzdGF0aWMgaW5saW5lIHZvaWQga3Zt X2FybV9jbGVhcl9kZWJ1ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpIHt9CisKICNlbmRpZiAvKiBf X0FSTV9LVk1fSE9TVF9IX18gKi8KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2t2bS9hcm0uYyBiL2Fy Y2gvYXJtL2t2bS9hcm0uYwppbmRleCA1MmExZDRkMzguLjRhMjc0ZTEgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL2t2bS9hcm0uYworKysgYi9hcmNoL2FybS9rdm0vYXJtLmMKQEAgLTU3MCw2ICs1NzAs OCBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9ydW4oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBz dHJ1Y3Qga3ZtX3J1biAqcnVuKQogCQkJY29udGludWU7CiAJCX0KIAorCQlrdm1fYXJtX3NldHVw X2RlYnVnKHZjcHUpOworCiAJCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogCQkgKiBFbnRlciB0aGUgZ3Vlc3QKIAkJICovCkBA IC01ODIsNyArNTg0LDEwIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3J1bihzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4pCiAJCXZjcHUtPm1vZGUgPSBPVVRTSURF X0dVRVNUX01PREU7CiAJCWt2bV9ndWVzdF9leGl0KCk7CiAJCXRyYWNlX2t2bV9leGl0KGt2bV92 Y3B1X3RyYXBfZ2V0X2NsYXNzKHZjcHUpLCAqdmNwdV9wYyh2Y3B1KSk7Ci0JCS8qCisKKwkJa3Zt X2FybV9jbGVhcl9kZWJ1Zyh2Y3B1KTsKKworICAgICAgICAgICAgICAgIC8qCiAJCSAqIFdlIG1h eSBoYXZlIHRha2VuIGEgaG9zdCBpbnRlcnJ1cHQgaW4gSFlQIG1vZGUgKGllCiAJCSAqIHdoaWxl IGV4ZWN1dGluZyB0aGUgZ3Vlc3QpLiBUaGlzIGludGVycnVwdCBpcyBzdGlsbAogCQkgKiBwZW5k aW5nLCBhcyB3ZSBoYXZlbid0IHNlcnZpY2VkIGl0IHlldCEKQEAgLTkzMCw2ICs5MzUsOCBAQCBz dGF0aWMgdm9pZCBjcHVfaW5pdF9oeXBfbW9kZSh2b2lkICpkdW1teSkKIAl2ZWN0b3JfcHRyID0g KHVuc2lnbmVkIGxvbmcpX19rdm1faHlwX3ZlY3RvcjsKIAogCV9fY3B1X2luaXRfaHlwX21vZGUo Ym9vdF9wZ2RfcHRyLCBwZ2RfcHRyLCBoeXBfc3RhY2tfcHRyLCB2ZWN0b3JfcHRyKTsKKworCWt2 bV9hcm1faW5pdF9kZWJ1ZygpOwogfQogCiBzdGF0aWMgaW50IGh5cF9pbml0X2NwdV9ub3RpZnko c3RydWN0IG5vdGlmaWVyX2Jsb2NrICpzZWxmLApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNs dWRlL2FzbS9rdm1fYXNtLmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9hc20uaAppbmRl eCA0ZjczMTBmLi5kNmI1MDdlIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2 bV9hc20uaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9hc20uaApAQCAtMTM3LDYg KzEzNyw4IEBAIGV4dGVybiBjaGFyIF9fcmVzdG9yZV92Z2ljX3YyX3N0YXRlW107CiBleHRlcm4g Y2hhciBfX3NhdmVfdmdpY192M19zdGF0ZVtdOwogZXh0ZXJuIGNoYXIgX19yZXN0b3JlX3ZnaWNf djNfc3RhdGVbXTsKIAorZXh0ZXJuIHUzMiBfX2t2bV9nZXRfbWRjcl9lbDIodm9pZCk7CisKICNl bmRpZgogCiAjZW5kaWYgLyogX19BUk1fS1ZNX0FTTV9IX18gKi8KZGlmZiAtLWdpdCBhL2FyY2gv YXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3Zt X2hvc3QuaAppbmRleCBmMGY1OGM5Li43Y2I5OWI1IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2lu Y2x1ZGUvYXNtL2t2bV9ob3N0LmgKKysrIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1faG9z dC5oCkBAIC0xMDMsNiArMTAzLDcgQEAgc3RydWN0IGt2bV92Y3B1X2FyY2ggewogCiAJLyogSFlQ IGNvbmZpZ3VyYXRpb24gKi8KIAl1NjQgaGNyX2VsMjsKKwl1MzIgbWRjcl9lbDI7CiAKIAkvKiBF eGNlcHRpb24gSW5mb3JtYXRpb24gKi8KIAlzdHJ1Y3Qga3ZtX3ZjcHVfZmF1bHRfaW5mbyBmYXVs dDsKQEAgLTI1MCw0ICsyNTEsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQga3ZtX2FyY2hfc3luY19l dmVudHMoc3RydWN0IGt2bSAqa3ZtKSB7fQogc3RhdGljIGlubGluZSB2b2lkIGt2bV9hcmNoX3Zj cHVfdW5pbml0KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkge30KIHN0YXRpYyBpbmxpbmUgdm9pZCBr dm1fYXJjaF9zY2hlZF9pbihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGludCBjcHUpIHt9CiAKK3Zv aWQga3ZtX2FybV9pbml0X2RlYnVnKHZvaWQpOwordm9pZCBrdm1fYXJtX3NldHVwX2RlYnVnKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSk7Cit2b2lkIGt2bV9hcm1fY2xlYXJfZGVidWcoc3RydWN0IGt2 bV92Y3B1ICp2Y3B1KTsKKwogI2VuZGlmIC8qIF9fQVJNNjRfS1ZNX0hPU1RfSF9fICovCmRpZmYg LS1naXQgYS9hcmNoL2FybTY0L2tlcm5lbC9hc20tb2Zmc2V0cy5jIGIvYXJjaC9hcm02NC9rZXJu ZWwvYXNtLW9mZnNldHMuYwppbmRleCBkYTY3NWNjLi5kZmIyNWEyIDEwMDY0NAotLS0gYS9hcmNo L2FybTY0L2tlcm5lbC9hc20tb2Zmc2V0cy5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL2FzbS1v ZmZzZXRzLmMKQEAgLTExNyw2ICsxMTcsNyBAQCBpbnQgbWFpbih2b2lkKQogICBERUZJTkUoVkNQ VV9IUEZBUl9FTDIsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5mYXVsdC5ocGZhcl9l bDIpKTsKICAgREVGSU5FKFZDUFVfREVCVUdfRkxBR1MsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNw dSwgYXJjaC5kZWJ1Z19mbGFncykpOwogICBERUZJTkUoVkNQVV9IQ1JfRUwyLAkJb2Zmc2V0b2Yo c3RydWN0IGt2bV92Y3B1LCBhcmNoLmhjcl9lbDIpKTsKKyAgREVGSU5FKFZDUFVfTURDUl9FTDIs CW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5tZGNyX2VsMikpOwogICBERUZJTkUoVkNQ VV9JUlFfTElORVMsCW9mZnNldG9mKHN0cnVjdCBrdm1fdmNwdSwgYXJjaC5pcnFfbGluZXMpKTsK ICAgREVGSU5FKFZDUFVfSE9TVF9DT05URVhULAlvZmZzZXRvZihzdHJ1Y3Qga3ZtX3ZjcHUsIGFy Y2guaG9zdF9jcHVfY29udGV4dCkpOwogICBERUZJTkUoVkNQVV9USU1FUl9DTlRWX0NUTCwJb2Zm c2V0b2Yoc3RydWN0IGt2bV92Y3B1LCBhcmNoLnRpbWVyX2NwdS5jbnR2X2N0bCkpOwpkaWZmIC0t Z2l0IGEvYXJjaC9hcm02NC9rdm0vTWFrZWZpbGUgYi9hcmNoL2FybTY0L2t2bS9NYWtlZmlsZQpp bmRleCBkNTkwNGY4Li45MGUzZjM5IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2bS9NYWtlZmls ZQorKysgYi9hcmNoL2FybTY0L2t2bS9NYWtlZmlsZQpAQCAtMTcsNyArMTcsNyBAQCBrdm0tJChD T05GSUdfS1ZNX0FSTV9IT1NUKSArPSAkKEFSTSkvcHNjaS5vICQoQVJNKS9wZXJmLm8KIAoga3Zt LSQoQ09ORklHX0tWTV9BUk1fSE9TVCkgKz0gZW11bGF0ZS5vIGluamVjdF9mYXVsdC5vIHJlZ21h cC5vCiBrdm0tJChDT05GSUdfS1ZNX0FSTV9IT1NUKSArPSBoeXAubyBoeXAtaW5pdC5vIGhhbmRs ZV9leGl0Lm8KLWt2bS0kKENPTkZJR19LVk1fQVJNX0hPU1QpICs9IGd1ZXN0Lm8gcmVzZXQubyBz eXNfcmVncy5vIHN5c19yZWdzX2dlbmVyaWNfdjgubwora3ZtLSQoQ09ORklHX0tWTV9BUk1fSE9T VCkgKz0gZ3Vlc3QubyBkZWJ1Zy5vIHJlc2V0Lm8gc3lzX3JlZ3MubyBzeXNfcmVnc19nZW5lcmlj X3Y4Lm8KIAoga3ZtLSQoQ09ORklHX0tWTV9BUk1fSE9TVCkgKz0gJChLVk0pL2FybS92Z2ljLm8K IGt2bS0kKENPTkZJR19LVk1fQVJNX0hPU1QpICs9ICQoS1ZNKS9hcm0vdmdpYy12Mi5vCmRpZmYg LS1naXQgYS9hcmNoL2FybTY0L2t2bS9kZWJ1Zy5jIGIvYXJjaC9hcm02NC9rdm0vZGVidWcuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYWYwZTFmCi0tLSAvZGV2L251bGwK KysrIGIvYXJjaC9hcm02NC9rdm0vZGVidWcuYwpAQCAtMCwwICsxLDgxIEBACisvKgorICogRGVi dWcgYW5kIEd1ZXN0IERlYnVnIHN1cHBvcnQKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgLSBM aW5hcm8gTHRkCisgKiBBdXRob3I6IEFsZXggQmVubsOpZSA8YWxleC5iZW5uZWVAbGluYXJvLm9y Zz4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKyNpbmNsdWRlIDxsaW51eC9rdm1f aG9zdC5oPgorCisjaW5jbHVkZSA8YXNtL2t2bV9hcm0uaD4KKworc3RhdGljIERFRklORV9QRVJf Q1BVKHUzMiwgbWRjcl9lbDIpOworCisvKioKKyAqIGt2bV9hcm1faW5pdF9kZWJ1ZyAtIGdyYWIg d2hhdCB3ZSBuZWVkIGZvciBkZWJ1ZworICoKKyAqIEN1cnJlbnRseSB0aGUgc29sZSB0YXNrIG9m IHRoaXMgZnVuY3Rpb24gaXMgdG8gcmV0cmlldmUgdGhlIGluaXRpYWwKKyAqIHZhbHVlIG9mIG1k Y3JfZWwyIHNvIHdlIGNhbiBwcmVzZXJ2ZSBNRENSX0VMMi5IUE1OIHdoaWNoIGhhcworICogcHJl c3VtYWJseSBiZWVuIHNldC11cCBieSBzb21lIGtub3dsZWRnZWFibGUgYm9vdGNvZGUuCisgKgor ICogSXQgaXMgY2FsbGVkIG9uY2UgcGVyLWNwdSBkdXJpbmcgQ1BVIGh5cCBpbml0aWFsaXNhdGlv bi4KKyAqLworCit2b2lkIGt2bV9hcm1faW5pdF9kZWJ1Zyh2b2lkKQoreworCV9fdGhpc19jcHVf d3JpdGUobWRjcl9lbDIsIGt2bV9jYWxsX2h5cChfX2t2bV9nZXRfbWRjcl9lbDIpKTsKK30KKwor CisvKioKKyAqIGt2bV9hcm1fc2V0dXBfZGVidWcgLSBzZXQgdXAgZGVidWcgcmVsYXRlZCBzdHVm ZgorICoKKyAqIEB2Y3B1Ogl0aGUgdmNwdSBwb2ludGVyCisgKgorICogVGhpcyBpcyBjYWxsZWQg YmVmb3JlIGVhY2ggZW50cnkgaW50byB0aGUgaHlwZXJ2aXNvciB0byBzZXR1cCBhbnkKKyAqIGRl YnVnIHJlbGF0ZWQgcmVnaXN0ZXJzLiBDdXJyZW50bHkgdGhpcyBqdXN0IGVuc3VyZXMgd2Ugd2ls bCB0cmFwCisgKiBhY2Nlc3MgdG86CisgKiAgLSBQZXJmb3JtYW5jZSBtb25pdG9ycyAoTURDUl9F TDJfVFBNL01EQ1JfRUwyX1RQTUNSKQorICogIC0gRGVidWcgUk9NIEFkZHJlc3MgKE1EQ1JfRUwy X1REUkEpCisgKiAgLSBPUyByZWxhdGVkIHJlZ2lzdGVycyAoTURDUl9FTDJfVERPU0EpCisgKgor ICogQWRkaXRpb25hbGx5LCBLVk0gb25seSB0cmFwcyBndWVzdCBhY2Nlc3NlcyB0byB0aGUgZGVi dWcgcmVnaXN0ZXJzIGlmCisgKiB0aGUgZ3Vlc3QgaXMgbm90IGFjdGl2ZWx5IHVzaW5nIHRoZW0g KHNlZSB0aGUgS1ZNX0FSTTY0X0RFQlVHX0RJUlRZCisgKiBmbGFnIG9uIHZjcHUtPmFyY2guZGVi dWdfZmxhZ3MpLiAgU2luY2UgdGhlIGd1ZXN0IG11c3Qgbm90IGludGVyZmVyZQorICogd2l0aCB0 aGUgaGFyZHdhcmUgc3RhdGUgd2hlbiBkZWJ1Z2dpbmcgdGhlIGd1ZXN0LCB3ZSBtdXN0IGVuc3Vy ZSB0aGF0CisgKiB0cmFwcGluZyBpcyBlbmFibGVkIHdoZW5ldmVyIHdlIGFyZSBkZWJ1Z2dpbmcg dGhlIGd1ZXN0IHVzaW5nIHRoZQorICogZGVidWcgcmVnaXN0ZXJzLgorICovCisKK3ZvaWQga3Zt X2FybV9zZXR1cF9kZWJ1ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCit7CisJYm9vbCB0cmFwX2Rl YnVnID0gISh2Y3B1LT5hcmNoLmRlYnVnX2ZsYWdzICYgS1ZNX0FSTTY0X0RFQlVHX0RJUlRZKTsK KworCXZjcHUtPmFyY2gubWRjcl9lbDIgPSBfX3RoaXNfY3B1X3JlYWQobWRjcl9lbDIpICYgTURD Ul9FTDJfSFBNTl9NQVNLOworCXZjcHUtPmFyY2gubWRjcl9lbDIgfD0gKE1EQ1JfRUwyX1RQTSB8 CisJCQkJTURDUl9FTDJfVFBNQ1IgfAorCQkJCU1EQ1JfRUwyX1REUkEgfAorCQkJCU1EQ1JfRUwy X1RET1NBKTsKKworCS8qIFRyYXAgb24gYWNjZXNzIHRvIGRlYnVnIHJlZ2lzdGVycz8gKi8KKwlp ZiAodHJhcF9kZWJ1ZykKKwkJdmNwdS0+YXJjaC5tZGNyX2VsMiB8PSBNRENSX0VMMl9UREE7CisK K30KKwordm9pZCBrdm1fYXJtX2NsZWFyX2RlYnVnKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKK3sK KwkvKiBOb3RoaW5nIHRvIGRvIHlldCAqLworfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0v aHlwLlMgYi9hcmNoL2FybTY0L2t2bS9oeXAuUwppbmRleCA1YmVmZDAxLi4yYzY3YTE0IDEwMDY0 NAotLS0gYS9hcmNoL2FybTY0L2t2bS9oeXAuUworKysgYi9hcmNoL2FybTY0L2t2bS9oeXAuUwpA QCAtNzY4LDE3ICs3NjgsOCBAQAogCW1vdgl4MiwgIygxIDw8IDE1KQkvLyBUcmFwIENQMTUgQ3I9 MTUKIAltc3IJaHN0cl9lbDIsIHgyCiAKLQltcnMJeDIsIG1kY3JfZWwyCi0JYW5kCXgyLCB4Miwg I01EQ1JfRUwyX0hQTU5fTUFTSwotCW9ycgl4MiwgeDIsICMoTURDUl9FTDJfVFBNIHwgTURDUl9F TDJfVFBNQ1IpCi0Jb3JyCXgyLCB4MiwgIyhNRENSX0VMMl9URFJBIHwgTURDUl9FTDJfVERPU0Ep Ci0KLQkvLyBDaGVjayBmb3IgS1ZNX0FSTTY0X0RFQlVHX0RJUlRZLCBhbmQgc2V0IGRlYnVnIHRv IHRyYXAKLQkvLyBpZiBub3QgZGlydHkuCi0JbGRyCXgzLCBbeDAsICNWQ1BVX0RFQlVHX0ZMQUdT XQotCXRibnoJeDMsICNLVk1fQVJNNjRfREVCVUdfRElSVFlfU0hJRlQsIDFmCi0Jb3JyCXgyLCB4 MiwgICNNRENSX0VMMl9UREEKLTE6CisJLy8gTW9uaXRvciBEZWJ1ZyBDb25maWcgLSBzZWUga3Zt X2FybV9zZXR1cF9kZWJ1ZygpCisJbGRyCXgyLCBbeDAsICNWQ1BVX01EQ1JfRUwyXQogCW1zcglt ZGNyX2VsMiwgeDIKIC5lbmRtCiAKQEAgLTEyOTUsNCArMTI4NiwxMCBAQCBFTlRSWShfX2t2bV9o eXBfdmVjdG9yKQogCXZlbnRyeQllbDFfZXJyb3JfaW52YWxpZAkJLy8gRXJyb3IgMzItYml0IEVM MQogRU5EUFJPQyhfX2t2bV9oeXBfdmVjdG9yKQogCisKK0VOVFJZKF9fa3ZtX2dldF9tZGNyX2Vs MikKKwltcnMJeDAsIG1kY3JfZWwyCisJcmV0CitFTkRQUk9DKF9fa3ZtX2dldF9tZGNyX2VsMikK KwogCS5wb3BzZWN0aW9uCi0tIAoyLjMuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18Ka3ZtYXJtIG1haWxpbmcgbGlzdAprdm1hcm1AbGlzdHMuY3MuY29s dW1iaWEuZWR1Cmh0dHBzOi8vbGlzdHMuY3MuY29sdW1iaWEuZWR1L21haWxtYW4vbGlzdGluZm8v a3ZtYXJtCg==