From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v8 09/11] KVM: arm64: guest debug, HW assisted debug support Date: Tue, 7 Jul 2015 17:30:01 +0100 Message-ID: <1436286603-15192-10-git-send-email-alex.bennee@linaro.org> References: <1436286603-15192-1-git-send-email-alex.bennee@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1436286603-15192-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 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 Cc: Lorenzo Pieralisi , Catalin Marinas , Jonathan Corbet , Gleb Natapov , jan.kiszka@siemens.com, "open list:DOCUMENTATION" , Will Deacon , open list , "open list:ABI/API" , dahi@linux.vnet.ibm.com, Peter Zijlstra , r65777@freescale.com, bp@suse.de, Ingo Molnar List-Id: linux-api@vger.kernel.org VGhpcyBhZGRzIHN1cHBvcnQgZm9yIHVzZXJzcGFjZSB0byBjb250cm9sIHRoZSBIVyBkZWJ1ZyBy ZWdpc3RlcnMgZm9yCmd1ZXN0IGRlYnVnLiBJbiB0aGUgZGVidWcgaW9jdGwgd2UgY29weSBhbiBJ TVBERUYgcmVnaXN0ZXJzIGludG8gYSBuZXcKcmVnaXN0ZXIgc2V0IGNhbGxlZCBob3N0X2RlYnVn X3N0YXRlLgoKV2UgdXNlIHRoZSByZWNlbnRseSBpbnRyb2R1Y2VkIHZjcHUgcGFyYW1ldGVyIGRl YnVnX3B0ciB0byBzZWxlY3Qgd2hpY2gKcmVnaXN0ZXIgc2V0IGlzIGNvcGllZCBpbnRvIHRoZSBy ZWFsIHJlZ2lzdGVycyB3aGVuIHdvcmxkIHN3aXRjaCBvY2N1cnMuCgpJJ3ZlIG1hZGUgc29tZSBo ZWxwZXIgZnVuY3Rpb25zIGZyb20gaHdfYnJlYWtwb2ludC5jIG1vcmUgd2lkZWx5CmF2YWlsYWJs ZSBmb3IgcmUtdXNlLgoKQXMgd2l0aCBzaW5nbGUgc3RlcCB3ZSBuZWVkIHRvIHR3ZWFrIHRoZSBn dWVzdCByZWdpc3RlcnMgdG8gZW5hYmxlIHRoZQpleGNlcHRpb25zIHNvIHdlIG5lZWQgdG8gc2F2 ZSBhbmQgcmVzdG9yZSB0aG9zZSBiaXRzLgoKVHdvIG5ldyBjYXBhYmlsaXRpZXMgaGF2ZSBiZWVu IGFkZGVkIHRvIHRoZSBLVk1fRVhURU5TSU9OIGlvY3RsIHRvIGFsbG93CnVzZXJzcGFjZSB0byBx dWVyeSB0aGUgbnVtYmVyIG9mIGhhcmR3YXJlIGJyZWFrIGFuZCB3YXRjaCBwb2ludHMKYXZhaWxh YmxlIG9uIHRoZSBob3N0IGhhcmR3YXJlLgoKU2lnbmVkLW9mZi1ieTogQWxleCBCZW5uw6llIDxh bGV4LmJlbm5lZUBsaW5hcm8ub3JnPgpSZXZpZXdlZC1ieTogQ2hyaXN0b2ZmZXIgRGFsbCA8Y2hy aXN0b2ZmZXIuZGFsbEBsaW5hcm8ub3JnPgoKLS0tCnYyCiAgIC0gc3dpdGNoZWQgdG8gQyBzZXR1 cAogICAtIHJlcGxhY2UgaG9zdCBkZWJ1ZyByZWdpc3RlcnMgZGlyZWN0bHkgaW50byBjb250ZXh0 CiAgIC0gbWlub3IgdHdlYWsgdG8gYXBpIGRvY3MKICAgLSBzZXR1cCByaWdodCByZWdpc3RlciBm b3IgZGVidWcKICAgLSBhZGQgRkFSX0VMMiB0byBkZWJ1ZyBleGl0IHN0cnVjdHVyZQogICAtIGFk ZCBzdXBwb3J0IGZvciB0cmFwcGluZyBkZWJ1ZyByZWdpc3RlciBhY2Nlc3MKdjMKICAgLSByZW1v dmUgc3RyYXkgdHJhY2Ugc3RhdGVtZW50CiAgIC0gZml4IHNwYWNpbmcgYXJvdW5kIG9wZXJhdG9y cyAodmFyaW91cykKICAgLSBjbGVhbi11cCB1c2FnZSBvZiB0cmFwX2RlYnVnCiAgIC0gaW50cm9k dWNlIGRlYnVnX3B0ciwgcmVwbGFjZSBleGNlc3NpdmUgbWVtY3B5IHN0dWZmCiAgIC0gZG9uJ3Qg dXNlIG1lbWNweSBpbiBpb2N0bCwganVzdCBhc3NpZ24KICAgLSB1cGRhdGUgY2FwIGlvY3RsIGRv Y3VtZW50YXRpb24KICAgLSByZXdvcmQgYSBudW1iZXIgY29tbWVudHMKICAgLSByZW5hbWUgaG9z dF9kZWJ1Z19zdGF0ZS0+ZXh0ZXJuYWxfZGVidWdfc3RhdGUKdjQKICAgLSB1c2UgdGhlIG5ldyB1 MzIvdTY0IHNwbGl0IGRlYnVnX3B0ciBhcHByb2FjaAogICAtIGZpeCBzb21lIHdvcmRpbmcvY29t bWVudHMKdjUKICAgLSBkb24ndCBzZXQgTURTQ1JfRUwxLktERSAobm90IG5lZWRlZCkKdjYKICAg LSB1cGRhdGUgd29yZGluZyBnaXZlbiBjaGFuZ2UgaW4gY29tbWVudGFyeQogICAtIEtWTV9HVUVT VERCR19VU0VfSFdfQlAtPktWTV9HVUVTVERCR19VU0VfSFcKdjcKICAgLSBmaXggbWVyZ2UgY29u ZmxpY3RzIGZyb20gaW9jdGwgbW92ZSB0byBndWVzdC5jCiAgIC0gdXNlIGt2bV9hcm1fcmVzZXRf ZGVidWdfcHRyIHRvIHJlc2V0IHB0cgogICAtIGEgQlVHX09OKCkgdGVzdCBoYXMgYmVlbiBhZGRl ZCB0byB0cmFwIGZhaWx1cmUgdG8gcmVzZXQgZGVidWdfcHRyCiAgIC0gZGVidWdnaW5nLT5kZWJ1 ZyBpbiBrdm1faG9zdC5oIGNvbW1lbnQKICAgLSBzL2RlZmluZWQvLyBzL3RvLy8gaW4gY29tbWl0 IG1zZwogICAtIHJtIHJlZiB0byBpbnRyb2R1Y2luZyBkZWJ1Z19wdHIgaW4gY29tbWl0IG1zZwog ICAtIGFkZCByLWIgdGFnCnY4CiAgIC0gYWRkICNpbmNsdWRlIDxhc20vY3B1dHlwZS5oPiB0byBo d19icmVha3BvaW50LmgKLS0tCiBEb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2FwaS50eHQgICAg ICB8ICA3ICsrKysrLQogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9od19icmVha3BvaW50LmggfCAx NCArKysrKysrKysrKysKIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaCAgICAgIHwg IDYgKysrKy0KIGFyY2gvYXJtNjQva2VybmVsL2h3X2JyZWFrcG9pbnQuYyAgICAgIHwgMTIgLS0t LS0tLS0tLQogYXJjaC9hcm02NC9rdm0vZGVidWcuYyAgICAgICAgICAgICAgICAgfCA0MCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBhcmNoL2FybTY0L2t2bS9ndWVzdC5jICAg ICAgICAgICAgICAgICB8ICA3ICsrKysrKwogYXJjaC9hcm02NC9rdm0vaGFuZGxlX2V4aXQuYyAg ICAgICAgICAgfCAgNiArKysrKwogYXJjaC9hcm02NC9rdm0vcmVzZXQuYyAgICAgICAgICAgICAg ICAgfCAxMyArKysrKysrKysrKwogaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oICAgICAgICAgICAg ICAgfCAgMiArKwogOSBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2FwaS50eHQgYi9E b2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2FwaS50eHQKaW5kZXggMzNjODE0My4uYWRhNTdkZiAx MDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9hcGkudHh0CisrKyBiL0RvY3Vt ZW50YXRpb24vdmlydHVhbC9rdm0vYXBpLnR4dApAQCAtMjY2OCw3ICsyNjY4LDcgQEAgVGhlIHRv cCAxNiBiaXRzIG9mIHRoZSBjb250cm9sIGZpZWxkIGFyZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMg Y29udHJvbAogZmxhZ3Mgd2hpY2ggY2FuIGluY2x1ZGUgdGhlIGZvbGxvd2luZzoKIAogICAtIEtW TV9HVUVTVERCR19VU0VfU1dfQlA6ICAgICB1c2luZyBzb2Z0d2FyZSBicmVha3BvaW50cyBbeDg2 LCBhcm02NF0KLSAgLSBLVk1fR1VFU1REQkdfVVNFX0hXX0JQOiAgICAgdXNpbmcgaGFyZHdhcmUg YnJlYWtwb2ludHMgW3g4NiwgczM5MF0KKyAgLSBLVk1fR1VFU1REQkdfVVNFX0hXX0JQOiAgICAg dXNpbmcgaGFyZHdhcmUgYnJlYWtwb2ludHMgW3g4NiwgczM5MCwgYXJtNjRdCiAgIC0gS1ZNX0dV RVNUREJHX0lOSkVDVF9EQjogICAgIGluamVjdCBEQiB0eXBlIGV4Y2VwdGlvbiBbeDg2XQogICAt IEtWTV9HVUVTVERCR19JTkpFQ1RfQlA6ICAgICBpbmplY3QgQlAgdHlwZSBleGNlcHRpb24gW3g4 Nl0KICAgLSBLVk1fR1VFU1REQkdfRVhJVF9QRU5ESU5HOiAgdHJpZ2dlciBhbiBpbW1lZGlhdGUg Z3Vlc3QgZXhpdCBbczM5MF0KQEAgLTI2ODMsNiArMjY4MywxMSBAQCB1cGRhdGVkIHRvIHRoZSBj b3JyZWN0IChzdXBwbGllZCkgdmFsdWVzLgogVGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBzdHJ1Y3R1 cmUgaXMgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGFuZAogdHlwaWNhbGx5IGNvbnRhaW5zIGEgc2V0 IG9mIGRlYnVnIHJlZ2lzdGVycy4KIAorRm9yIGFybTY0IHRoZSBudW1iZXIgb2YgZGVidWcgcmVn aXN0ZXJzIGlzIGltcGxlbWVudGF0aW9uIGRlZmluZWQgYW5kCitjYW4gYmUgZGV0ZXJtaW5lZCBi eSBxdWVyeWluZyB0aGUgS1ZNX0NBUF9HVUVTVF9ERUJVR19IV19CUFMgYW5kCitLVk1fQ0FQX0dV RVNUX0RFQlVHX0hXX1dQUyBjYXBhYmlsaXRpZXMgd2hpY2ggcmV0dXJuIGEgcG9zaXRpdmUgbnVt YmVyCitpbmRpY2F0aW5nIHRoZSBudW1iZXIgb2Ygc3VwcG9ydGVkIHJlZ2lzdGVycy4KKwogV2hl biBkZWJ1ZyBldmVudHMgZXhpdCB0aGUgbWFpbiBydW4gbG9vcCB3aXRoIHRoZSByZWFzb24KIEtW TV9FWElUX0RFQlVHIHdpdGggdGhlIGt2bV9kZWJ1Z19leGl0X2FyY2ggcGFydCBvZiB0aGUga3Zt X3J1bgogc3RydWN0dXJlIGNvbnRhaW5pbmcgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlYnVnIGlu Zm9ybWF0aW9uLgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9od19icmVha3Bv aW50LmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2h3X2JyZWFrcG9pbnQuaAppbmRleCA1MmI0 ODRiLi40YzQ3Y2IyIDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2h3X2JyZWFr cG9pbnQuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2h3X2JyZWFrcG9pbnQuaApAQCAt MTYsNiArMTYsOCBAQAogI2lmbmRlZiBfX0FTTV9IV19CUkVBS1BPSU5UX0gKICNkZWZpbmUgX19B U01fSFdfQlJFQUtQT0lOVF9ICiAKKyNpbmNsdWRlIDxhc20vY3B1dHlwZS5oPgorCiAjaWZkZWYg X19LRVJORUxfXwogCiBzdHJ1Y3QgYXJjaF9od19icmVha3BvaW50X2N0cmwgewpAQCAtMTMyLDUg KzEzNCwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHRyYWNlX2h3X2NvcHlfdGhyZWFkKHN0cnVj dCB0YXNrX3N0cnVjdCAqdGFzaykKIAogZXh0ZXJuIHN0cnVjdCBwbXUgcGVyZl9vcHNfYnA7CiAK Ky8qIERldGVybWluZSBudW1iZXIgb2YgQlJQIHJlZ2lzdGVycyBhdmFpbGFibGUuICovCitzdGF0 aWMgaW5saW5lIGludCBnZXRfbnVtX2JycHModm9pZCkKK3sKKwlyZXR1cm4gKChyZWFkX2NwdWlk KElEX0FBNjRERlIwX0VMMSkgPj4gMTIpICYgMHhmKSArIDE7Cit9CisKKy8qIERldGVybWluZSBu dW1iZXIgb2YgV1JQIHJlZ2lzdGVycyBhdmFpbGFibGUuICovCitzdGF0aWMgaW5saW5lIGludCBn ZXRfbnVtX3dycHModm9pZCkKK3sKKwlyZXR1cm4gKChyZWFkX2NwdWlkKElEX0FBNjRERlIwX0VM MSkgPj4gMjApICYgMHhmKSArIDE7Cit9CisKICNlbmRpZgkvKiBfX0tFUk5FTF9fICovCiAjZW5k aWYJLyogX19BU01fQlJFQUtQT0lOVF9IICovCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1 ZGUvYXNtL2t2bV9ob3N0LmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKaW5k ZXggNDYxZDI4OC4uNmM3NDVlMCAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9r dm1faG9zdC5oCisrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaApAQCAtMTE2 LDEzICsxMTYsMTcgQEAgc3RydWN0IGt2bV92Y3B1X2FyY2ggewogCSAqIGRlYnVnZ2luZyB0aGUg Z3Vlc3QgZnJvbSB0aGUgaG9zdCBhbmQgdG8gbWFpbnRhaW4gc2VwYXJhdGUgaG9zdCBhbmQKIAkg KiBndWVzdCBzdGF0ZSBkdXJpbmcgd29ybGQgc3dpdGNoZXMuIHZjcHVfZGVidWdfc3RhdGUgYXJl IHRoZSBkZWJ1ZwogCSAqIHJlZ2lzdGVycyBvZiB0aGUgdmNwdSBhcyB0aGUgZ3Vlc3Qgc2VlcyB0 aGVtLiAgaG9zdF9kZWJ1Z19zdGF0ZSBhcmUKLQkgKiB0aGUgaG9zdCByZWdpc3RlcnMgd2hpY2gg YXJlIHNhdmVkIGFuZCByZXN0b3JlZCBkdXJpbmcgd29ybGQgc3dpdGNoZXMuCisJICogdGhlIGhv c3QgcmVnaXN0ZXJzIHdoaWNoIGFyZSBzYXZlZCBhbmQgcmVzdG9yZWQgZHVyaW5nCisJICogd29y bGQgc3dpdGNoZXMuIGV4dGVybmFsX2RlYnVnX3N0YXRlIGNvbnRhaW5zIHRoZSBkZWJ1ZworCSAq IHZhbHVlcyB3ZSB3YW50IHRvIGRlYnVnIHRoZSBndWVzdC4gVGhpcyBpcyBzZXQgdmlhIHRoZQor CSAqIEtWTV9TRVRfR1VFU1RfREVCVUcgaW9jdGwuCiAJICoKIAkgKiBkZWJ1Z19wdHIgcG9pbnRz IHRvIHRoZSBzZXQgb2YgZGVidWcgcmVnaXN0ZXJzIHRoYXQgc2hvdWxkIGJlIGxvYWRlZAogCSAq IG9udG8gdGhlIGhhcmR3YXJlIHdoZW4gcnVubmluZyB0aGUgZ3Vlc3QuCiAJICovCiAJc3RydWN0 IGt2bV9ndWVzdF9kZWJ1Z19hcmNoICpkZWJ1Z19wdHI7CiAJc3RydWN0IGt2bV9ndWVzdF9kZWJ1 Z19hcmNoIHZjcHVfZGVidWdfc3RhdGU7CisJc3RydWN0IGt2bV9ndWVzdF9kZWJ1Z19hcmNoIGV4 dGVybmFsX2RlYnVnX3N0YXRlOwogCiAJLyogUG9pbnRlciB0byBob3N0IENQVSBjb250ZXh0ICov CiAJa3ZtX2NwdV9jb250ZXh0X3QgKmhvc3RfY3B1X2NvbnRleHQ7CmRpZmYgLS1naXQgYS9hcmNo L2FybTY0L2tlcm5lbC9od19icmVha3BvaW50LmMgYi9hcmNoL2FybTY0L2tlcm5lbC9od19icmVh a3BvaW50LmMKaW5kZXggZTdkOTM0ZC4uM2E0MWJiZiAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9r ZXJuZWwvaHdfYnJlYWtwb2ludC5jCisrKyBiL2FyY2gvYXJtNjQva2VybmVsL2h3X2JyZWFrcG9p bnQuYwpAQCAtNDksMTggKzQ5LDYgQEAgc3RhdGljIERFRklORV9QRVJfQ1BVKGludCwgc3RlcHBp bmdfa2VybmVsX2JwKTsKIHN0YXRpYyBpbnQgY29yZV9udW1fYnJwczsKIHN0YXRpYyBpbnQgY29y ZV9udW1fd3JwczsKIAotLyogRGV0ZXJtaW5lIG51bWJlciBvZiBCUlAgcmVnaXN0ZXJzIGF2YWls YWJsZS4gKi8KLXN0YXRpYyBpbnQgZ2V0X251bV9icnBzKHZvaWQpCi17Ci0JcmV0dXJuICgocmVh ZF9jcHVpZChJRF9BQTY0REZSMF9FTDEpID4+IDEyKSAmIDB4ZikgKyAxOwotfQotCi0vKiBEZXRl cm1pbmUgbnVtYmVyIG9mIFdSUCByZWdpc3RlcnMgYXZhaWxhYmxlLiAqLwotc3RhdGljIGludCBn ZXRfbnVtX3dycHModm9pZCkKLXsKLQlyZXR1cm4gKChyZWFkX2NwdWlkKElEX0FBNjRERlIwX0VM MSkgPj4gMjApICYgMHhmKSArIDE7Ci19Ci0KIGludCBod19icmVha3BvaW50X3Nsb3RzKGludCB0 eXBlKQogewogCS8qCmRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9kZWJ1Zy5jIGIvYXJjaC9h cm02NC9rdm0vZGVidWcuYwppbmRleCBlMDk0N2I3Li40YTk5ZTU0IDEwMDY0NAotLS0gYS9hcmNo L2FybTY0L2t2bS9kZWJ1Zy5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL2RlYnVnLmMKQEAgLTEwNSwx MCArMTA1LDYgQEAgdm9pZCBrdm1fYXJtX3NldHVwX2RlYnVnKHN0cnVjdCBrdm1fdmNwdSAqdmNw dSkKIAkJCQlNRENSX0VMMl9URFJBIHwKIAkJCQlNRENSX0VMMl9URE9TQSk7CiAKLQkvKiBUcmFw IG9uIGFjY2VzcyB0byBkZWJ1ZyByZWdpc3RlcnM/ICovCi0JaWYgKHRyYXBfZGVidWcpCi0JCXZj cHUtPmFyY2gubWRjcl9lbDIgfD0gTURDUl9FTDJfVERBOwotCiAJLyogSXMgR3Vlc3QgZGVidWdn aW5nIGluIGVmZmVjdD8gKi8KIAlpZiAodmNwdS0+Z3Vlc3RfZGVidWcpIHsKIAkJLyogUm91dGUg YWxsIHNvZnR3YXJlIGRlYnVnIGV4Y2VwdGlvbnMgdG8gRUwyICovCkBAIC0xNDMsMTEgKzEzOSw0 NSBAQCB2b2lkIGt2bV9hcm1fc2V0dXBfZGVidWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQogCQl9 IGVsc2UgewogCQkJdmNwdV9zeXNfcmVnKHZjcHUsIE1EU0NSX0VMMSkgJj0gfkRCR19NRFNDUl9T UzsKIAkJfQorCisJCS8qCisJCSAqIEhXIEJyZWFrcG9pbnRzIGFuZCB3YXRjaHBvaW50cworCQkg KgorCQkgKiBXZSBzaW1wbHkgc3dpdGNoIHRoZSBkZWJ1Z19wdHIgdG8gcG9pbnQgdG8gb3VyIG5l dworCQkgKiBleHRlcm5hbF9kZWJ1Z19zdGF0ZSB3aGljaCBoYXMgYmVlbiBwb3B1bGF0ZWQgYnkg dGhlCisJCSAqIGRlYnVnIGlvY3RsLiBUaGUgZXhpc3RpbmcgS1ZNX0FSTTY0X0RFQlVHX0RJUlRZ CisJCSAqIG1lY2hhbmlzbSBlbnN1cmVzIHRoZSByZWdpc3RlcnMgYXJlIHVwZGF0ZWQgb24gdGhl CisJCSAqIHdvcmxkIHN3aXRjaC4KKwkJICovCisJCWlmICh2Y3B1LT5ndWVzdF9kZWJ1ZyAmIEtW TV9HVUVTVERCR19VU0VfSFcpIHsKKwkJCS8qIEVuYWJsZSBicmVha3BvaW50cy93YXRjaHBvaW50 cyAqLworCQkJdmNwdV9zeXNfcmVnKHZjcHUsIE1EU0NSX0VMMSkgfD0gREJHX01EU0NSX01ERTsK KworCQkJdmNwdS0+YXJjaC5kZWJ1Z19wdHIgPSAmdmNwdS0+YXJjaC5leHRlcm5hbF9kZWJ1Z19z dGF0ZTsKKwkJCXZjcHUtPmFyY2guZGVidWdfZmxhZ3MgfD0gS1ZNX0FSTTY0X0RFQlVHX0RJUlRZ OworCQkJdHJhcF9kZWJ1ZyA9IHRydWU7CisJCX0KIAl9CisKKwlCVUdfT04oIXZjcHUtPmd1ZXN0 X2RlYnVnICYmCisJCXZjcHUtPmFyY2guZGVidWdfcHRyICE9ICZ2Y3B1LT5hcmNoLnZjcHVfZGVi dWdfc3RhdGUpOworCisJLyogVHJhcCBkZWJ1ZyByZWdpc3RlciBhY2Nlc3MgKi8KKwlpZiAodHJh cF9kZWJ1ZykKKwkJdmNwdS0+YXJjaC5tZGNyX2VsMiB8PSBNRENSX0VMMl9UREE7CiB9CiAKIHZv aWQga3ZtX2FybV9jbGVhcl9kZWJ1ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUpCiB7Ci0JaWYgKHZj cHUtPmd1ZXN0X2RlYnVnKQorCWlmICh2Y3B1LT5ndWVzdF9kZWJ1ZykgewogCQlyZXN0b3JlX2d1 ZXN0X2RlYnVnX3JlZ3ModmNwdSk7CisKKwkJLyoKKwkJICogSWYgd2Ugd2VyZSB1c2luZyBIVyBk ZWJ1ZyB3ZSBuZWVkIHRvIHJlc3RvcmUgdGhlCisJCSAqIGRlYnVnX3B0ciB0byB0aGUgZ3Vlc3Qg ZGVidWcgc3RhdGUuCisJCSAqLworCQlpZiAodmNwdS0+Z3Vlc3RfZGVidWcgJiBLVk1fR1VFU1RE QkdfVVNFX0hXKQorCQkJa3ZtX2FybV9yZXNldF9kZWJ1Z19wdHIodmNwdSk7CisKKwl9CiB9CmRp ZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9ndWVzdC5jIGIvYXJjaC9hcm02NC9rdm0vZ3Vlc3Qu YwppbmRleCA0OGRlNGY0Li42ZjFiMjQ5IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2bS9ndWVz dC5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL2d1ZXN0LmMKQEAgLTMzNCw2ICszMzQsNyBAQCBpbnQg a3ZtX2FyY2hfdmNwdV9pb2N0bF90cmFuc2xhdGUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCiAj ZGVmaW5lIEtWTV9HVUVTVERCR19WQUxJRF9NQVNLIChLVk1fR1VFU1REQkdfRU5BQkxFIHwgICAg XAogCQkJICAgIEtWTV9HVUVTVERCR19VU0VfU1dfQlAgfCBcCisJCQkgICAgS1ZNX0dVRVNUREJH X1VTRV9IVyB8IFwKIAkJCSAgICBLVk1fR1VFU1REQkdfU0lOR0xFU1RFUCkKIAogLyoqCkBAIC0z NTQsNiArMzU1LDEyIEBAIGludCBrdm1fYXJjaF92Y3B1X2lvY3RsX3NldF9ndWVzdF9kZWJ1Zyhz dHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAKIAlpZiAoZGJnLT5jb250cm9sICYgS1ZNX0dVRVNUREJH X0VOQUJMRSkgewogCQl2Y3B1LT5ndWVzdF9kZWJ1ZyA9IGRiZy0+Y29udHJvbDsKKworCQkvKiBI YXJkd2FyZSBhc3Npc3RlZCBCcmVhayBhbmQgV2F0Y2ggcG9pbnRzICovCisJCWlmICh2Y3B1LT5n dWVzdF9kZWJ1ZyAmIEtWTV9HVUVTVERCR19VU0VfSFcpIHsKKwkJCXZjcHUtPmFyY2guZXh0ZXJu YWxfZGVidWdfc3RhdGUgPSBkYmctPmFyY2g7CisJCX0KKwogCX0gZWxzZSB7CiAJCS8qIElmIG5v dCBlbmFibGVkIGNsZWFyIGFsbCBmbGFncyAqLwogCQl2Y3B1LT5ndWVzdF9kZWJ1ZyA9IDA7CmRp ZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9oYW5kbGVfZXhpdC5jIGIvYXJjaC9hcm02NC9rdm0v aGFuZGxlX2V4aXQuYwppbmRleCBlOWRlMTNlLi42OGEwNzU5IDEwMDY0NAotLS0gYS9hcmNoL2Fy bTY0L2t2bS9oYW5kbGVfZXhpdC5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL2hhbmRsZV9leGl0LmMK QEAgLTEwMyw3ICsxMDMsMTEgQEAgc3RhdGljIGludCBrdm1faGFuZGxlX2d1ZXN0X2RlYnVnKHN0 cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bikKIAlydW4tPmRlYnVnLmFy Y2guaHNyID0gaHNyOwogCiAJc3dpdGNoIChoc3IgPj4gRVNSX0VMeF9FQ19TSElGVCkgeworCWNh c2UgRVNSX0VMeF9FQ19XQVRDSFBUX0xPVzoKKwkJcnVuLT5kZWJ1Zy5hcmNoLmZhciA9IHZjcHUt PmFyY2guZmF1bHQuZmFyX2VsMjsKKwkJLyogZmFsbCB0aHJvdWdoICovCiAJY2FzZSBFU1JfRUx4 X0VDX1NPRlRTVFBfTE9XOgorCWNhc2UgRVNSX0VMeF9FQ19CUkVBS1BUX0xPVzoKIAljYXNlIEVT Ul9FTHhfRUNfQktQVDMyOgogCWNhc2UgRVNSX0VMeF9FQ19CUks2NDoKIAkJYnJlYWs7CkBAIC0x MzIsNiArMTM2LDggQEAgc3RhdGljIGV4aXRfaGFuZGxlX2ZuIGFybV9leGl0X2hhbmRsZXJzW10g PSB7CiAJW0VTUl9FTHhfRUNfSUFCVF9MT1ddCT0ga3ZtX2hhbmRsZV9ndWVzdF9hYm9ydCwKIAlb RVNSX0VMeF9FQ19EQUJUX0xPV10JPSBrdm1faGFuZGxlX2d1ZXN0X2Fib3J0LAogCVtFU1JfRUx4 X0VDX1NPRlRTVFBfTE9XXT0ga3ZtX2hhbmRsZV9ndWVzdF9kZWJ1ZywKKwlbRVNSX0VMeF9FQ19X QVRDSFBUX0xPV109IGt2bV9oYW5kbGVfZ3Vlc3RfZGVidWcsCisJW0VTUl9FTHhfRUNfQlJFQUtQ VF9MT1ddPSBrdm1faGFuZGxlX2d1ZXN0X2RlYnVnLAogCVtFU1JfRUx4X0VDX0JLUFQzMl0JPSBr dm1faGFuZGxlX2d1ZXN0X2RlYnVnLAogCVtFU1JfRUx4X0VDX0JSSzY0XQk9IGt2bV9oYW5kbGVf Z3Vlc3RfZGVidWcsCiB9OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vcmVzZXQuYyBiL2Fy Y2gvYXJtNjQva3ZtL3Jlc2V0LmMKaW5kZXggMGI0MzI2NS4uODYyMDkyNiAxMDA2NDQKLS0tIGEv YXJjaC9hcm02NC9rdm0vcmVzZXQuYworKysgYi9hcmNoL2FybTY0L2t2bS9yZXNldC5jCkBAIC0y Miw2ICsyMiw3IEBACiAjaW5jbHVkZSA8bGludXgvZXJybm8uaD4KICNpbmNsdWRlIDxsaW51eC9r dm1faG9zdC5oPgogI2luY2x1ZGUgPGxpbnV4L2t2bS5oPgorI2luY2x1ZGUgPGxpbnV4L2h3X2Jy ZWFrcG9pbnQuaD4KIAogI2luY2x1ZGUgPGt2bS9hcm1fYXJjaF90aW1lci5oPgogCkBAIC01Niw2 ICs1NywxMiBAQCBzdGF0aWMgYm9vbCBjcHVfaGFzXzMyYml0X2VsMSh2b2lkKQogCXJldHVybiAh IShwZnIwICYgMHgyMCk7CiB9CiAKKy8qKgorICoga3ZtX2FyY2hfZGV2X2lvY3RsX2NoZWNrX2V4 dGVuc2lvbgorICoKKyAqIFdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB0aGUgbnVtYmVyIG9mIEhX IHJlZ2lzdGVycyBpcyB1bmlmb3JtCisgKiBhY3Jvc3MgYWxsIENQVXMgKHNlZSBjcHVpbmZvX3Nh bml0eV9jaGVjaykuCisgKi8KIGludCBrdm1fYXJjaF9kZXZfaW9jdGxfY2hlY2tfZXh0ZW5zaW9u KGxvbmcgZXh0KQogewogCWludCByOwpAQCAtNjQsNiArNzEsMTIgQEAgaW50IGt2bV9hcmNoX2Rl dl9pb2N0bF9jaGVja19leHRlbnNpb24obG9uZyBleHQpCiAJY2FzZSBLVk1fQ0FQX0FSTV9FTDFf MzJCSVQ6CiAJCXIgPSBjcHVfaGFzXzMyYml0X2VsMSgpOwogCQlicmVhazsKKwljYXNlIEtWTV9D QVBfR1VFU1RfREVCVUdfSFdfQlBTOgorCQlyID0gZ2V0X251bV9icnBzKCk7CisJCWJyZWFrOwor CWNhc2UgS1ZNX0NBUF9HVUVTVF9ERUJVR19IV19XUFM6CisJCXIgPSBnZXRfbnVtX3dycHMoKTsK KwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJciA9IDA7CiAJfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91 YXBpL2xpbnV4L2t2bS5oIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCmluZGV4IDcwYWM2NDEu LmYwMjBkZDAgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaAorKysgYi9pbmNs dWRlL3VhcGkvbGludXgva3ZtLmgKQEAgLTgxNyw2ICs4MTcsOCBAQCBzdHJ1Y3Qga3ZtX3BwY19z bW11X2luZm8gewogI2RlZmluZSBLVk1fQ0FQX1MzOTBfSU5KRUNUX0lSUSAxMTMKICNkZWZpbmUg S1ZNX0NBUF9TMzkwX0lSUV9TVEFURSAxMTQKICNkZWZpbmUgS1ZNX0NBUF9QUENfSFdSTkcgMTE1 CisjZGVmaW5lIEtWTV9DQVBfR1VFU1RfREVCVUdfSFdfQlBTIDExNgorI2RlZmluZSBLVk1fQ0FQ X0dVRVNUX0RFQlVHX0hXX1dQUyAxMTcKIAogI2lmZGVmIEtWTV9DQVBfSVJRX1JPVVRJTkcKIAot LSAKMi40LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cmt2bWFybSBtYWlsaW5nIGxpc3QKa3ZtYXJtQGxpc3RzLmNzLmNvbHVtYmlhLmVkdQpodHRwczov L2xpc3RzLmNzLmNvbHVtYmlhLmVkdS9tYWlsbWFuL2xpc3RpbmZvL2t2bWFybQo=