From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Alex=20Benn=C3=A9e?= Subject: [PATCH v7 09/11] KVM: arm64: guest debug, HW assisted debug support Date: Wed, 1 Jul 2015 19:29:01 +0100 Message-ID: <1435775343-20034-10-git-send-email-alex.bennee@linaro.org> References: <1435775343-20034-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: <1435775343-20034-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 ICAtIGFkZCByLWIgdGFnCi0tLQogRG9jdW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9hcGkudHh0ICAg ICAgfCAgNyArKysrKy0KIGFyY2gvYXJtNjQvaW5jbHVkZS9hc20vaHdfYnJlYWtwb2ludC5oIHwg IDQgKysrKwogYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oICAgICAgfCAgNiArKysr LQogYXJjaC9hcm02NC9rZXJuZWwvaHdfYnJlYWtwb2ludC5jICAgICAgfCAgNCArKy0tCiBhcmNo L2FybTY0L2t2bS9kZWJ1Zy5jICAgICAgICAgICAgICAgICB8IDQwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KIGFyY2gvYXJtNjQva3ZtL2d1ZXN0LmMgICAgICAgICAgICAgICAg IHwgIDcgKysrKysrCiBhcmNoL2FybTY0L2t2bS9oYW5kbGVfZXhpdC5jICAgICAgICAgICB8ICA2 ICsrKysrCiBhcmNoL2FybTY0L2t2bS9yZXNldC5jICAgICAgICAgICAgICAgICB8IDEyICsrKysr KysrKysKIGFyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMgICAgICAgICAgICAgIHwgIDMgLS0tCiBp bmNsdWRlL3VhcGkvbGludXgva3ZtLmggICAgICAgICAgICAgICB8ICAyICsrCiAxMCBmaWxlcyBj aGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL3ZpcnR1YWwva3ZtL2FwaS50eHQgYi9Eb2N1bWVudGF0aW9uL3ZpcnR1YWwv a3ZtL2FwaS50eHQKaW5kZXggMzNjODE0My4uYWRhNTdkZiAxMDA2NDQKLS0tIGEvRG9jdW1lbnRh dGlvbi92aXJ0dWFsL2t2bS9hcGkudHh0CisrKyBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0v YXBpLnR4dApAQCAtMjY2OCw3ICsyNjY4LDcgQEAgVGhlIHRvcCAxNiBiaXRzIG9mIHRoZSBjb250 cm9sIGZpZWxkIGFyZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgY29udHJvbAogZmxhZ3Mgd2hpY2gg Y2FuIGluY2x1ZGUgdGhlIGZvbGxvd2luZzoKIAogICAtIEtWTV9HVUVTVERCR19VU0VfU1dfQlA6 ICAgICB1c2luZyBzb2Z0d2FyZSBicmVha3BvaW50cyBbeDg2LCBhcm02NF0KLSAgLSBLVk1fR1VF U1REQkdfVVNFX0hXX0JQOiAgICAgdXNpbmcgaGFyZHdhcmUgYnJlYWtwb2ludHMgW3g4NiwgczM5 MF0KKyAgLSBLVk1fR1VFU1REQkdfVVNFX0hXX0JQOiAgICAgdXNpbmcgaGFyZHdhcmUgYnJlYWtw b2ludHMgW3g4NiwgczM5MCwgYXJtNjRdCiAgIC0gS1ZNX0dVRVNUREJHX0lOSkVDVF9EQjogICAg IGluamVjdCBEQiB0eXBlIGV4Y2VwdGlvbiBbeDg2XQogICAtIEtWTV9HVUVTVERCR19JTkpFQ1Rf QlA6ICAgICBpbmplY3QgQlAgdHlwZSBleGNlcHRpb24gW3g4Nl0KICAgLSBLVk1fR1VFU1REQkdf RVhJVF9QRU5ESU5HOiAgdHJpZ2dlciBhbiBpbW1lZGlhdGUgZ3Vlc3QgZXhpdCBbczM5MF0KQEAg LTI2ODMsNiArMjY4MywxMSBAQCB1cGRhdGVkIHRvIHRoZSBjb3JyZWN0IChzdXBwbGllZCkgdmFs dWVzLgogVGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBzdHJ1Y3R1cmUgaXMgYXJjaGl0ZWN0dXJlIHNw ZWNpZmljIGFuZAogdHlwaWNhbGx5IGNvbnRhaW5zIGEgc2V0IG9mIGRlYnVnIHJlZ2lzdGVycy4K IAorRm9yIGFybTY0IHRoZSBudW1iZXIgb2YgZGVidWcgcmVnaXN0ZXJzIGlzIGltcGxlbWVudGF0 aW9uIGRlZmluZWQgYW5kCitjYW4gYmUgZGV0ZXJtaW5lZCBieSBxdWVyeWluZyB0aGUgS1ZNX0NB UF9HVUVTVF9ERUJVR19IV19CUFMgYW5kCitLVk1fQ0FQX0dVRVNUX0RFQlVHX0hXX1dQUyBjYXBh YmlsaXRpZXMgd2hpY2ggcmV0dXJuIGEgcG9zaXRpdmUgbnVtYmVyCitpbmRpY2F0aW5nIHRoZSBu dW1iZXIgb2Ygc3VwcG9ydGVkIHJlZ2lzdGVycy4KKwogV2hlbiBkZWJ1ZyBldmVudHMgZXhpdCB0 aGUgbWFpbiBydW4gbG9vcCB3aXRoIHRoZSByZWFzb24KIEtWTV9FWElUX0RFQlVHIHdpdGggdGhl IGt2bV9kZWJ1Z19leGl0X2FyY2ggcGFydCBvZiB0aGUga3ZtX3J1bgogc3RydWN0dXJlIGNvbnRh aW5pbmcgYXJjaGl0ZWN0dXJlIHNwZWNpZmljIGRlYnVnIGluZm9ybWF0aW9uLgpkaWZmIC0tZ2l0 IGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9od19icmVha3BvaW50LmggYi9hcmNoL2FybTY0L2lu Y2x1ZGUvYXNtL2h3X2JyZWFrcG9pbnQuaAppbmRleCA1MmI0ODRiLi45ZGEyODI0IDEwMDY0NAot LS0gYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2h3X2JyZWFrcG9pbnQuaAorKysgYi9hcmNoL2Fy bTY0L2luY2x1ZGUvYXNtL2h3X2JyZWFrcG9pbnQuaApAQCAtMTMwLDYgKzEzMCwxMCBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgcHRyYWNlX2h3X2NvcHlfdGhyZWFkKHN0cnVjdCB0YXNrX3N0cnVjdCAq dGFzaykKIH0KICNlbmRpZgogCisvKiBEZXRlcm1pbmUgbnVtYmVyIG9mIEJSUC9XUlAgcmVnaXN0 ZXJzIGF2YWlsYWJsZS4gKi8KK2V4dGVybiBpbnQgZ2V0X251bV9icnBzKHZvaWQpOworZXh0ZXJu IGludCBnZXRfbnVtX3dycHModm9pZCk7CisKIGV4dGVybiBzdHJ1Y3QgcG11IHBlcmZfb3BzX2Jw OwogCiAjZW5kaWYJLyogX19LRVJORUxfXyAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9pbmNs dWRlL2FzbS9rdm1faG9zdC5oIGIvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1faG9zdC5oCmlu ZGV4IDQ2MWQyODguLjZjNzQ1ZTAgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20v a3ZtX2hvc3QuaAorKysgYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKQEAgLTEx NiwxMyArMTE2LDE3IEBAIHN0cnVjdCBrdm1fdmNwdV9hcmNoIHsKIAkgKiBkZWJ1Z2dpbmcgdGhl IGd1ZXN0IGZyb20gdGhlIGhvc3QgYW5kIHRvIG1haW50YWluIHNlcGFyYXRlIGhvc3QgYW5kCiAJ ICogZ3Vlc3Qgc3RhdGUgZHVyaW5nIHdvcmxkIHN3aXRjaGVzLiB2Y3B1X2RlYnVnX3N0YXRlIGFy ZSB0aGUgZGVidWcKIAkgKiByZWdpc3RlcnMgb2YgdGhlIHZjcHUgYXMgdGhlIGd1ZXN0IHNlZXMg dGhlbS4gIGhvc3RfZGVidWdfc3RhdGUgYXJlCi0JICogdGhlIGhvc3QgcmVnaXN0ZXJzIHdoaWNo IGFyZSBzYXZlZCBhbmQgcmVzdG9yZWQgZHVyaW5nIHdvcmxkIHN3aXRjaGVzLgorCSAqIHRoZSBo b3N0IHJlZ2lzdGVycyB3aGljaCBhcmUgc2F2ZWQgYW5kIHJlc3RvcmVkIGR1cmluZworCSAqIHdv cmxkIHN3aXRjaGVzLiBleHRlcm5hbF9kZWJ1Z19zdGF0ZSBjb250YWlucyB0aGUgZGVidWcKKwkg KiB2YWx1ZXMgd2Ugd2FudCB0byBkZWJ1ZyB0aGUgZ3Vlc3QuIFRoaXMgaXMgc2V0IHZpYSB0aGUK KwkgKiBLVk1fU0VUX0dVRVNUX0RFQlVHIGlvY3RsLgogCSAqCiAJICogZGVidWdfcHRyIHBvaW50 cyB0byB0aGUgc2V0IG9mIGRlYnVnIHJlZ2lzdGVycyB0aGF0IHNob3VsZCBiZSBsb2FkZWQKIAkg KiBvbnRvIHRoZSBoYXJkd2FyZSB3aGVuIHJ1bm5pbmcgdGhlIGd1ZXN0LgogCSAqLwogCXN0cnVj dCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCAqZGVidWdfcHRyOwogCXN0cnVjdCBrdm1fZ3Vlc3RfZGVi dWdfYXJjaCB2Y3B1X2RlYnVnX3N0YXRlOworCXN0cnVjdCBrdm1fZ3Vlc3RfZGVidWdfYXJjaCBl eHRlcm5hbF9kZWJ1Z19zdGF0ZTsKIAogCS8qIFBvaW50ZXIgdG8gaG9zdCBDUFUgY29udGV4dCAq LwogCWt2bV9jcHVfY29udGV4dF90ICpob3N0X2NwdV9jb250ZXh0OwpkaWZmIC0tZ2l0IGEvYXJj aC9hcm02NC9rZXJuZWwvaHdfYnJlYWtwb2ludC5jIGIvYXJjaC9hcm02NC9rZXJuZWwvaHdfYnJl YWtwb2ludC5jCmluZGV4IGU3ZDkzNGQuLmFjMDdmMmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQv a2VybmVsL2h3X2JyZWFrcG9pbnQuYworKysgYi9hcmNoL2FybTY0L2tlcm5lbC9od19icmVha3Bv aW50LmMKQEAgLTUwLDEzICs1MCwxMyBAQCBzdGF0aWMgaW50IGNvcmVfbnVtX2JycHM7CiBzdGF0 aWMgaW50IGNvcmVfbnVtX3dycHM7CiAKIC8qIERldGVybWluZSBudW1iZXIgb2YgQlJQIHJlZ2lz dGVycyBhdmFpbGFibGUuICovCi1zdGF0aWMgaW50IGdldF9udW1fYnJwcyh2b2lkKQoraW50IGdl dF9udW1fYnJwcyh2b2lkKQogewogCXJldHVybiAoKHJlYWRfY3B1aWQoSURfQUE2NERGUjBfRUwx KSA+PiAxMikgJiAweGYpICsgMTsKIH0KIAogLyogRGV0ZXJtaW5lIG51bWJlciBvZiBXUlAgcmVn aXN0ZXJzIGF2YWlsYWJsZS4gKi8KLXN0YXRpYyBpbnQgZ2V0X251bV93cnBzKHZvaWQpCitpbnQg Z2V0X251bV93cnBzKHZvaWQpCiB7CiAJcmV0dXJuICgocmVhZF9jcHVpZChJRF9BQTY0REZSMF9F TDEpID4+IDIwKSAmIDB4ZikgKyAxOwogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vZGVi dWcuYyBiL2FyY2gvYXJtNjQva3ZtL2RlYnVnLmMKaW5kZXggZmZlZmI5Ny4uNDZiNzNkNyAxMDA2 NDQKLS0tIGEvYXJjaC9hcm02NC9rdm0vZGVidWcuYworKysgYi9hcmNoL2FybTY0L2t2bS9kZWJ1 Zy5jCkBAIC0xMDUsMTAgKzEwNSw2IEBAIHZvaWQga3ZtX2FybV9zZXR1cF9kZWJ1ZyhzdHJ1Y3Qg a3ZtX3ZjcHUgKnZjcHUpCiAJCQkJTURDUl9FTDJfVERSQSB8CiAJCQkJTURDUl9FTDJfVERPU0Ep OwogCi0JLyogVHJhcCBvbiBhY2Nlc3MgdG8gZGVidWcgcmVnaXN0ZXJzPyAqLwotCWlmICh0cmFw X2RlYnVnKQotCQl2Y3B1LT5hcmNoLm1kY3JfZWwyIHw9IE1EQ1JfRUwyX1REQTsKLQogCS8qIElz IEd1ZXN0IGRlYnVnZ2luZyBpbiBlZmZlY3Q/ICovCiAJaWYgKHZjcHUtPmd1ZXN0X2RlYnVnKSB7 CiAJCS8qIFJvdXRlIGFsbCBzb2Z0d2FyZSBkZWJ1ZyBleGNlcHRpb25zIHRvIEVMMiAqLwpAQCAt MTQzLDExICsxMzksNDUgQEAgdm9pZCBrdm1fYXJtX3NldHVwX2RlYnVnKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSkKIAkJfSBlbHNlIHsKIAkJCXZjcHVfc3lzX3JlZyh2Y3B1LCBNRFNDUl9FTDEpICY9 IH5EQkdfTURTQ1JfU1M7CiAJCX0KKworCQkvKgorCQkgKiBIVyBCcmVha3BvaW50cyBhbmQgd2F0 Y2hwb2ludHMKKwkJICoKKwkJICogV2Ugc2ltcGx5IHN3aXRjaCB0aGUgZGVidWdfcHRyIHRvIHBv aW50IHRvIG91ciBuZXcKKwkJICogZXh0ZXJuYWxfZGVidWdfc3RhdGUgd2hpY2ggaGFzIGJlZW4g cG9wdWxhdGVkIGJ5IHRoZQorCQkgKiBkZWJ1ZyBpb2N0bC4gVGhlIGV4aXN0aW5nIEtWTV9BUk02 NF9ERUJVR19ESVJUWQorCQkgKiBtZWNoYW5pc20gZW5zdXJlcyB0aGUgcmVnaXN0ZXJzIGFyZSB1 cGRhdGVkIG9uIHRoZQorCQkgKiB3b3JsZCBzd2l0Y2guCisJCSAqLworCQlpZiAodmNwdS0+Z3Vl c3RfZGVidWcgJiBLVk1fR1VFU1REQkdfVVNFX0hXKSB7CisJCQkvKiBFbmFibGUgYnJlYWtwb2lu dHMvd2F0Y2hwb2ludHMgKi8KKwkJCXZjcHVfc3lzX3JlZyh2Y3B1LCBNRFNDUl9FTDEpIHw9IERC R19NRFNDUl9NREU7CisKKwkJCXZjcHUtPmFyY2guZGVidWdfcHRyID0gJnZjcHUtPmFyY2guZXh0 ZXJuYWxfZGVidWdfc3RhdGU7CisJCQl2Y3B1LT5hcmNoLmRlYnVnX2ZsYWdzIHw9IEtWTV9BUk02 NF9ERUJVR19ESVJUWTsKKwkJCXRyYXBfZGVidWcgPSB0cnVlOworCQl9CiAJfQorCisJQlVHX09O KCF2Y3B1LT5ndWVzdF9kZWJ1ZyAmJgorCQl2Y3B1LT5hcmNoLmRlYnVnX3B0ciAhPSAmdmNwdS0+ YXJjaC52Y3B1X2RlYnVnX3N0YXRlKTsKKworCS8qIFRyYXAgZGVidWcgcmVnaXN0ZXIgYWNjZXNz ICovCisJaWYgKHRyYXBfZGVidWcpCisJCXZjcHUtPmFyY2gubWRjcl9lbDIgfD0gTURDUl9FTDJf VERBOwogfQogCiB2b2lkIGt2bV9hcm1fY2xlYXJfZGVidWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 KQogewotCWlmICh2Y3B1LT5ndWVzdF9kZWJ1ZykKKwlpZiAodmNwdS0+Z3Vlc3RfZGVidWcpIHsK IAkJcmVzdG9yZV9ndWVzdF9kZWJ1Z19yZWdzKHZjcHUpOworCisJCS8qCisJCSAqIElmIHdlIHdl cmUgdXNpbmcgSFcgZGVidWcgd2UgbmVlZCB0byByZXN0b3JlIHRoZQorCQkgKiBkZWJ1Z19wdHIg dG8gdGhlIGd1ZXN0IGRlYnVnIHN0YXRlLgorCQkgKi8KKwkJaWYgKHZjcHUtPmd1ZXN0X2RlYnVn ICYgS1ZNX0dVRVNUREJHX1VTRV9IVykKKwkJCWt2bV9hcm1fcmVzZXRfZGVidWdfcHRyKHZjcHUp OworCisJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vZ3Vlc3QuYyBiL2FyY2gvYXJt NjQva3ZtL2d1ZXN0LmMKaW5kZXggNDhkZTRmNC4uNmYxYjI0OSAxMDA2NDQKLS0tIGEvYXJjaC9h cm02NC9rdm0vZ3Vlc3QuYworKysgYi9hcmNoL2FybTY0L2t2bS9ndWVzdC5jCkBAIC0zMzQsNiAr MzM0LDcgQEAgaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfdHJhbnNsYXRlKHN0cnVjdCBrdm1fdmNw dSAqdmNwdSwKIAogI2RlZmluZSBLVk1fR1VFU1REQkdfVkFMSURfTUFTSyAoS1ZNX0dVRVNUREJH X0VOQUJMRSB8ICAgIFwKIAkJCSAgICBLVk1fR1VFU1REQkdfVVNFX1NXX0JQIHwgXAorCQkJICAg IEtWTV9HVUVTVERCR19VU0VfSFcgfCBcCiAJCQkgICAgS1ZNX0dVRVNUREJHX1NJTkdMRVNURVAp CiAKIC8qKgpAQCAtMzU0LDYgKzM1NSwxMiBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF9zZXRf Z3Vlc3RfZGVidWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCiAJaWYgKGRiZy0+Y29udHJvbCAm IEtWTV9HVUVTVERCR19FTkFCTEUpIHsKIAkJdmNwdS0+Z3Vlc3RfZGVidWcgPSBkYmctPmNvbnRy b2w7CisKKwkJLyogSGFyZHdhcmUgYXNzaXN0ZWQgQnJlYWsgYW5kIFdhdGNoIHBvaW50cyAqLwor CQlpZiAodmNwdS0+Z3Vlc3RfZGVidWcgJiBLVk1fR1VFU1REQkdfVVNFX0hXKSB7CisJCQl2Y3B1 LT5hcmNoLmV4dGVybmFsX2RlYnVnX3N0YXRlID0gZGJnLT5hcmNoOworCQl9CisKIAl9IGVsc2Ug ewogCQkvKiBJZiBub3QgZW5hYmxlZCBjbGVhciBhbGwgZmxhZ3MgKi8KIAkJdmNwdS0+Z3Vlc3Rf ZGVidWcgPSAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaGFuZGxlX2V4aXQuYyBiL2Fy Y2gvYXJtNjQva3ZtL2hhbmRsZV9leGl0LmMKaW5kZXggZTlkZTEzZS4uNjhhMDc1OSAxMDA2NDQK LS0tIGEvYXJjaC9hcm02NC9rdm0vaGFuZGxlX2V4aXQuYworKysgYi9hcmNoL2FybTY0L2t2bS9o YW5kbGVfZXhpdC5jCkBAIC0xMDMsNyArMTAzLDExIEBAIHN0YXRpYyBpbnQga3ZtX2hhbmRsZV9n dWVzdF9kZWJ1ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcnVuICpydW4pCiAJ cnVuLT5kZWJ1Zy5hcmNoLmhzciA9IGhzcjsKIAogCXN3aXRjaCAoaHNyID4+IEVTUl9FTHhfRUNf U0hJRlQpIHsKKwljYXNlIEVTUl9FTHhfRUNfV0FUQ0hQVF9MT1c6CisJCXJ1bi0+ZGVidWcuYXJj aC5mYXIgPSB2Y3B1LT5hcmNoLmZhdWx0LmZhcl9lbDI7CisJCS8qIGZhbGwgdGhyb3VnaCAqLwog CWNhc2UgRVNSX0VMeF9FQ19TT0ZUU1RQX0xPVzoKKwljYXNlIEVTUl9FTHhfRUNfQlJFQUtQVF9M T1c6CiAJY2FzZSBFU1JfRUx4X0VDX0JLUFQzMjoKIAljYXNlIEVTUl9FTHhfRUNfQlJLNjQ6CiAJ CWJyZWFrOwpAQCAtMTMyLDYgKzEzNiw4IEBAIHN0YXRpYyBleGl0X2hhbmRsZV9mbiBhcm1fZXhp dF9oYW5kbGVyc1tdID0gewogCVtFU1JfRUx4X0VDX0lBQlRfTE9XXQk9IGt2bV9oYW5kbGVfZ3Vl c3RfYWJvcnQsCiAJW0VTUl9FTHhfRUNfREFCVF9MT1ddCT0ga3ZtX2hhbmRsZV9ndWVzdF9hYm9y dCwKIAlbRVNSX0VMeF9FQ19TT0ZUU1RQX0xPV109IGt2bV9oYW5kbGVfZ3Vlc3RfZGVidWcsCisJ W0VTUl9FTHhfRUNfV0FUQ0hQVF9MT1ddPSBrdm1faGFuZGxlX2d1ZXN0X2RlYnVnLAorCVtFU1Jf RUx4X0VDX0JSRUFLUFRfTE9XXT0ga3ZtX2hhbmRsZV9ndWVzdF9kZWJ1ZywKIAlbRVNSX0VMeF9F Q19CS1BUMzJdCT0ga3ZtX2hhbmRsZV9ndWVzdF9kZWJ1ZywKIAlbRVNSX0VMeF9FQ19CUks2NF0J PSBrdm1faGFuZGxlX2d1ZXN0X2RlYnVnLAogfTsKZGlmZiAtLWdpdCBhL2FyY2gvYXJtNjQva3Zt L3Jlc2V0LmMgYi9hcmNoL2FybTY0L2t2bS9yZXNldC5jCmluZGV4IDBiNDMyNjUuLjIxZDVhNjIg MTAwNjQ0Ci0tLSBhL2FyY2gvYXJtNjQva3ZtL3Jlc2V0LmMKKysrIGIvYXJjaC9hcm02NC9rdm0v cmVzZXQuYwpAQCAtNTYsNiArNTYsMTIgQEAgc3RhdGljIGJvb2wgY3B1X2hhc18zMmJpdF9lbDEo dm9pZCkKIAlyZXR1cm4gISEocGZyMCAmIDB4MjApOwogfQogCisvKioKKyAqIGt2bV9hcmNoX2Rl dl9pb2N0bF9jaGVja19leHRlbnNpb24KKyAqCisgKiBXZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQg dGhlIG51bWJlciBvZiBIVyByZWdpc3RlcnMgaXMgdW5pZm9ybQorICogYWNyb3NzIGFsbCBDUFVz IChzZWUgY3B1aW5mb19zYW5pdHlfY2hlY2spLgorICovCiBpbnQga3ZtX2FyY2hfZGV2X2lvY3Rs X2NoZWNrX2V4dGVuc2lvbihsb25nIGV4dCkKIHsKIAlpbnQgcjsKQEAgLTY0LDYgKzcwLDEyIEBA IGludCBrdm1fYXJjaF9kZXZfaW9jdGxfY2hlY2tfZXh0ZW5zaW9uKGxvbmcgZXh0KQogCWNhc2Ug S1ZNX0NBUF9BUk1fRUwxXzMyQklUOgogCQlyID0gY3B1X2hhc18zMmJpdF9lbDEoKTsKIAkJYnJl YWs7CisJY2FzZSBLVk1fQ0FQX0dVRVNUX0RFQlVHX0hXX0JQUzoKKwkJciA9IGdldF9udW1fYnJw cygpOworCQlicmVhazsKKwljYXNlIEtWTV9DQVBfR1VFU1RfREVCVUdfSFdfV1BTOgorCQlyICA9 IGdldF9udW1fd3JwcygpOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlyID0gMDsKIAl9CmRpZmYg LS1naXQgYS9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jIGIvYXJjaC9hcm02NC9rdm0vc3lzX3Jl Z3MuYwppbmRleCAzMjY3Yjk2Li5mNzUzYTY3IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2bS9z eXNfcmVncy5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMKQEAgLTM2Miw5ICszNjIs NiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgdHJhcF93Y3Ioc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAog CQkJdmNwdS0+YXJjaC52Y3B1X2RlYnVnX3N0YXRlLmRiZ193Y3JbcmQtPnJlZ10pOwogCX0KIAot CXRyYWNlX3RyYXBfcmVnKF9fZnVuY19fLCByZC0+cmVnLCBwLT5pc193cml0ZSwKLQkJdmNwdS0+ YXJjaC52Y3B1X2RlYnVnX3N0YXRlLmRiZ193Y3JbcmQtPnJlZ10pOwotCiAJcmV0dXJuIHRydWU7 CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9saW51eC9rdm0uaCBiL2luY2x1ZGUvdWFw aS9saW51eC9rdm0uaAppbmRleCA3MGFjNjQxLi5mMDIwZGQwIDEwMDY0NAotLS0gYS9pbmNsdWRl L3VhcGkvbGludXgva3ZtLmgKKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2t2bS5oCkBAIC04MTcs NiArODE3LDggQEAgc3RydWN0IGt2bV9wcGNfc21tdV9pbmZvIHsKICNkZWZpbmUgS1ZNX0NBUF9T MzkwX0lOSkVDVF9JUlEgMTEzCiAjZGVmaW5lIEtWTV9DQVBfUzM5MF9JUlFfU1RBVEUgMTE0CiAj ZGVmaW5lIEtWTV9DQVBfUFBDX0hXUk5HIDExNQorI2RlZmluZSBLVk1fQ0FQX0dVRVNUX0RFQlVH X0hXX0JQUyAxMTYKKyNkZWZpbmUgS1ZNX0NBUF9HVUVTVF9ERUJVR19IV19XUFMgMTE3CiAKICNp ZmRlZiBLVk1fQ0FQX0lSUV9ST1VUSU5HCiAKLS0gCjIuNC41CgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGluZyBsaXN0Cmt2bWFybUBs aXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJpYS5lZHUvbWFpbG1h bi9saXN0aW5mby9rdm1hcm0K