From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [RFC 06/22] xen/arm: traps: Check the P2M before injecting a data/instruction abort Date: Thu, 28 Jul 2016 15:51:29 +0100 Message-ID: <1469717505-8026-7-git-send-email-julien.grall@arm.com> References: <1469717505-8026-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469717505-8026-1-git-send-email-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: proskurin@sec.in.tum.de, Julien Grall , sstabellini@kernel.org, steve.capper@arm.com, wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org QSBkYXRhL2luc3RydWN0aW9uIGFib3J0IG1heSBoYXZlIG9jY3VycmVkIGlmIGFub3RoZXIgQ1BV IHdhcyBwbGF5aW5nCndpdGggdGhlIHN0YWdlLTIgcGFnZSB0YWJsZSB3aGVuIGZvbGxvd2luZyB0 aGUgYnJlYWstYmVmb3JlLW1ha2UKc2VxdWVuY2UgKHNlZSBENC43LjEgaW4gQVJNIERESSAwNDg3 QS5qKS4gUmF0aGVyIHRoYW4gaW5qZWN0aW5nIGRpcmVjdGx5CnRoZSBmYXVsdCB0byB0aGUgZ3Vl c3QsIHdlIG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgbWFwcGluZyBleGlzdHMuIElmCml0IGV4 aXN0cywgcmV0dXJuIHRvIHRoZSBndWVzdCB0byByZXBsYXkgdGhlIGluc3RydWN0aW9uLgoKU2ln bmVkLW9mZi1ieTogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KLS0tCiB4ZW4v YXJjaC9hcm0vdHJhcHMuYyB8IDQwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90cmFwcy5jIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMK aW5kZXggYjQ2Mjg0Yy4uZGE1NmNjMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3RyYXBzLmMK KysrIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKQEAgLTI0MDQsNiArMjQwNCw3IEBAIHN0YXRpYyB2 b2lkIGRvX3RyYXBfaW5zdHJfYWJvcnRfZ3Vlc3Qoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Ms CiAgICAgcmVnaXN0ZXJfdCBndmEgPSBSRUFEX1NZU1JFRyhGQVJfRUwyKTsKICAgICB1aW50OF90 IGZzYyA9IGhzci5pYWJ0Lmlmc2MgJiB+RlNDX0xMX01BU0s7CiAgICAgcGFkZHJfdCBncGE7Cisg ICAgbWZuX3QgbWZuOwogCiAgICAgaWYgKCBocGZhcl9pc192YWxpZChoc3IuaWFidC5zMXB0dywg ZnNjKSApCiAgICAgICAgIGdwYSA9IGdldF9mYXVsdGluZ19pcGEoZ3ZhKTsKQEAgLTI0MTcsNiAr MjQxOCwxMSBAQCBzdGF0aWMgdm9pZCBkb190cmFwX2luc3RyX2Fib3J0X2d1ZXN0KHN0cnVjdCBj cHVfdXNlcl9yZWdzICpyZWdzLAogICAgICAgICAgKi8KICAgICAgICAgZmx1c2hfdGxiX2xvY2Fs KCk7CiAKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgbWF5IG5vdCBiZSBhYmxlIHRvIHRyYW5z bGF0ZSBiZWNhdXNlIHNvbWVvbmUgaXMKKyAgICAgICAgICogcGxheWluZyB3aXRoIHRoZSBTdGFn ZS0yIHBhZ2UgdGFibGUgb2YgdGhlIGRvbWFpbi4KKyAgICAgICAgICogUmV0dXJuIHRvIHRoZSBn dWVzdC4KKyAgICAgICAgICovCiAgICAgICAgIHJjID0gZ3ZhX3RvX2lwYShndmEsICZncGEsIEdW Mk1fUkVBRCk7CiAgICAgICAgIGlmICggcmMgPT0gLUVGQVVMVCApCiAgICAgICAgICAgICByZXR1 cm47IC8qIFRyeSBhZ2FpbiAqLwpAQCAtMjQzNyw4ICsyNDQzLDE3IEBAIHN0YXRpYyB2b2lkIGRv X3RyYXBfaW5zdHJfYWJvcnRfZ3Vlc3Qoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAg ICAgIC8qIFRyYXAgd2FzIHRyaWdnZXJlZCBieSBtZW1fYWNjZXNzLCB3b3JrIGhlcmUgaXMgZG9u ZSAqLwogICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJy ZWFrOwogICAgIH0KLSAgICBicmVhazsKKyAgICBjYXNlIEZTQ19GTFRfVFJBTlM6CisgICAgICAg IC8qCisgICAgICAgICAqIFRoZSBQVCB3YWxrIG1heSBoYXZlIGZhaWxlZCBiZWNhdXNlIHNvbWVv bmUgd2FzIHBsYXlpbmcKKyAgICAgICAgICogd2l0aCB0aGUgU3RhZ2UtMiBwYWdlIHRhYmxlLiBX YWxrIHRoZSBTdGFnZS0yIFBUIHRvIGNoZWNrCisgICAgICAgICAqIGlmIHRoZSBlbnRyeSBleGlz dHMuIElmIGl0J3MgdGhlIGNhc2UsIHJldHVybiB0byB0aGUgZ3Vlc3QKKyAgICAgICAgICovCisg ICAgICAgIG1mbiA9IHAybV9sb29rdXAoY3VycmVudC0+ZG9tYWluLCBfZ2ZuKHBhZGRyX3RvX3Bm bihncGEpKSwgTlVMTCk7CisgICAgICAgIGlmICggIW1mbl9lcShtZm4sIElOVkFMSURfTUZOKSAp CisgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaW5qZWN0X2lhYnRfZXhjZXB0aW9u KHJlZ3MsIGd2YSwgaHNyLmxlbik7CkBAIC0yNDU1LDcgKzI0NzAsNyBAQCBzdGF0aWMgYm9vbF90 IHRyeV9oYW5kbGVfbW1pbyhzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKICAgICAgICAgcmV0 dXJuIDA7CiAKICAgICAvKiBBbGwgdGhlIGluc3RydWN0aW9ucyB1c2VkIG9uIGVtdWxhdGVkIE1N SU8gcmVnaW9uIHNob3VsZCBiZSB2YWxpZCAqLwotICAgIGlmICggIWRhYnQudmFsaWQgKQorICAg IGlmICggIWluZm8tPmRhYnQudmFsaWQgKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8qCkBA IC0yNDgzLDYgKzI0OTgsNyBAQCBzdGF0aWMgdm9pZCBkb190cmFwX2RhdGFfYWJvcnRfZ3Vlc3Qo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgaW50IHJjOwogICAgIG1taW9faW5mb190 IGluZm87CiAgICAgdWludDhfdCBmc2MgPSBoc3IuZGFidC5kZnNjICYgfkZTQ19MTF9NQVNLOwor ICAgIG1mbl90IG1mbjsKIAogICAgIGluZm8uZGFidCA9IGRhYnQ7CiAjaWZkZWYgQ09ORklHX0FS TV8zMgpAQCAtMjQ5Niw2ICsyNTEyLDExIEBAIHN0YXRpYyB2b2lkIGRvX3RyYXBfZGF0YV9hYm9y dF9ndWVzdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKICAgICBlbHNlCiAgICAgewogICAg ICAgICByYyA9IGd2YV90b19pcGEoaW5mby5ndmEsICZpbmZvLmdwYSwgR1YyTV9SRUFEKTsKKyAg ICAgICAgLyoKKyAgICAgICAgICogV2UgbWF5IG5vdCBiZSBhYmxlIHRvIHRyYW5zbGF0ZSBiZWNh dXNlIHNvbWVvbmUgaXMKKyAgICAgICAgICogcGxheWluZyB3aXRoIHRoZSBTdGFnZS0yIHBhZ2Ug dGFibGUgb2YgdGhlIGRvbWFpbi4KKyAgICAgICAgICogUmV0dXJuIHRvIHRoZSBndWVzdC4KKyAg ICAgICAgICovCiAgICAgICAgIGlmICggcmMgPT0gLUVGQVVMVCApCiAgICAgICAgICAgICByZXR1 cm47IC8qIFRyeSBhZ2FpbiAqLwogICAgIH0KQEAgLTI1MTksMTEgKzI1NDAsMjYgQEAgc3RhdGlj IHZvaWQgZG9fdHJhcF9kYXRhX2Fib3J0X2d1ZXN0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz LAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBGU0NfRkxUX1RSQU5TOgorICAgICAg ICAvKgorICAgICAgICAgKiBBdHRlbXB0IGZpcnN0IHRvIGVtdWxhdGUgdGhlIE1NSU8gaGFzIHRo ZSBkYXRhIGFib3J0IHdpbGwKKyAgICAgICAgICogbGlrZWx5IGhhcHBlbiBhbiBlbXVsYXRlZCBy ZWdpb24uCisgICAgICAgICAqLwogICAgICAgICBpZiAoIHRyeV9oYW5kbGVfbW1pbyhyZWdzLCAm aW5mbykgKQogICAgICAgICB7CiAgICAgICAgICAgICBhZHZhbmNlX3BjKHJlZ3MsIGhzcik7CiAg ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBU aGUgUFQgd2FsayBtYXkgaGF2ZSBmYWlsZWQgYmVjYXVzZSBzb21lb25lIHdhcyBwbGF5aW5nCisg ICAgICAgICAqIHdpdGggdGhlIFN0YWdlLTIgcGFnZSB0YWJsZS4gV2FsayB0aGUgU3RhZ2UtMiBQ VCB0byBjaGVjaworICAgICAgICAgKiBpZiB0aGUgZW50cnkgZXhpc3RzLiBJZiBpdCdzIHRoZSBj YXNlLCByZXR1cm4gdG8gdGhlIGd1ZXN0CisgICAgICAgICAqLworICAgICAgICBtZm4gPSBwMm1f bG9va3VwKGN1cnJlbnQtPmRvbWFpbiwgX2dmbihwYWRkcl90b19wZm4oaW5mby5ncGEpKSwgTlVM TCk7CisgICAgICAgIGlmICggIW1mbl9lcShtZm4sIElOVkFMSURfTUZOKSApCisgICAgICAgICAg ICByZXR1cm47CisKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgZ3ByaW50 ayhYRU5MT0dfV0FSTklORywgIlVuc3VwcG9ydGVkIERGU0M6IEhTUj0lI3ggREZTQz0lI3hcbiIs CiAgICAgICAgICAgICAgICAgaHNyLmJpdHMsIGRhYnQuZGZzYyk7Ci0tIAoxLjkuMQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=