From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex =?utf-8?Q?Benn=C3=A9e?= Subject: Re: [PATCH v2 09/10] KVM: arm64: trap nested debug register access Date: Mon, 13 Apr 2015 08:59:21 +0100 Message-ID: <877ftglaqu.fsf@linaro.org> References: <1427814488-28467-1-git-send-email-alex.bennee@linaro.org> <1427814488-28467-10-git-send-email-alex.bennee@linaro.org> <20150410123830.GB3227@hawk.usersys.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Catalin Marinas , kvm@vger.kernel.org, marc.zyngier@arm.com, jan.kiszka@siemens.com, Will Deacon , open list , dahi@linux.vnet.ibm.com, linux-arm-kernel@lists.infradead.org, zhichao.huang@linaro.org, r65777@freescale.com, pbonzini@redhat.com, bp@suse.de, Gleb Natapov , kvmarm@lists.cs.columbia.edu To: Andrew Jones Return-path: In-reply-to: <20150410123830.GB3227@hawk.usersys.redhat.com> 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 CkFuZHJldyBKb25lcyA8ZHJqb25lc0ByZWRoYXQuY29tPiB3cml0ZXM6Cgo+IE9uIFR1ZSwgTWFy IDMxLCAyMDE1IGF0IDA0OjA4OjA3UE0gKzAxMDAsIEFsZXggQmVubsOpZSB3cm90ZToKPj4gV2hl biB3ZSBhcmUgdXNpbmcgdGhlIGhhcmR3YXJlIHJlZ2lzdGVycyBmb3IgZ3Vlc3QgZGVidWcgd2Ug bmVlZCB0byBkZWFsCj4+IHdpdGggdGhlIGd1ZXN0cyBhY2Nlc3MgdG8gdGhlbS4gVGhlcmUgaXMg YWxyZWFkeSBhIG1lY2hhbmlzbSBmb3IgZGVhbGluZwo+PiB3aXRoIHRoZXNlIGFjY2Vzc2VzIHNv IHdlIGJ1aWxkIG9uIHRvcCBvZiB0aGF0Lgo+PiAKPj4gICAtIG1kc2NyX2VsMV9iaXRzIGlzIHJl bmFtZWQgYXMgd2Ugc2F2ZSB0aGUgd2hvbGUgcmVnaXN0ZXIKPj4gICAtIGFueSBhY2Nlc3MgdG8g bWRzY3JfZWwxIGlzIG5vdyBzdG9yZWQgaW4gdGhlIG1pcnJvciBsb2NhdGlvbgo+PiAgIC0gaWYg d2UgYXJlIHVzaW5nIEhXIGFzc2lzdGVkIGRlYnVnIHdlIGRvIHRoZSBzYW1lIHdpdGggREJHW1dC XVtDVl1SCj4+IAo+PiBUaGVyZSBpcyBvbmUgcmVnaXN0ZXIgKE1EQ0NJTlRfRUwxKSB3aGljaCBn dWVzdCBkZWJ1ZyBkb2Vzbid0IGNhcmUgYWJvdXQKPj4gc28gdGhpcyBiZWhhdmVzIGFzIGJlZm9y ZS4KPj4gCj4+IFNpZ25lZC1vZmYtYnk6IEFsZXggQmVubsOpZSA8YWxleC5iZW5uZWVAbGluYXJv Lm9yZz4KPj4gCj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0 LmggYi9hcmNoL2FybTY0L2luY2x1ZGUvYXNtL2t2bV9ob3N0LmgKPj4gaW5kZXggMmMzNTljOS4u M2QzMmQ0NSAxMDA2NDQKPj4gLS0tIGEvYXJjaC9hcm02NC9pbmNsdWRlL2FzbS9rdm1faG9zdC5o Cj4+ICsrKyBiL2FyY2gvYXJtNjQvaW5jbHVkZS9hc20va3ZtX2hvc3QuaAo+PiBAQCAtMTIyLDEw ICsxMjIsMTMgQEAgc3RydWN0IGt2bV92Y3B1X2FyY2ggewo+PiAgCSAqIGhlcmUuCj4+ICAJICov Cj4+ICAKPj4gLQkvKiBSZWdpc3RlcnMgcHJlIGFueSBndWVzdCBkZWJ1ZyBtYW5pcHVsYXRpb25z ICovCj4+ICsJLyogUmVnaXN0ZXJzIGJlZm9yZSBhbnkgZ3Vlc3QgZGVidWcgbWFuaXB1bGF0aW9u cy4gVGhlc2UKPgo+IHN0YXJ0aW5nIGNvbW1lbnQgLyogb24gb3duIGxpbmUKPgo+PiArCSAqIHNo YWRvdyByZWdpc3RlcnMgYXJlIHVwZGF0ZWQgYnkgdGhlIGt2bV9oYW5kbGVfc3lzX3JlZwo+PiAr CSAqIHRyYXAgaGFuZGxlciBpZiB0aGUgZ3Vlc3QgYWNjZXNzZXMgb3IgdXBkYXRlcyB0aGVtCj4+ ICsJICovCj4+ICAJc3RydWN0IHsKPj4gIAkJdTMyCXBzdGF0ZV9zc19iaXQ7Cj4+IC0JCXUzMglt ZHNjcl9lbDFfYml0czsKPj4gKwkJdTMyCW1kc2NyX2VsMTsKPj4gIAo+PiAgCQlzdHJ1Y3Qga3Zt X2d1ZXN0X2RlYnVnX2FyY2ggZGVidWdfcmVnczsKPj4gIAl9IGRlYnVnX3NhdmVkX3JlZ3M7Cj4+ IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9kZWJ1Zy5jIGIvYXJjaC9hcm02NC9rdm0vZGVi dWcuYwo+PiBpbmRleCAzYjM2OGYzLi42MzhjMTExIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0 L2t2bS9kZWJ1Zy5jCj4+ICsrKyBiL2FyY2gvYXJtNjQva3ZtL2RlYnVnLmMKPj4gQEAgLTU1LDgg KzU1LDYgQEAgdm9pZCBrdm1fYXJjaF9zZXR1cF9kZWJ1ZyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUp Cj4+ICAJdmNwdS0+YXJjaC5tZGNyX2VsMiB8PSAoTURDUl9FTDJfVFBNIHwgTURDUl9FTDJfVFBN Q1IpOwo+PiAgCXZjcHUtPmFyY2gubWRjcl9lbDIgfD0gKE1EQ1JfRUwyX1REUkEgfCBNRENSX0VM Ml9URE9TQSk7Cj4+ICAKPj4gLQl0cmFjZV9rdm1fYXJjaF9zZXR1cF9kZWJ1Z19yZWczMigiTURD Ul9FTDIiLCB2Y3B1LT5hcmNoLm1kY3JfZWwyKTsKPj4gLQo+Cj4gSSBndWVzcyBJJ2xsIHNlZSB0 aGlzIGNvbWUgYmFjayBpbiB0aGUgbmV4dCBwYXRjaC4gWW91IG11c3QgYmUgcGxheWluZwo+ICdu b3cgeW91IHNlZSBtZSwgbm93IHlvdSBkb24ndCcKCk9vcHMsIG1pc3NlZCB0aGF0IG9uIHRoZSBy ZWJhc2UuCgo+Cj4+ICAJLyoKPj4gIAkgKiBJZiB3ZSBhcmUgbm90IHRyZWF0aW5nIGRlYnVnIHJl Z2lzdGVycyBhcmUgZGlydHkgd2UgbmVlZAo+PiAgCSAqIHRvIHRyYXAgaWYgdGhlIGd1ZXN0IHN0 YXJ0cyBhY2Nlc3NpbmcgdGhlbS4KPj4gQEAgLTcxLDggKzY5LDEwIEBAIHZvaWQga3ZtX2FyY2hf c2V0dXBfZGVidWcoc3RydWN0IGt2bV92Y3B1ICp2Y3B1KQo+PiAgCQkvKiBTYXZlIHBzdGF0ZS9t ZHNjciAqLwo+PiAgCQl2Y3B1X2RlYnVnX3NhdmVkX3JlZyh2Y3B1LCBwc3RhdGVfc3NfYml0KSA9 Cj4+ICAJCQkqdmNwdV9jcHNyKHZjcHUpICYgREJHX1NQU1JfU1M7Cj4+IC0JCXZjcHVfZGVidWdf c2F2ZWRfcmVnKHZjcHUsIG1kc2NyX2VsMV9iaXRzKSA9Cj4+IC0JCQl2Y3B1X3N5c19yZWcodmNw dSwgTURTQ1JfRUwxKSAmIE1EU0NSX0VMMV9ERUJVR19CSVRTOwo+PiArCj4+ICsJCXZjcHVfZGVi dWdfc2F2ZWRfcmVnKHZjcHUsIG1kc2NyX2VsMSkgPQo+PiArCQkJdmNwdV9zeXNfcmVnKHZjcHUs IE1EU0NSX0VMMSk7Cj4+ICsKPj4gIAkJLyoKPj4gIAkJICogU2luZ2xlIFN0ZXAgKEFSTSBBUk0g RDIuMTIuMyBUaGUgc29mdHdhcmUgc3RlcCBzdGF0ZQo+PiAgCQkgKiBtYWNoaW5lKQo+PiBAQCAt MTYxLDkgKzE2MSw4IEBAIHZvaWQga3ZtX2FyY2hfY2xlYXJfZGVidWcoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1KQo+PiAgCQkqdmNwdV9jcHNyKHZjcHUpICY9IH5EQkdfU1BTUl9TUzsKPj4gIAkJKnZj cHVfY3Bzcih2Y3B1KSB8PSB2Y3B1X2RlYnVnX3NhdmVkX3JlZyh2Y3B1LCBwc3RhdGVfc3NfYml0 KTsKPj4gIAo+PiAtCQl2Y3B1X3N5c19yZWcodmNwdSwgTURTQ1JfRUwxKSAmPSB+TURTQ1JfRUwx X0RFQlVHX0JJVFM7Cj4+IC0JCXZjcHVfc3lzX3JlZyh2Y3B1LCBNRFNDUl9FTDEpIHw9Cj4+IC0J CQl2Y3B1X2RlYnVnX3NhdmVkX3JlZyh2Y3B1LCBtZHNjcl9lbDFfYml0cyk7Cj4+ICsJCXZjcHVf c3lzX3JlZyh2Y3B1LCBNRFNDUl9FTDEpID0KPj4gKwkJCXZjcHVfZGVidWdfc2F2ZWRfcmVnKHZj cHUsIG1kc2NyX2VsMSk7Cj4+ICAKPj4gIAkJLyoKPj4gIAkJICogSWYgd2Ugd2VyZSB1c2luZyBI VyBkZWJ1ZyB3ZSBuZWVkIHRvIHJlc3RvcmUgdGhlCj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0 L2t2bS9zeXNfcmVncy5jIGIvYXJjaC9hcm02NC9rdm0vc3lzX3JlZ3MuYwo+PiBpbmRleCBiZTli MTg4Li5kNDNkN2QxIDEwMDY0NAo+PiAtLS0gYS9hcmNoL2FybTY0L2t2bS9zeXNfcmVncy5jCj4+ ICsrKyBiL2FyY2gvYXJtNjQva3ZtL3N5c19yZWdzLmMKPj4gQEAgLTIwOCwzOSArMjA4LDYxIEBA IHN0YXRpYyBib29sIHRyYXBfZGVidWdfcmVncyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCj4+ICAJ CQkgICAgY29uc3Qgc3RydWN0IHN5c19yZWdfcGFyYW1zICpwLAo+PiAgCQkJICAgIGNvbnN0IHN0 cnVjdCBzeXNfcmVnX2Rlc2MgKnIpCj4+ICB7Cj4+IC0JaWYgKHZjcHUtPmd1ZXN0X2RlYnVnICYg S1ZNX0dVRVNUREJHX1VTRV9IV19CUCkgewo+PiAtCQlzdHJ1Y3Qga3ZtX2d1ZXN0X2RlYnVnX2Fy Y2ggKnNhdmVkOwo+PiAtCQlfX3U2NCAqdmFsOwo+PiAtCj4+IC0JCXNhdmVkID0gJnZjcHVfZGVi dWdfc2F2ZWRfcmVnKHZjcHUsIGRlYnVnX3JlZ3MpOwo+PiAtCj4+IC0JCWlmIChyLT5yZWcgPj0g REJHQkNSMF9FTDEgJiYgci0+cmVnIDw9IERCR0JDUjE1X0VMMSkKPj4gLQkJCXZhbCA9ICZzYXZl ZC0+ZGJnX2JjcltyLT5yZWcgLSBEQkdCQ1IwX0VMMV07Cj4+IC0JCWVsc2UgaWYgKHItPnJlZyA+ PSBEQkdCVlIwX0VMMSAmJiByLT5yZWcgPD0gREJHQlZSMTVfRUwxKQo+PiAtCQkJdmFsID0gJnNh dmVkLT5kYmdfYnZyW3ItPnJlZyAtIERCR0JWUjBfRUwxXTsKPj4gLQkJZWxzZSBpZiAoci0+cmVn ID49IERCR1dDUjBfRUwxICYmIHItPnJlZyA8PSBEQkdXQ1IxNV9FTDEpCj4+IC0JCQl2YWwgPSAm c2F2ZWQtPmRiZ193Y3Jbci0+cmVnIC0gREJHV0NSMF9FTDFdOwo+PiAtCQllbHNlIGlmIChyLT5y ZWcgPj0gREJHV1ZSMF9FTDEgJiYgci0+cmVnIDw9IERCR1dWUjE1X0VMMSkKPj4gLQkJCXZhbCA9 ICZzYXZlZC0+ZGJnX3d2cltyLT5yZWcgLSBEQkdXVlIwX0VMMV07Cj4+IC0JCWVsc2Ugewo+PiAt CQkJa3ZtX2VycigiQmFkIHJlZ2lzdGVyIGluZGV4ICVkXG4iLCByLT5yZWcpOwo+PiAtCQkJcmV0 dXJuIGZhbHNlOwo+PiArCWlmICh2Y3B1LT5ndWVzdF9kZWJ1Zykgewo+PiArCj4+ICsJCS8qIE1E U0NSX0VMMSAqLwo+PiArCQlpZiAoci0+cmVnID09IE1EU0NSX0VMMSkgewo+PiArCQkJaWYgKHAt PmlzX3dyaXRlKQo+PiArCQkJCXZjcHVfZGVidWdfc2F2ZWRfcmVnKHZjcHUsIG1kc2NyX2VsMSkg PQo+PiArCQkJCQkqdmNwdV9yZWcodmNwdSwgcC0+UnQpOwo+PiArCQkJZWxzZQo+PiArCQkJCSp2 Y3B1X3JlZyh2Y3B1LCBwLT5SdCkgPQo+PiArCQkJCQl2Y3B1X2RlYnVnX3NhdmVkX3JlZyh2Y3B1 LCBtZHNjcl9lbDEpOwo+Cj4gV2l0aCB0aGlzIGxpbmVzIHdyYXBwaW5nLCB7fSdzIG1pZ2h0IGJl IG5pY2UuCgpNeSBuYXR1cmFsIGluY2xpbmF0aW9uIGlzIHRvIHdyYXAgaW4ge30ncyBidXQgSSBr bm93IHRoZSBrZXJuZWwgaXMgYSBmYW4Kb2YgdGhlIHNpbmdsZS1zdGF0ZW1lbnQgaWYgZm9ybXMu Cgo+Cj4+ICsKPj4gKwkJCXJldHVybiB0cnVlOwo+PiAgCQl9Cj4+ICAKPj4gLQkJaWYgKHAtPmlz X3dyaXRlKQo+PiAtCQkJKnZhbCA9ICp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCk7Cj4+IC0JCWVsc2UK Pj4gLQkJCSp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCkgPSAqdmFsOwo+PiArCQkvKiBNRENDSU5UX0VM MSAqLwo+PiArCQlpZiAoci0+cmVnID09IE1EQ0NJTlRfRUwxKQo+PiArCQkJZ290byBvbGQ7Cj4K PiAib2xkIj8gQXMgaW4gdGhlIG9sZCB3YXkgdGhpcyB3b3JrZWQ/IFNvbWVkYXkgKHNvb24pIGFs bCB0aGlzIGNvZGUgd2lsbAo+IGJlICJvbGQiLiBIb3cgYWJvdXQganVzdCAnb3V0Jz8gT3IgdXNl IHNvbWUgb3RoZXIgd2F5IHRvIGdldCB0aGUgZmxvdwo+IHN1Y2ggdGhhdCB3ZSBhdm9pZCBjb2Rl IGR1cGxpY2F0aW9uLCBidXQgZG9lc24ndCByZXF1aXJlIGEgZ290bz8KCkknbGwgc2VlIGlmIEkg Y2FuIHN0cnVjdHVyZSB0aGlzIGJldHRlci4KCj4KPj4gKwo+PiArCQkvKiBXZSBvbmx5IHNoYWRv dyBEQkcqIGlmIGd1ZXN0IGJlaW5nIGRlYnVnZ2VkICovCj4+ICsJCWlmICh2Y3B1LT5ndWVzdF9k ZWJ1ZyAmIEtWTV9HVUVTVERCR19VU0VfSFdfQlApIHsKPj4gKwkJCXN0cnVjdCBrdm1fZ3Vlc3Rf ZGVidWdfYXJjaCAqc2F2ZWQ7Cj4+ICsJCQlfX3U2NCAqdmFsOwo+PiArCj4+ICsJCQlzYXZlZCA9 ICZ2Y3B1X2RlYnVnX3NhdmVkX3JlZyh2Y3B1LCBkZWJ1Z19yZWdzKTsKPj4gKwo+PiArCQkJaWYg KHItPnJlZyA+PSBEQkdCQ1IwX0VMMSAmJiByLT5yZWcgPD0gREJHQkNSMTVfRUwxKQo+PiArCQkJ CXZhbCA9ICZzYXZlZC0+ZGJnX2JjcltyLT5yZWcgLSBEQkdCQ1IwX0VMMV07Cj4+ICsJCQllbHNl IGlmIChyLT5yZWcgPj0gREJHQlZSMF9FTDEgJiYgci0+cmVnIDw9IERCR0JWUjE1X0VMMSkKPj4g KwkJCQl2YWwgPSAmc2F2ZWQtPmRiZ19idnJbci0+cmVnIC0gREJHQlZSMF9FTDFdOwo+PiArCQkJ ZWxzZSBpZiAoci0+cmVnID49IERCR1dDUjBfRUwxICYmIHItPnJlZyA8PSBEQkdXQ1IxNV9FTDEp Cj4+ICsJCQkJdmFsID0gJnNhdmVkLT5kYmdfd2NyW3ItPnJlZyAtIERCR1dDUjBfRUwxXTsKPj4g KwkJCWVsc2UgaWYgKHItPnJlZyA+PSBEQkdXVlIwX0VMMSAmJiByLT5yZWcgPD0gREJHV1ZSMTVf RUwxKQo+PiArCQkJCXZhbCA9ICZzYXZlZC0+ZGJnX3d2cltyLT5yZWcgLSBEQkdXVlIwX0VMMV07 Cj4+ICsJCQllbHNlIHsKPj4gKwkJCQlrdm1fZXJyKCJCYWQgcmVnaXN0ZXIgaW5kZXggJWRcbiIs IHItPnJlZyk7Cj4+ICsJCQkJcmV0dXJuIGZhbHNlOwo+PiArCQkJfQo+PiAgCj4+IC0JfSBlbHNl IHsKPj4gLQkJaWYgKHAtPmlzX3dyaXRlKSB7Cj4+IC0JCQl2Y3B1X3N5c19yZWcodmNwdSwgci0+ cmVnKSA9ICp2Y3B1X3JlZyh2Y3B1LCBwLT5SdCk7Cj4+IC0JCQl2Y3B1LT5hcmNoLmRlYnVnX2Zs YWdzIHw9IEtWTV9BUk02NF9ERUJVR19ESVJUWTsKPj4gLQkJfSBlbHNlIHsKPj4gLQkJCSp2Y3B1 X3JlZyh2Y3B1LCBwLT5SdCkgPSB2Y3B1X3N5c19yZWcodmNwdSwgci0+cmVnKTsKPj4gKwkJCWlm IChwLT5pc193cml0ZSkKPj4gKwkJCQkqdmFsID0gKnZjcHVfcmVnKHZjcHUsIHAtPlJ0KTsKPj4g KwkJCWVsc2UKPj4gKwkJCQkqdmNwdV9yZWcodmNwdSwgcC0+UnQpID0gKnZhbDsKPj4gKwo+PiAr CQkJcmV0dXJuIHRydWU7Cj4+ICAJCX0KPj4gIAl9Cj4+ICAKPj4gK29sZDoKPj4gKwlpZiAocC0+ aXNfd3JpdGUpIHsKPj4gKwkJdmNwdV9zeXNfcmVnKHZjcHUsIHItPnJlZykgPSAqdmNwdV9yZWco dmNwdSwgcC0+UnQpOwo+PiArCQl2Y3B1LT5hcmNoLmRlYnVnX2ZsYWdzIHw9IEtWTV9BUk02NF9E RUJVR19ESVJUWTsKPj4gKwl9IGVsc2Ugewo+PiArCQkqdmNwdV9yZWcodmNwdSwgcC0+UnQpID0g dmNwdV9zeXNfcmVnKHZjcHUsIHItPnJlZyk7Cj4+ICsJfQo+PiArCj4+ICAJcmV0dXJuIHRydWU7 Cj4+ICB9Cj4+ICAKPj4gLS0gCj4+IDIuMy40Cj4+IAoKLS0gCkFsZXggQmVubsOpZQpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwprdm1hcm0gbWFpbGluZyBs aXN0Cmt2bWFybUBsaXN0cy5jcy5jb2x1bWJpYS5lZHUKaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJp YS5lZHUvbWFpbG1hbi9saXN0aW5mby9rdm1hcm0K