From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v4 12/12] KVM: arm64: add trace points for guest_debug debug Date: Fri, 15 May 2015 15:27:15 +0100 Message-ID: <1431700035-23479-13-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: Russell King , Gleb Natapov , jan.kiszka@siemens.com, Will Deacon , open list , dahi@linux.vnet.ibm.com, 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 VGhpcyBpbmNsdWRlcyB0cmFjZSBwb2ludHMgZm9yOgogIGt2bV9hcmNoX3NldHVwX2d1ZXN0X2Rl YnVnCiAga3ZtX2FyY2hfY2xlYXJfZ3Vlc3RfZGVidWcKCkkndmUgYWxzbyBhZGRlZCBzb21lIGdl bmVyaWMgcmVnaXN0ZXIgc2V0dGluZyB0cmFjZSBldmVudHMgYW5kIGFsc28gYQp0cmFjZSBwb2lu dCB0byBkdW1wIHRoZSBhcnJheSBvZiBoYXJkd2FyZSByZWdpc3RlcnMuCgpTaWduZWQtb2ZmLWJ5 OiBBbGV4IEJlbm7DqWUgPGFsZXguYmVubmVlQGxpbmFyby5vcmc+CgotLS0KdjMKICAtIGFkZCB0 cmFjZSBldmVudCBmb3IgZGVidWcgYWNjZXNzLgogIC0gcmVtb3ZlIHNob3J0IHRyYWNlICNkZWZp bmUsIHJlbmFtZSB0cmFjZSBldmVudHMKICAtIHVzZSBfX3ByaW50X2FycmF5IHdpdGggZml4ZWQg YXJyYXkgaW5zdGVhZCBvZiBvd24gZnVuYwogIC0gcmF0aW9uYWxpc2UgdHJhY2UgcG9pbnRzIChv bmx5IG9uZSBwZXIgcmVnaXN0ZXIgY2hhbmdlZCkKICAtIGFkZCB2Y3B1IHB0ciB0byB0aGUgZGVi dWdfc2V0dXAgdHJhY2UKICAtIHJlbW92ZSA6OiBpbiBwcmludHMKdjQKICAtIHUzMi91NjQgc3Bs aXQgb24gZGVidWcgcmVnaXN0ZXJzCiAgLSBmaXggZm9yIHJlbmFtZXMKICAtIGFkZCB0cmFjaW5n IG9mIHRyYXBzL3NldF9ndWVzdF9kZWJ1ZwogIC0gcmVtb3ZlIGhhbmRsZV9ndWVzdF9kZWJ1ZyB0 cmFjZQoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2t2bS9hcm0uYyBiL2FyY2gvYXJtL2t2bS9hcm0u YwppbmRleCA2ZGY0N2MxLi5hOTM5YTRlIDEwMDY0NAotLS0gYS9hcmNoL2FybS9rdm0vYXJtLmMK KysrIGIvYXJjaC9hcm0va3ZtL2FybS5jCkBAIC0zMjMsNiArMzIzLDggQEAgdm9pZCBrdm1fYXJj aF92Y3B1X3B1dChzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0 bF9zZXRfZ3Vlc3RfZGVidWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQkJCQlzdHJ1Y3Qga3Zt X2d1ZXN0X2RlYnVnICpkYmcpCiB7CisJdHJhY2Vfa3ZtX3NldF9ndWVzdF9kZWJ1Zyh2Y3B1LCBk YmctPmNvbnRyb2wpOworCiAJaWYgKGRiZy0+Y29udHJvbCAmIH5LVk1fR1VFU1REQkdfVkFMSURf TUFTSykKIAkJcmV0dXJuIC1FSU5WQUw7CiAKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2t2bS90cmFj ZS5oIGIvYXJjaC9hcm0va3ZtL3RyYWNlLmgKaW5kZXggMGVjMzUzOS4uM2UzNDZhNiAxMDA2NDQK LS0tIGEvYXJjaC9hcm0va3ZtL3RyYWNlLmgKKysrIGIvYXJjaC9hcm0va3ZtL3RyYWNlLmgKQEAg LTMxNyw2ICszMTcsMjMgQEAgVFJBQ0VfRVZFTlQoa3ZtX3RvZ2dsZV9jYWNoZSwKIAkJICAgICAg X19lbnRyeS0+bm93ID8gIm9uIiA6ICJvZmYiKQogKTsKIAorVFJBQ0VfRVZFTlQoa3ZtX3NldF9n dWVzdF9kZWJ1ZywKKwlUUF9QUk9UTyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIF9fdTMyIGd1ZXN0 X2RlYnVnKSwKKwlUUF9BUkdTKHZjcHUsIGd1ZXN0X2RlYnVnKSwKKworCVRQX1NUUlVDVF9fZW50 cnkoCisJCV9fZmllbGQoc3RydWN0IGt2bV92Y3B1ICosIHZjcHUpCisJCV9fZmllbGQoX191MzIs IGd1ZXN0X2RlYnVnKQorCSksCisKKwlUUF9mYXN0X2Fzc2lnbigKKwkJX19lbnRyeS0+dmNwdSA9 IHZjcHU7CisJCV9fZW50cnktPmd1ZXN0X2RlYnVnID0gZ3Vlc3RfZGVidWc7CisJKSwKKworCVRQ X3ByaW50aygidmNwdTogJXAsIGZsYWdzOiAweCUwOHgiLCBfX2VudHJ5LT52Y3B1LCBfX2VudHJ5 LT5ndWVzdF9kZWJ1ZykKKyk7CisKICNlbmRpZiAvKiBfVFJBQ0VfS1ZNX0ggKi8KIAogI3VuZGVm IFRSQUNFX0lOQ0xVREVfUEFUSApkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vZGVidWcuYyBi L2FyY2gvYXJtNjQva3ZtL2RlYnVnLmMKaW5kZXggN2NmY2I1My4uMDQ2NDZlMSAxMDA2NDQKLS0t IGEvYXJjaC9hcm02NC9rdm0vZGVidWcuYworKysgYi9hcmNoL2FybTY0L2t2bS9kZWJ1Zy5jCkBA IC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSA8YXNtL2t2bV9hcm0uaD4KICNpbmNsdWRlIDxhc20v a3ZtX2VtdWxhdGUuaD4KIAorI2luY2x1ZGUgInRyYWNlLmgiCisKIC8qIFRoZXNlIGFyZSB0aGUg Yml0cyBvZiBNRFNDUl9FTDEgd2UgbWF5IG1hbmlwdWxhdGUgKi8KICNkZWZpbmUgTURTQ1JfRUwx X0RFQlVHX01BU0sJKERCR19NRFNDUl9TUyB8IFwKIAkJCQlEQkdfTURTQ1JfS0RFIHwgXApAQCAt NDksNiArNTEsMTEgQEAgc3RhdGljIHZvaWQgc2F2ZV9ndWVzdF9kZWJ1Z19yZWdzKHN0cnVjdCBr dm1fdmNwdSAqdmNwdSkKIHsKIAl2Y3B1LT5hcmNoLmd1ZXN0X2RlYnVnX3ByZXNlcnZlZC5wc3Rh dGUgPSAqdmNwdV9jcHNyKHZjcHUpOwogCXZjcHUtPmFyY2guZ3Vlc3RfZGVidWdfcHJlc2VydmVk Lm1kc2NyX2VsMSA9IHZjcHVfc3lzX3JlZyh2Y3B1LCBNRFNDUl9FTDEpOworCisJdHJhY2Vfa3Zt X2FybV9zZXRfZHJlZzMyKCJTYXZlZCBQU1RBVEUiLAorCQkJCXZjcHUtPmFyY2guZ3Vlc3RfZGVi dWdfcHJlc2VydmVkLnBzdGF0ZSk7CisJdHJhY2Vfa3ZtX2FybV9zZXRfZHJlZzMyKCJTYXZlZCBN RFNDUl9FTDEiLAorCQkJCXZjcHUtPmFyY2guZ3Vlc3RfZGVidWdfcHJlc2VydmVkLm1kc2NyX2Vs MSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJlc3RvcmVfZ3Vlc3RfZGVidWdfcmVncyhzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUpCkBAIC01Niw2ICs2MywxMCBAQCBzdGF0aWMgdm9pZCByZXN0b3JlX2d1ZXN0 X2RlYnVnX3JlZ3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCSp2Y3B1X2Nwc3IodmNwdSkgfD0K IAkJKHZjcHUtPmFyY2guZ3Vlc3RfZGVidWdfcHJlc2VydmVkLnBzdGF0ZSAmIFNQU1JfREVCVUdf TUFTSyk7CiAJdmNwdV9zeXNfcmVnKHZjcHUsIE1EU0NSX0VMMSkgPSB2Y3B1LT5hcmNoLmd1ZXN0 X2RlYnVnX3ByZXNlcnZlZC5tZHNjcl9lbDE7CisKKwl0cmFjZV9rdm1fYXJtX3NldF9kcmVnMzIo IlJlc3RvcmVkIFBTVEFURSIsICp2Y3B1X2Nwc3IodmNwdSkpOworCXRyYWNlX2t2bV9hcm1fc2V0 X2RyZWczMigiUmVzdG9yZWQgTURTQ1JfRUwxIiwKKwkJCQl2Y3B1X3N5c19yZWcodmNwdSwgTURT Q1JfRUwxKSk7CiB9CiAKIC8qKgpAQCAtOTcsNiArMTA4LDggQEAgdm9pZCBrdm1fYXJtX3NldHVw X2RlYnVnKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIHsKIAlib29sIHRyYXBfZGVidWcgPSAhKHZj cHUtPmFyY2guZGVidWdfZmxhZ3MgJiBLVk1fQVJNNjRfREVCVUdfRElSVFkpOwogCisJdHJhY2Vf a3ZtX2FybV9zZXR1cF9kZWJ1Zyh2Y3B1LCB2Y3B1LT5ndWVzdF9kZWJ1Zyk7CisKIAl2Y3B1LT5h cmNoLm1kY3JfZWwyID0gX190aGlzX2NwdV9yZWFkKG1kY3JfZWwyKSAmIE1EQ1JfRUwyX0hQTU5f TUFTSzsKIAl2Y3B1LT5hcmNoLm1kY3JfZWwyIHw9IChNRENSX0VMMl9UUE0gfAogCQkJCU1EQ1Jf RUwyX1RQTUNSIHwKQEAgLTEyNiw2ICsxMzksOCBAQCB2b2lkIGt2bV9hcm1fc2V0dXBfZGVidWco c3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQkJdmNwdV9zeXNfcmVnKHZjcHUsIE1EU0NSX0VMMSkg Jj0gfkRCR19NRFNDUl9TUzsKIAkJfQogCisJCXRyYWNlX2t2bV9hcm1fc2V0X2RyZWczMigiU1BT Ul9FTDIiLCAqdmNwdV9jcHNyKHZjcHUpKTsKKwogCQkvKgogCQkgKiBIVyBCcmVhay9XYXRjaCBw b2ludHMKIAkJICoKQEAgLTE0MywxNiArMTU4LDI5IEBAIHZvaWQga3ZtX2FybV9zZXR1cF9kZWJ1 ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiAJCQl2Y3B1LT5hcmNoLmRlYnVnX3B0ciA9ICZ2Y3B1 LT5hcmNoLmV4dGVybmFsX2RlYnVnX3N0YXRlOwogCQkJdmNwdS0+YXJjaC5kZWJ1Z19mbGFncyB8 PSBLVk1fQVJNNjRfREVCVUdfRElSVFk7CiAJCQl0cmFwX2RlYnVnID0gdHJ1ZTsKKworCQkJdHJh Y2Vfa3ZtX2FybV9zZXRfcmVnc2V0KCJCS1BUUyIsIGdldF9udW1fYnJwcygpLAorCQkJCQkJJnZj cHUtPmFyY2guZGVidWdfcHRyLT5kYmdfYmNyWzBdLAorCQkJCQkJJnZjcHUtPmFyY2guZGVidWdf cHRyLT5kYmdfYnZyWzBdKTsKKworCQkJdHJhY2Vfa3ZtX2FybV9zZXRfcmVnc2V0KCJXQVBUUyIs IGdldF9udW1fd3JwcygpLAorCQkJCQkJJnZjcHUtPmFyY2guZGVidWdfcHRyLT5kYmdfd2NyWzBd LAorCQkJCQkJJnZjcHUtPmFyY2guZGVidWdfcHRyLT5kYmdfd3ZyWzBdKTsKIAkJfQogCX0KIAog CS8qIFRyYXAgZGVidWcgcmVnaXN0ZXIgYWNjZXNzICovCiAJaWYgKHRyYXBfZGVidWcpCiAJCXZj cHUtPmFyY2gubWRjcl9lbDIgfD0gTURDUl9FTDJfVERBOworCisJdHJhY2Vfa3ZtX2FybV9zZXRf ZHJlZzMyKCJNRENSX0VMMiIsIHZjcHUtPmFyY2gubWRjcl9lbDIpOworCXRyYWNlX2t2bV9hcm1f c2V0X2RyZWczMigiTURTQ1JfRUwxIiwgdmNwdV9zeXNfcmVnKHZjcHUsIE1EU0NSX0VMMSkpOwog fQogCiB2b2lkIGt2bV9hcm1fY2xlYXJfZGVidWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogewor CXRyYWNlX2t2bV9hcm1fY2xlYXJfZGVidWcodmNwdS0+Z3Vlc3RfZGVidWcpOworCiAJaWYgKHZj cHUtPmd1ZXN0X2RlYnVnKSB7CiAJCXJlc3RvcmVfZ3Vlc3RfZGVidWdfcmVncyh2Y3B1KTsKIApA QCAtMTYwLDggKzE4OCwxNiBAQCB2b2lkIGt2bV9hcm1fY2xlYXJfZGVidWcoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1KQogCQkgKiBJZiB3ZSB3ZXJlIHVzaW5nIEhXIGRlYnVnIHdlIG5lZWQgdG8gcmVz dG9yZSB0aGUKIAkJICogZGVidWdfcHRyIHRvIHRoZSBndWVzdCBkZWJ1ZyBzdGF0ZS4KIAkJICov Ci0JCWlmICh2Y3B1LT5ndWVzdF9kZWJ1ZyAmIEtWTV9HVUVTVERCR19VU0VfSFdfQlApCisJCWlm ICh2Y3B1LT5ndWVzdF9kZWJ1ZyAmIEtWTV9HVUVTVERCR19VU0VfSFdfQlApIHsKIAkJCXZjcHUt PmFyY2guZGVidWdfcHRyID0gJnZjcHUtPmFyY2gudmNwdV9kZWJ1Z19zdGF0ZTsKIAorCQkJdHJh Y2Vfa3ZtX2FybV9zZXRfcmVnc2V0KCJCS1BUUyIsIGdldF9udW1fYnJwcygpLAorCQkJCQkJJnZj cHUtPmFyY2guZGVidWdfcHRyLT5kYmdfYmNyWzBdLAorCQkJCQkJJnZjcHUtPmFyY2guZGVidWdf cHRyLT5kYmdfYnZyWzBdKTsKKworCQkJdHJhY2Vfa3ZtX2FybV9zZXRfcmVnc2V0KCJXQVBUUyIs IGdldF9udW1fd3JwcygpLAorCQkJCQkJJnZjcHUtPmFyY2guZGVidWdfcHRyLT5kYmdfd2NyWzBd LAorCQkJCQkJJnZjcHUtPmFyY2guZGVidWdfcHRyLT5kYmdfd3ZyWzBdKTsKKwkJfQogCX0KIH0K ZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMgYi9hcmNoL2FybTY0L2t2bS9z eXNfcmVncy5jCmluZGV4IDQwNTQwM2UuLjE1YmM4NTEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQv a3ZtL3N5c19yZWdzLmMKKysrIGIvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYwpAQCAtMzgsNiAr MzgsOCBAQAogCiAjaW5jbHVkZSAic3lzX3JlZ3MuaCIKIAorI2luY2x1ZGUgInRyYWNlLmgiCisK IC8qCiAgKiBBbGwgb2YgdGhpcyBmaWxlIGlzIGV4dHJlbWx5IHNpbWlsYXIgdG8gdGhlIEFSTSBj b3Byb2MuYywgYnV0IHRoZQogICogdHlwZXMgYXJlIGRpZmZlcmVudC4gTXkgZ3V0IGZlZWxpbmcg aXMgdGhhdCBpdCBzaG91bGQgYmUgcHJldHR5CkBAIC0yMDgsNiArMjEwLDggQEAgc3RhdGljIGJv b2wgdHJhcF9kZWJ1Z19yZWdzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJKnZjcHVfcmVnKHZj cHUsIHAtPlJ0KSA9IHZjcHVfc3lzX3JlZyh2Y3B1LCByLT5yZWcpOwogCX0KIAorCXRyYWNlX3Ry YXBfcmVnKF9fZnVuY19fLCByLT5yZWcsIHAtPmlzX3dyaXRlLCAqdmNwdV9yZWcodmNwdSwgcC0+ UnQpKTsKKwogCXJldHVybiB0cnVlOwogfQogCkBAIC0yMjMsNiArMjI3LDggQEAgc3RhdGljIGlu bGluZSBib29sIHRyYXBfZGVidWczMihzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCSp2Y3B1X3Jl Zyh2Y3B1LCBwLT5SdCkgPSAqcjsKIAl9CiAKKwl0cmFjZV90cmFwX3JlZyhfX2Z1bmNfXywgcmQt PnJlZywgcC0+aXNfd3JpdGUsICpyKTsKKwogCXJldHVybiB0cnVlOwogfQogCkBAIC0yMzgsNiAr MjQ0LDggQEAgc3RhdGljIGlubGluZSBib29sIHRyYXBfZGVidWc2NChzdHJ1Y3Qga3ZtX3ZjcHUg KnZjcHUsCiAJCSp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCkgPSAqcjsKIAl9CiAKKwl0cmFjZV90cmFw X3JlZyhfX2Z1bmNfXywgcmQtPnJlZywgcC0+aXNfd3JpdGUsICpyKTsKKwogCXJldHVybiB0cnVl OwogfQogCkBAIC0xMDMxLDYgKzEwMzksOCBAQCBpbnQga3ZtX2hhbmRsZV9zeXNfcmVnKHN0cnVj dCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bikKIAlzdHJ1Y3Qgc3lzX3JlZ19w YXJhbXMgcGFyYW1zOwogCXVuc2lnbmVkIGxvbmcgZXNyID0ga3ZtX3ZjcHVfZ2V0X2hzcih2Y3B1 KTsKIAorCXRyYWNlX2t2bV9oYW5kbGVfc3lzX3JlZyhlc3IpOworCiAJcGFyYW1zLmlzX2FhcmNo MzIgPSBmYWxzZTsKIAlwYXJhbXMuaXNfMzJiaXQgPSBmYWxzZTsKIAlwYXJhbXMuT3AwID0gKGVz ciA+PiAyMCkgJiAzOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vdHJhY2UuaCBiL2FyY2gv YXJtNjQva3ZtL3RyYWNlLmgKaW5kZXggMTU3NDE2ZTkuLjU1NTY0ZDUgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtNjQva3ZtL3RyYWNlLmgKKysrIGIvYXJjaC9hcm02NC9rdm0vdHJhY2UuaApAQCAtNDQs NiArNDQsMTExIEBAIFRSQUNFX0VWRU5UKGt2bV9odmNfYXJtNjQsCiAJCSAgX19lbnRyeS0+dmNw dV9wYywgX19lbnRyeS0+cjAsIF9fZW50cnktPmltbSkKICk7CiAKK1RSQUNFX0VWRU5UKGt2bV9h cm1fc2V0dXBfZGVidWcsCisJVFBfUFJPVE8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBfX3UzMiBn dWVzdF9kZWJ1ZyksCisJVFBfQVJHUyh2Y3B1LCBndWVzdF9kZWJ1ZyksCisKKwlUUF9TVFJVQ1Rf X2VudHJ5KAorCQlfX2ZpZWxkKHN0cnVjdCBrdm1fdmNwdSAqLCB2Y3B1KQorCQlfX2ZpZWxkKF9f dTMyLCBndWVzdF9kZWJ1ZykKKwkpLAorCisJVFBfZmFzdF9hc3NpZ24oCisJCV9fZW50cnktPnZj cHUgPSB2Y3B1OworCQlfX2VudHJ5LT5ndWVzdF9kZWJ1ZyA9IGd1ZXN0X2RlYnVnOworCSksCisK KwlUUF9wcmludGsoInZjcHU6ICVwLCBmbGFnczogMHglMDh4IiwgX19lbnRyeS0+dmNwdSwgX19l bnRyeS0+Z3Vlc3RfZGVidWcpCispOworCitUUkFDRV9FVkVOVChrdm1fYXJtX2NsZWFyX2RlYnVn LAorCVRQX1BST1RPKF9fdTMyIGd1ZXN0X2RlYnVnKSwKKwlUUF9BUkdTKGd1ZXN0X2RlYnVnKSwK KworCVRQX1NUUlVDVF9fZW50cnkoCisJCV9fZmllbGQoX191MzIsIGd1ZXN0X2RlYnVnKQorCSks CisKKwlUUF9mYXN0X2Fzc2lnbigKKwkJX19lbnRyeS0+Z3Vlc3RfZGVidWcgPSBndWVzdF9kZWJ1 ZzsKKwkpLAorCisJVFBfcHJpbnRrKCJmbGFnczogMHglMDh4IiwgX19lbnRyeS0+Z3Vlc3RfZGVi dWcpCispOworCitUUkFDRV9FVkVOVChrdm1fYXJtX3NldF9kcmVnMzIsCisJVFBfUFJPVE8oY29u c3QgY2hhciAqbmFtZSwgX191MzIgdmFsdWUpLAorCVRQX0FSR1MobmFtZSwgdmFsdWUpLAorCisJ VFBfU1RSVUNUX19lbnRyeSgKKwkJX19maWVsZChjb25zdCBjaGFyICosIG5hbWUpCisJCV9fZmll bGQoX191MzIsIHZhbHVlKQorCSksCisKKwlUUF9mYXN0X2Fzc2lnbigKKwkJX19lbnRyeS0+bmFt ZSA9IG5hbWU7CisJCV9fZW50cnktPnZhbHVlID0gdmFsdWU7CisJKSwKKworCVRQX3ByaW50aygi JXM6IDB4JTA4eCIsIF9fZW50cnktPm5hbWUsIF9fZW50cnktPnZhbHVlKQorKTsKKworVFJBQ0Vf RVZFTlQoa3ZtX2FybV9zZXRfcmVnc2V0LAorCVRQX1BST1RPKGNvbnN0IGNoYXIgKnR5cGUsIGlu dCBsZW4sIF9fdTMyICpjb250cm9sLCBfX3U2NCAqdmFsdWUpLAorCVRQX0FSR1ModHlwZSwgbGVu LCBjb250cm9sLCB2YWx1ZSksCisJVFBfU1RSVUNUX19lbnRyeSgKKwkJX19maWVsZChjb25zdCBj aGFyICosIG5hbWUpCisJCV9fZmllbGQoaW50LCBsZW4pCisJCV9fYXJyYXkodTMyLCBjdHJscywg MTYpCisJCV9fYXJyYXkodTY0LCB2YWx1ZXMsIDE2KQorCSksCisJVFBfZmFzdF9hc3NpZ24oCisJ CV9fZW50cnktPm5hbWUgPSB0eXBlOworCQlfX2VudHJ5LT5sZW4gPSBsZW47CisJCW1lbWNweShf X2VudHJ5LT5jdHJscywgY29udHJvbCwgbGVuIDw8IDIpOworCQltZW1jcHkoX19lbnRyeS0+dmFs dWVzLCB2YWx1ZSwgbGVuIDw8IDMpOworCSksCisJVFBfcHJpbnRrKCIlZCAlcyBDVFJMOiVzIFZB TFVFOiVzIiwgX19lbnRyeS0+bGVuLCBfX2VudHJ5LT5uYW1lLAorCQlfX3ByaW50X2FycmF5KF9f ZW50cnktPmN0cmxzLCBfX2VudHJ5LT5sZW4sIHNpemVvZihfX3UzMikpLAorCQlfX3ByaW50X2Fy cmF5KF9fZW50cnktPnZhbHVlcywgX19lbnRyeS0+bGVuLCBzaXplb2YoX191NjQpKSkKKyk7CisK K1RSQUNFX0VWRU5UKHRyYXBfcmVnLAorCVRQX1BST1RPKGNvbnN0IGNoYXIgKmZuLCBpbnQgcmVn LCBib29sIGlzX3dyaXRlLCB1NjQgd3JpdGVfdmFsdWUpLAorCVRQX0FSR1MoZm4sIHJlZywgaXNf d3JpdGUsIHdyaXRlX3ZhbHVlKSwKKworCVRQX1NUUlVDVF9fZW50cnkoCisJCV9fZmllbGQoY29u c3QgY2hhciAqLCBmbikKKwkJX19maWVsZChpbnQsIHJlZykKKwkJX19maWVsZChib29sLCBpc193 cml0ZSkKKwkJX19maWVsZCh1NjQsIHdyaXRlX3ZhbHVlKQorCSksCisKKwlUUF9mYXN0X2Fzc2ln bigKKwkJX19lbnRyeS0+Zm4gPSBmbjsKKwkJX19lbnRyeS0+cmVnID0gcmVnOworCQlfX2VudHJ5 LT5pc193cml0ZSA9IGlzX3dyaXRlOworCQlfX2VudHJ5LT53cml0ZV92YWx1ZSA9IHdyaXRlX3Zh bHVlOworCSksCisKKwlUUF9wcmludGsoIiVzICVzIHJlZyAlZCAoMHglMDhsbHgpIiwgX19lbnRy eS0+Zm4sICBfX2VudHJ5LT5pc193cml0ZT8id3JpdGUgdG8iOiJyZWFkIGZyb20iLCBfX2VudHJ5 LT5yZWcsIF9fZW50cnktPndyaXRlX3ZhbHVlKQorKTsKKworVFJBQ0VfRVZFTlQoa3ZtX2hhbmRs ZV9zeXNfcmVnLAorCVRQX1BST1RPKHVuc2lnbmVkIGxvbmcgaHNyKSwKKwlUUF9BUkdTKGhzciks CisKKwlUUF9TVFJVQ1RfX2VudHJ5KAorCQlfX2ZpZWxkKHVuc2lnbmVkIGxvbmcsCWhzcikKKwkp LAorCisJVFBfZmFzdF9hc3NpZ24oCisJCV9fZW50cnktPmhzciA9IGhzcjsKKwkpLAorCisJVFBf cHJpbnRrKCJIU1IgMHglMDhsbHgiLCBfX2VudHJ5LT5oc3IpCispOworCiAjZW5kaWYgLyogX1RS QUNFX0FSTTY0X0tWTV9IICovCiAKICN1bmRlZiBUUkFDRV9JTkNMVURFX1BBVEgKLS0gCjIuMy41 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0g bWFpbGluZyBsaXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5j cy5jb2x1bWJpYS5lZHUvbWFpbG1hbi9saXN0aW5mby9rdm1hcm0K