From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Patterson Subject: [PATCH 3/6] xen/arm: Allow platforms to hook IRQ routing Date: Thu, 6 Apr 2017 15:47:51 -0400 Message-ID: <1491508074-31647-4-git-send-email-cjp256@gmail.com> References: <1491508074-31647-1-git-send-email-cjp256@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491508074-31647-1-git-send-email-cjp256@gmail.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: Chris Patterson , julien.grall@arm.com, sstabellini@kernel.org, temkink@ainfosec.com List-Id: xen-devel@lists.xenproject.org RnJvbTogIkNocmlzIFBhdHRlcnNvbiIgPHBhdHRlcnNvbmNAYWluZm9zZWMuY29tPgoKU29tZSBj b21tb24gcGxhdGZvcm1zIChlLmcuIFRlZ3JhKSBoYXZlIG5vbi10cmFkaXRpb25hbCBJUlEgY29u dHJvbGxlcnMKdGhhdCBtdXN0IGJlIHByb2dyYW1tZWQgaW4gYWRkaXRpb24gdG8gdGhlaXIgcHJp bWFyeSBHSUNzLS0gYW5kIHdoaWNoCmNhbiBjb21lIGluIHVudXN1YWwgdG9wb2xvZ2llcy4gRGV2 aWNlIHRyZWVzIGZvciB0YXJnZXRzIHRoYXQgZmVhdHVyZQp0aGVzZSBjb250cm9sbGVycyBvZnRl biBkZXZpYXRlIGZyb20gdGhlIGNvbnZlbnRpb25zIHRoYXQgWGVuIGV4cGVjdHMuCgpUaGlzIGNv bW1pdCBwcm92aWRlcyBhIGZvdW5kYXRpb24gZm9yIHN1cHBvcnQgb2YgdGhlc2UgcGxhdGZvcm1z LCBieQphbGxvd2luZyB0aGUgcGxhdGZvcm0gdG8gZGVjaWRlIHdoaWNoIElSUXMgY2FuIGJlIHJv dXRlZCBieSBYZW4sIHJhdGhlcgp0aGFuIGFzc3VtaW5nIHRoYXQgb25seSBHSUMtY29ubmVjdGVk IElSUXMgY2FuIGJlIHJvdXRlZC4gIFRoaXMgZW5hYmxlcwpwbGF0Zm9ybSBzcGVjaWZpYyBsb2dp YyB0byByb3V0aW5nIHRoZSBJUlEgdG8gWGVuIGFuZCBHdWVzdC4KCkFzIGR0X2lycV90cmFuc2xh dGUoKSBpcyBwcmVzZW50bHkgaGFyZC1jb2RlZCB0byBqdXN0IHN1cHBvcnQgdGhlCnByaW1hcnkg aW50ZXJydXB0IGNvbnRyb2xsZXIsIGluc3RlYWQgcmVseSBvbiB0aGUgbmV3bHkgYWRkZWQKcGxh dGZvcm1faXJxX2lzX3JvdXRhYmxlKCkgY2hlY2sgaW5zdGVhZC4gIFRoZSBkZWZhdWx0IGJlaGF2 aW91ciBvZiB0aGlzCm5ldyBmdW5jdGlvbiBzaG91bGQgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBw cmV2aW91cyBjaGVja3MgZm9yIHBsYXRmb3Jtcwp0aGF0IGRvIG5vdCBpbXBsZW1lbnQgaXQuCgpB dXRob3JlZC1ieTogS3lsZSBUZW1raW4gPHRlbWtpbmtAYWluZm9zZWMuY29tPgpTaWduZWQtb2Zm LWJ5OiBLeWxlIFRlbWtpbiA8dGVta2lua0BhaW5mb3NlYy5jb20+ClNpZ25lZC1vZmYtYnk6IENo cmlzIFBhdHRlcnNvbiA8cGF0dGVyc29uY0BhaW5mb3NlYy5jb20+Ci0tLQoKY2hhbmdlcyBzaW5j ZSByZmM6Ci0gdXNlIGJvb2wgaW5zdGVhZCBvZiBib29sX3QKLSBmb3JtYXR0aW5nICYgY29kZSBz dHlsZSBjbGVhbnVwCi0gcmV1c2UgZHRfaXJxX3RyYW5zbGF0ZSgpIHBhdGggYW5kIGRyb3AgcGxh dGZvcm1faXJxX2Zvcl9kZXZpY2UoKSBhcHByb2FjaAotIHVzZSBjb25zdCBxdWFsaWZpZXIgZm9y IHBsYXRmb3JtX2lycV9pc19yb3V0YWJsZSByaXJxIGFyZ3VtZW50CgotLS0KCiB4ZW4vYXJjaC9h cm0vZG9tYWluX2J1aWxkLmMgICAgfCAxMiArKysrKysrKy0tLS0KIHhlbi9hcmNoL2FybS9pcnEu YyAgICAgICAgICAgICB8ICA1ICsrKy0tCiB4ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYyAgICAgICAg fCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9jb21tb24vZGV2aWNlX3Ry ZWUuYyAgICAgICB8ICA4ICsrKy0tLS0tCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3BsYXRmb3JtLmgg fCAxMiArKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKSwgMTEg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIv eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IGNiNjYzMDQuLjkyNTM2ZGQgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0vZG9t YWluX2J1aWxkLmMKQEAgLTExMjAsMTIgKzExMjAsMTYgQEAgc3RhdGljIGludCBoYW5kbGVfZGV2 aWNlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqZGV2LAogCiAgICAg ICAgIC8qCiAgICAgICAgICAqIERvbid0IG1hcCBJUlEgdGhhdCBoYXZlIG5vIHBoeXNpY2FsIG1l YW5pbmcKLSAgICAgICAgICogaWU6IElSUSB3aG9zZSBjb250cm9sbGVyIGlzIG5vdCB0aGUgR0lD CisgICAgICAgICAqIGllOiBJUlEgdGhhdCBkb2VzIG5vdCB3aW5kIHVwIGJlaW5nIGNvbnRyb2xs ZWQgYnkgdGhlIEdJQworICAgICAgICAgKiAoTm90ZSB0aGF0IHdlIGNhbid0IGp1c3QgY2hlY2sg dG8gc2VlIGlmIGFuIElSUSBpcyBvd25lZCBieSB0aGUgR0lDLAorICAgICAgICAgKiAgYXMgc29t ZSBwbGF0Zm9ybXMgaGF2ZSBhIGNvbnRyb2xsZXIgYmV0d2VlbiB0aGUgZGV2aWNlIGlycSBhbmQg dGhlIEdJQywKKyAgICAgICAgICogIHN1Y2ggYXMgdGhlIFRlZ3JhIGxlZ2FjeSBpbnRlcnJ1cHQg Y29udHJvbGxlci4pCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIHJpcnEuY29udHJvbGxlciAh PSBkdF9pbnRlcnJ1cHRfY29udHJvbGxlciApCisgICAgICAgIGlmICggIXBsYXRmb3JtX2lycV9p c19yb3V0YWJsZSgmcmlycSkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBkdF9kcHJpbnRrKCJp cnEgJXUgbm90IGNvbm5lY3RlZCB0byBwcmltYXJ5IGNvbnRyb2xsZXIuIENvbm5lY3RlZCB0byAl c1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICBpLCBkdF9ub2RlX2Z1bGxfbmFtZShyaXJxLmNv bnRyb2xsZXIpKTsKKyAgICAgICAgICAgIGR0X2RwcmludGsoImlycSAldSBub3QgKGRpcmVjdGx5 IG9yIGluZGlyZWN0bHkpIGNvbm5lY3RlZCB0byBwcmltYXJ5IgorICAgICAgICAgICAgICAgICAg ICAgICAgImNvbnRyb2xsZXIuIENvbm5lY3RlZCB0byAlc1xuIiwgaSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGR0X25vZGVfZnVsbF9uYW1lKHJpcnEuY29udHJvbGxlcikpOwogICAgICAgICAg ICAgY29udGludWU7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2lycS5j IGIveGVuL2FyY2gvYXJtL2lycS5jCmluZGV4IGYzZjIwYTYuLjBiNGVhYTkgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL2FybS9pcnEuYworKysgYi94ZW4vYXJjaC9hcm0vaXJxLmMKQEAgLTI2LDYgKzI2 LDcgQEAKIAogI2luY2x1ZGUgPGFzbS9naWMuaD4KICNpbmNsdWRlIDxhc20vdmdpYy5oPgorI2lu Y2x1ZGUgPGFzbS9wbGF0Zm9ybS5oPgogCiBzdGF0aWMgdW5zaWduZWQgaW50IGxvY2FsX2lycXNf dHlwZVtOUl9MT0NBTF9JUlFTXTsKIHN0YXRpYyBERUZJTkVfU1BJTkxPQ0sobG9jYWxfaXJxc190 eXBlX2xvY2spOwpAQCAtMzY5LDcgKzM3MCw3IEBAIGludCBzZXR1cF9pcnEodW5zaWduZWQgaW50 IGlycSwgdW5zaWduZWQgaW50IGlycWZsYWdzLCBzdHJ1Y3QgaXJxYWN0aW9uICpuZXcpCiAgICAg LyogRmlyc3QgdGltZSB0aGUgSVJRIGlzIHNldHVwICovCiAgICAgaWYgKCBkaXNhYmxlZCApCiAg ICAgewotICAgICAgICBnaWNfcm91dGVfaXJxX3RvX3hlbihkZXNjLCBHSUNfUFJJX0lSUSk7Cisg ICAgICAgIHBsYXRmb3JtX3JvdXRlX2lycV90b194ZW4oZGVzYywgR0lDX1BSSV9JUlEpOwogICAg ICAgICAvKiBJdCdzIGZpbmUgdG8gdXNlIHNtcF9wcm9jZXNzb3JfaWQoKSBiZWNhdXNlOgogICAg ICAgICAgKiBGb3IgUFBJOiBpcnFfZGVzYyBpcyBiYW5rZWQKICAgICAgICAgICogRm9yIFNQSTog d2UgZG9uJ3QgY2FyZSBmb3Igbm93IHdoaWNoIENQVSB3aWxsIHJlY2VpdmUgdGhlCkBAIC01MDYs NyArNTA3LDcgQEAgaW50IHJvdXRlX2lycV90b19ndWVzdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBpbnQgdmlycSwKICAgICBpZiAoIHJldHZhbCApCiAgICAgICAgIGdvdG8gb3V0OwogCi0g ICAgcmV0dmFsID0gZ2ljX3JvdXRlX2lycV90b19ndWVzdChkLCB2aXJxLCBkZXNjLCBHSUNfUFJJ X0lSUSk7CisgICAgcmV0dmFsID0gcGxhdGZvcm1fcm91dGVfaXJxX3RvX2d1ZXN0KGQsIHZpcnEs IGRlc2MsIEdJQ19QUklfSVJRKTsKIAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2Mt PmxvY2ssIGZsYWdzKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3BsYXRmb3JtLmMgYi94 ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYwppbmRleCAwYWY2ZDU3Li41MzllZTNiIDEwMDY0NAotLS0g YS94ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYworKysgYi94ZW4vYXJjaC9hcm0vcGxhdGZvcm0uYwpA QCAtMTQ3LDYgKzE0NywzNiBAQCBib29sX3QgcGxhdGZvcm1fZGV2aWNlX2lzX2JsYWNrbGlzdGVk KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkKICAgICByZXR1cm4gKGR0X21hdGNo X25vZGUoYmxhY2tsaXN0LCBub2RlKSAhPSBOVUxMKTsKIH0KIAoraW50IHBsYXRmb3JtX3JvdXRl X2lycV90b19ndWVzdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmlycSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGlycV9kZXNjICpkZXNjLCB1bnNpZ25l ZCBpbnQgcHJpb3JpdHkpCit7CisgICAgaWYgKCBwbGF0Zm9ybSAmJiBwbGF0Zm9ybS0+cm91dGVf aXJxX3RvX2d1ZXN0ICkKKyAgICAgICAgcmV0dXJuIHBsYXRmb3JtLT5yb3V0ZV9pcnFfdG9fZ3Vl c3QoZCwgdmlycSwgZGVzYywgcHJpb3JpdHkpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGdp Y19yb3V0ZV9pcnFfdG9fZ3Vlc3QoZCwgdmlycSwgZGVzYywgcHJpb3JpdHkpOworfQorCit2b2lk IHBsYXRmb3JtX3JvdXRlX2lycV90b194ZW4oc3RydWN0IGlycV9kZXNjICpkZXNjLCB1bnNpZ25l ZCBpbnQgcHJpb3JpdHkpCit7CisgICAgaWYgKCBwbGF0Zm9ybSAmJiBwbGF0Zm9ybS0+cm91dGVf aXJxX3RvX3hlbiApCisgICAgICAgIHBsYXRmb3JtLT5yb3V0ZV9pcnFfdG9feGVuKGRlc2MsIHBy aW9yaXR5KTsKKyAgICBlbHNlCisgICAgICAgIGdpY19yb3V0ZV9pcnFfdG9feGVuKGRlc2MsIHBy aW9yaXR5KTsKK30KKworYm9vbCBwbGF0Zm9ybV9pcnFfaXNfcm91dGFibGUoY29uc3Qgc3RydWN0 IGR0X3Jhd19pcnEgKiByaXJxKQoreworICAgIC8qCisgICAgICogSWYgd2UgaGF2ZSBhIHBsYXRm b3JtLXNwZWNpZmljIG1ldGhvZCB0byBkZXRlcm1pbmUgaWYgYW4gSVJRIGlzIHJvdXRhYmxlLAor ICAgICAqIGNoZWNrIHRoYXQ7IG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gY2hlY2tpbmcgdG8gc2Vl IGlmIGFuIElSUSBiZWxvbmdzIHRvCisgICAgICogdGhlIEdJQy4KKyAgICAgKi8KKyAgICBpZiAo IHBsYXRmb3JtICYmIHBsYXRmb3JtLT5pcnFfaXNfcm91dGFibGUgKQorICAgICAgICByZXR1cm4g cGxhdGZvcm0tPmlycV9pc19yb3V0YWJsZShyaXJxKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVy biAocmlycS0+Y29udHJvbGxlciA9PSBkdF9pbnRlcnJ1cHRfY29udHJvbGxlcik7Cit9CisKIC8q CiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vY29tbW9u L2RldmljZV90cmVlLmMgYi94ZW4vY29tbW9uL2RldmljZV90cmVlLmMKaW5kZXggN2IwMDllYS4u MDYxNjkzYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9kZXZpY2VfdHJlZS5jCisrKyBiL3hlbi9j b21tb24vZGV2aWNlX3RyZWUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHhlbi9zdHJp bmcuaD4KICNpbmNsdWRlIDx4ZW4vY3B1bWFzay5oPgogI2luY2x1ZGUgPHhlbi9jdHlwZS5oPgor I2luY2x1ZGUgPGFzbS9wbGF0Zm9ybS5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogI2luY2x1 ZGUgPHhlbi9lcnIuaD4KIApAQCAtMTQ2NywxMSArMTQ2OCw4IEBAIGludCBkdF9pcnFfdHJhbnNs YXRlKGNvbnN0IHN0cnVjdCBkdF9yYXdfaXJxICpyYXcsCiAgICAgQVNTRVJUKGR0X2lycV94bGF0 ZSAhPSBOVUxMKTsKICAgICBBU1NFUlQoZHRfaW50ZXJydXB0X2NvbnRyb2xsZXIgIT0gTlVMTCk7 CiAKLSAgICAvKgotICAgICAqIFRPRE86IFJldHJpZXZlIHRoZSByaWdodCBpcnFfeGxhdGUuIFRo aXMgaXMgb25seSB3b3JrcyBmb3IgdGhlIHByaW1hcnkKLSAgICAgKiBpbnRlcnJ1cHQgY29udHJv bGxlci4KLSAgICAgKi8KLSAgICBpZiAoIHJhdy0+Y29udHJvbGxlciAhPSBkdF9pbnRlcnJ1cHRf Y29udHJvbGxlciApCisgICAgLyogT25seSBwcm9jZWVkIHdpdGggdHJhbnNsYXRpb24gaWYgdGhl IGlycSBpcyByb3V0YWJsZSBvbiB0aGUgcGxhdGZvcm0uICovCisgICAgaWYgKCAhcGxhdGZvcm1f aXJxX2lzX3JvdXRhYmxlKHJhdykgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAogICAgIHJl dHVybiBkdF9pcnFfeGxhdGUocmF3LT5zcGVjaWZpZXIsIHJhdy0+c2l6ZSwKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL2FzbS1hcm0vcGxhdGZvcm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcGxh dGZvcm0uaAppbmRleCAwODAxMGJhLi4xMTlhZDJlIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20tYXJtL3BsYXRmb3JtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wbGF0Zm9ybS5oCkBA IC0yNiw2ICsyNiwxMiBAQCBzdHJ1Y3QgcGxhdGZvcm1fZGVzYyB7CiAgICAgdm9pZCAoKnJlc2V0 KSh2b2lkKTsKICAgICAvKiBQbGF0Zm9ybSBwb3dlci1vZmYgKi8KICAgICB2b2lkICgqcG93ZXJv ZmYpKHZvaWQpOworICAgIC8qIFBsYXRmb3JtLXNwZWNpZmljIElSUSByb3V0aW5nICovCisgICAg aW50ICgqcm91dGVfaXJxX3RvX2d1ZXN0KShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQg dmlycSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRl c2MsIHVuc2lnbmVkIGludCBwcmlvcml0eSk7CisgICAgdm9pZCAoKnJvdXRlX2lycV90b194ZW4p KHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgdW5zaWduZWQgaW50IHByaW9yaXR5KTsKKyAgICBib29s ICgqaXJxX2lzX3JvdXRhYmxlKShjb25zdCBzdHJ1Y3QgZHRfcmF3X2lycSAqIHJpcnEpOworCiAg ICAgLyoKICAgICAgKiBQbGF0Zm9ybSBxdWlya3MKICAgICAgKiBEZWZpbmVkIGhhcyBhIGZ1bmN0 aW9uIGJlY2F1c2UgYSBwbGF0Zm9ybSBjYW4gc3VwcG9ydCBtdWx0aXBsZQpAQCAtNTYsNiArNjIs MTIgQEAgaW50IHBsYXRmb3JtX2NwdV91cChpbnQgY3B1KTsKIHZvaWQgcGxhdGZvcm1fcmVzZXQo dm9pZCk7CiB2b2lkIHBsYXRmb3JtX3Bvd2Vyb2ZmKHZvaWQpOwogYm9vbF90IHBsYXRmb3JtX2hh c19xdWlyayh1aW50MzJfdCBxdWlyayk7CisKK2ludCBwbGF0Zm9ybV9yb3V0ZV9pcnFfdG9fZ3Vl c3Qoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIHVuc2lnbmVkIGludCBwcmlv cml0eSk7Cit2b2lkIHBsYXRmb3JtX3JvdXRlX2lycV90b194ZW4oc3RydWN0IGlycV9kZXNjICpk ZXNjLCB1bnNpZ25lZCBpbnQgcHJpb3JpdHkpOworYm9vbCBwbGF0Zm9ybV9pcnFfaXNfcm91dGFi bGUoY29uc3Qgc3RydWN0IGR0X3Jhd19pcnEgKnJpcnEpOworCiBib29sX3QgcGxhdGZvcm1fZGV2 aWNlX2lzX2JsYWNrbGlzdGVkKGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSk7CiAK ICNkZWZpbmUgUExBVEZPUk1fU1RBUlQoX25hbWUsIF9uYW1lc3RyKSAgICAgICAgICAgICAgICAg ICAgICAgICBcCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=