From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Chen Subject: [PATCH v3 12/19] xen/arm: Introduce new helpers to handle guest/hyp SErrors Date: Fri, 31 Mar 2017 21:07:52 +0800 Message-ID: <1490965679-619-13-git-send-email-Wei.Chen@arm.com> References: <1490965679-619-1-git-send-email-Wei.Chen@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1490965679-619-1-git-send-email-Wei.Chen@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: sstabellini@kernel.org, wei.chen@arm.com, steve.capper@arm.com, Kaly.Xin@arm.com, julien.grall@arm.com, nd@arm.com List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCBBUk0zMiBhbmQgQVJNNjQgaGFzIGRpZmZlcmVudCBTRXJyb3IgZXhjZXB0aW9u IGhhbmRsZXJzLgpUaGVzZSBoYW5kbGVycyBpbmNsdWRlIGxvdHMgb2YgY29kZSB0byBjaGVjayBT RXJyb3IgaGFuZGxlIG9wdGlvbnMKYW5kIGNvZGUgdG8gZGlzdGluZ3Vpc2ggZ3Vlc3QtZ2VuZXJh dGVkIFNFcnJvcnMgZnJvbSBoeXBlcnZpc29yClNFcnJvcnMuCgpUaGUgbmV3IGhlbHBlcnM6IGRv X3RyYXBfZ3Vlc3Rfc2Vycm9yIGFuZCBkb190cmFwX2h5cF9zZXJyb3IgYXJlCndyYXBwZXJzIG9m IF9fZG9fdHJhcF9zZXJyb3Igd2l0aCBjb25zdGFudCBndWVzdC9oeXAgcGFyYW1ldGVycy4KX19k b190cmFwX3NlcnJvciBtb3ZlcyB0aGUgb3B0aW9uIGNoZWNraW5nIGNvZGUgYW5kIFNFcnJvciBj aGVja2luZwpjb2RlIGZyb20gYXNzZW1ibHkgdG8gQyBzb3VyY2UuIFRoaXMgd2lsbCBtYWtlIHRo ZSBjb2RlIGJlY29tZSBtb3JlCnJlYWRhYmxlIGFuZCBhdm9pZCBwbGFjaW5nIGNoZWNrIGNvZGUg aW4gdG9vIG1hbnkgcGxhY2VzLgoKVGhlc2UgdHdvIGhlbHBlcnMgb25seSBoYW5kbGUgdGhlIGZv bGxvd2luZyAzIHR5cGVzIG9mIFNFcnJvcnM6CjEpIEd1ZXN0LWdlbmVyYXRlZCBTRXJyb3IgYW5k IGhhZCBiZWVuIGRlbGl2ZXJlZCBpbiBFTDEgYW5kIHRoZW4KICAgYmVlbiBmb3J3YXJkZWQgdG8g RUwyLgoyKSBHdWVzdC1nZW5lcmF0ZWQgU0Vycm9yIGJ1dCBoYWRuJ3QgYmVlbiBkZWxpdmVyZWQg aW4gRUwxIGJlZm9yZQogICB0cmFwcGluZyB0byBFTDIuIFRoaXMgU0Vycm9yIHdvdWxkIGJlIGNh dWdodCBpbiBFTDIgYXMgc29vbiBhcwogICB3ZSBqdXN0IHVubWFza2VkIHRoZSBQU1RBVEUuQSBi aXQuCjMpIEh5cGVydmlzb3IgZ2VuZXJhdGVkIG5hdGl2ZSBTRXJyb3IsIHRoYXQgd291bGQgYmUg YSBidWcuCgpJbiB0aGUgbmV3IGhlbHBlcnMsIHdlIGhhdmUgdXNlZCB0aGUgZnVuY3Rpb24gImlu amVjdF92YWJ0X2V4Y2VwdGlvbiIKd2hpY2ggd2FzIGRpc2FibGVkIGJ5ICIjaWYgMCIgYmVmb3Jl LiBOb3csIHdlIGNhbiByZW1vdmUgdGhlICIjaWYgMCIKdG8gbWFrZSB0aGlzIGZ1bmN0aW9uIHRv IGJlIGF2YWlsYWJsZS4KClNpZ25lZC1vZmYtYnk6IFdlaSBDaGVuIDxXZWkuQ2hlbkBhcm0uY29t PgpSZXZpZXdlZC1ieTogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3Jn PgotLS0KIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAgfCA2OSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLQogeGVuL2luY2x1ZGUvYXNtLWFybS9wcm9jZXNz b3IuaCB8ICA0ICsrKwogMiBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90cmFwcy5jIGIveGVuL2FyY2gvYXJt L3RyYXBzLmMKaW5kZXggOWQ0ZWUzOS4uNGI1M2I3ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJt L3RyYXBzLmMKKysrIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKQEAgLTY0Niw3ICs2NDYsNiBAQCBz dGF0aWMgdm9pZCBpbmplY3RfZGFidF9leGNlcHRpb24oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MsCiAjZW5kaWYKIH0KIAotI2lmIDAKIC8qIEluamVjdCBhIHZpcnR1YWwgQWJvcnQvU0Vycm9y IGludG8gdGhlIGd1ZXN0LiAqLwogc3RhdGljIHZvaWQgaW5qZWN0X3ZhYnRfZXhjZXB0aW9uKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewpAQCAtNjc3LDcgKzY3Niw1OSBAQCBzdGF0aWMg dm9pZCBpbmplY3RfdmFidF9leGNlcHRpb24oc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAg ICAgY3VycmVudC0+YXJjaC5oY3JfZWwyIHw9IEhDUl9WQTsKICAgICBXUklURV9TWVNSRUcoY3Vy cmVudC0+YXJjaC5oY3JfZWwyLCBIQ1JfRUwyKTsKIH0KLSNlbmRpZgorCisvKgorICogU0Vycm9y IGV4Y2VwdGlvbiBoYW5kbGVyLiBXZSBvbmx5IGhhbmRsZSB0aGUgZm9sbG93aW5nIDMgdHlwZXMg b2YgU0Vycm9yczoKKyAqIDEpIEd1ZXN0LWdlbmVyYXRlZCBTRXJyb3IgYW5kIGhhZCBiZWVuIGRl bGl2ZXJlZCBpbiBFTDEgYW5kIHRoZW4KKyAqICAgIGJlZW4gZm9yd2FyZGVkIHRvIEVMMi4KKyAq IDIpIEd1ZXN0LWdlbmVyYXRlZCBTRXJyb3IgYnV0IGhhZG4ndCBiZWVuIGRlbGl2ZXJlZCBpbiBF TDEgYmVmb3JlCisgKiAgICB0cmFwcGluZyB0byBFTDIuIFRoaXMgU0Vycm9yIHdvdWxkIGJlIGNh dWdodCBpbiBFTDIgYXMgc29vbiBhcworICogICAgd2UganVzdCB1bm1hc2tlZCB0aGUgUFNUQVRF LkEgYml0LgorICogMykgSHlwZXJ2aXNvciBnZW5lcmF0ZWQgbmF0aXZlIFNFcnJvciwgdGhhdCB3 b3VsZCBiZSBhIGJ1Zy4KKyAqCisgKiBBIHRydWUgcGFyYW1ldGVyICJndWVzdCIgbWVhbnMgdGhh dCB0aGUgU0Vycm9yIGlzIHR5cGUjMSBvciB0eXBlIzIuCisgKi8KK3N0YXRpYyB2b2lkIF9fZG9f dHJhcF9zZXJyb3Ioc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIGJvb2wgZ3Vlc3QpCit7Cisg ICAgLyoKKyAgICAgKiBPbmx5ICJESVZFUlNFIiBvcHRpb24gbmVlZHMgdG8gZGlzdGluZ3Vpc2gg dGhlIGd1ZXN0LWdlbmVyYXRlZCBTRXJyb3JzCisgICAgICogZnJvbSBoeXBlcnZpc29yIFNFcnJv cnMuCisgICAgICovCisgICAgaWYgKCBzZXJyb3JzX29wID09IFNFUlJPUlNfRElWRVJTRSApCisg ICAgeworICAgICAgICAvKiBGb3J3YXJkIHRoZSB0eXBlIzEgYW5kIHR5cGUjMiBTRXJyb3JzIHRv IGd1ZXN0cy4gKi8KKyAgICAgICAgaWYgKCBndWVzdCApCisgICAgICAgICAgICByZXR1cm4gaW5q ZWN0X3ZhYnRfZXhjZXB0aW9uKHJlZ3MpOworCisgICAgICAgIC8qIFR5cGUjMyBTRXJyb3JzIHdp bGwgcGFuaWMgdGhlIHdob2xlIHN5c3RlbSAqLworICAgICAgICBnb3RvIGNyYXNoX3N5c3RlbTsK KyAgICB9CisKKyAgICAvKgorICAgICAqIFRoZSAiRk9SV0FSRCIgb3B0aW9uIHdpbGwgZm9yd2Fy ZCBhbGwgU0Vycm9ycyB0byB0aGUgZ3Vlc3RzLCBleGNlcHQKKyAgICAgKiBpZGxlIGRvbWFpbiBn ZW5lcmF0ZWQgU0Vycm9ycy4KKyAgICAgKi8KKyAgICBpZiAoIHNlcnJvcnNfb3AgPT0gU0VSUk9S U19GT1JXQVJEICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIEJlY2F1c2UgdGhlIGlk bGUgZG9tYWluIGRvZXNuJ3QgaGF2ZSB0aGUgYWJpbGl0eSB0byBoYW5kbGUgdGhlCisgICAgICAg ICAqIFNFcnJvcnMsIHdlIGhhdmUgdG8gY3Jhc2ggdGhlIHdob2xlIHN5c3RlbSB3aGlsZSB3ZSBn ZXQgYSBTRXJyb3IKKyAgICAgICAgICogZ2VuZXJhdGVkIGJ5IGlkbGUgZG9tYWluLgorICAgICAg ICAgKi8KKyAgICAgICAgaWYgKCBpc19pZGxlX3ZjcHUoY3VycmVudCkgKQorICAgICAgICAgICAg Z290byBjcmFzaF9zeXN0ZW07CisKKyAgICAgICAgcmV0dXJuIGluamVjdF92YWJ0X2V4Y2VwdGlv bihyZWdzKTsKKyAgICB9CisKK2NyYXNoX3N5c3RlbToKKyAgICAvKiBUaHJlZSBwb3NzaWJpbGl0 aWVzIHRvIGNyYXNoIHRoZSB3aG9sZSBzeXN0ZW06CisgICAgICogMSkgIkRJVkVSU0UiIG9wdGlv biB3aXRoIEh5cGVydmlzb3IgZ2VuZXJhdGVkIFNFcnJvcnMuCisgICAgICogMikgIkZPUldBUkQi IG9wdGlvbiB3aXRoIElkbGUgRG9tYWluIGdlbmVyYXRlZCBTRXJyb3JzLgorICAgICAqIDMpICJQ QU5JQyIgb3B0aW9uIHdpdGggYWxsIFNFcnJvcnMuCisgICAgICovCisgICAgZG9fdW5leHBlY3Rl ZF90cmFwKCJTRXJyb3IiLCByZWdzKTsKK30KIAogc3RydWN0IHJlZ19jdHh0IHsKICAgICAvKiBH dWVzdC1zaWRlIHN0YXRlICovCkBAIC0yODY0LDYgKzI5MTUsMjAgQEAgYXNtbGlua2FnZSB2b2lk IGRvX3RyYXBfZ3Vlc3RfZXJyb3Ioc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgZG9t YWluX2NyYXNoX3N5bmNocm9ub3VzKCk7CiB9CiAKK2FzbWxpbmthZ2Ugdm9pZCBkb190cmFwX2h5 cF9zZXJyb3Ioc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCit7CisgICAgZW50ZXJfaHlwZXJ2 aXNvcl9oZWFkKHJlZ3MpOworCisgICAgX19kb190cmFwX3NlcnJvcihyZWdzLCBWQUJPUlRfR0VO X0JZX0dVRVNUKHJlZ3MpKTsKK30KKworYXNtbGlua2FnZSB2b2lkIGRvX3RyYXBfZ3Vlc3Rfc2Vy cm9yKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQoreworICAgIGVudGVyX2h5cGVydmlzb3Jf aGVhZChyZWdzKTsKKworICAgIF9fZG9fdHJhcF9zZXJyb3IocmVncywgdHJ1ZSk7Cit9CisKIGFz bWxpbmthZ2Ugdm9pZCBkb190cmFwX2lycShzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKIHsK ICAgICBlbnRlcl9oeXBlcnZpc29yX2hlYWQocmVncyk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20tYXJtL3Byb2Nlc3Nvci5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wcm9jZXNzb3IuaApp bmRleCAxNjNjMzljLi44MTIyN2FhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3By b2Nlc3Nvci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcHJvY2Vzc29yLmgKQEAgLTcwOSw2 ICs3MDksMTAgQEAgaW50IGNhbGxfc21jKHJlZ2lzdGVyX3QgZnVuY3Rpb25faWQsIHJlZ2lzdGVy X3QgYXJnMCwgcmVnaXN0ZXJfdCBhcmcxLAogCiB2b2lkIGRvX3RyYXBfZ3Vlc3RfZXJyb3Ioc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpOwogCit2b2lkIGRvX3RyYXBfaHlwX3NlcnJvcihzdHJ1 Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7CisKK3ZvaWQgZG9fdHJhcF9ndWVzdF9zZXJyb3Ioc3Ry dWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpOworCiByZWdpc3Rlcl90IGdldF9kZWZhdWx0X2hjcl9m bGFncyh2b2lkKTsKIAogLyogRnVuY3Rpb25zIGZvciBwZW5kaW5nIHZpcnR1YWwgYWJvcnQgY2hl Y2tpbmcgd2luZG93LiAqLwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK