From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v2 09/45] ARM: GIC: Allow tweaking the active and pending state of an IRQ Date: Thu, 15 Mar 2018 20:30:14 +0000 Message-ID: <20180315203050.19791-10-andre.przywara@linaro.org> References: <20180315203050.19791-1-andre.przywara@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ewZWv-00038a-M8 for xen-devel@lists.xenproject.org; Thu, 15 Mar 2018 20:31:17 +0000 Received: by mail-wm0-x242.google.com with SMTP id t3so12791536wmc.2 for ; Thu, 15 Mar 2018 13:31:16 -0700 (PDT) In-Reply-To: <20180315203050.19791-1-andre.przywara@linaro.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Stefano Stabellini , Julien Grall Cc: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org V2hlbiBwbGF5aW5nIGFyb3VuZCB3aXRoIGhhcmR3YXJlIG1hcHBlZCwgbGV2ZWwgdHJpZ2dlcmVk IHZpcnR1YWwgSVJRcywKdGhlcmUgaXMgdGhlIG5lZWQgdG8gZXhwbGljaXRseSBzZXQgdGhlIGFj dGl2ZSBvciBwZW5kaW5nIHN0YXRlIG9mIGFuCmludGVycnVwdCBhdCBzb21lIHBvaW50LgpUbyBw cmVwYXJlIHRoZSBHSUMgZm9yIHRoYXQsIHdlIGludHJvZHVjZSBhIHNldF9hY3RpdmVfc3RhdGUo KSBhbmQgYQpzZXRfcGVuZGluZ19zdGF0ZSgpIGZ1bmN0aW9uIHRvIGxldCB0aGUgVkdJQyBtYW5p cHVsYXRlIHRoZSBzdGF0ZSBvZgphbiBhc3NvY2lhdGVkIGhhcmR3YXJlIElSUS4KVGhpcyB0YWtl cyBjYXJlIG9mIHByb3Blcmx5IHNldHRpbmcgdGhlIF9JUlFfSU5QUk9HUkVTUyBiaXQuCkZvciB0 aGlzIGl0IGFkZHMgZ2ljdjIvM19wZWVrX2lycSgpIGhlbHBlciBmdW5jdGlvbnMsIHRvIHJlYWQg YSBiaXQgaW4gYQpiaXRtYXAgc3ByZWFkIG92ZXIgc2V2ZXJhbCBNTUlPIHJlZ2lzdGVycy4KClNp Z25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJhIDxhbmRyZS5wcnp5d2FyYUBsaW5hcm8ub3JnPgot LS0KQ2hhbmdlbG9nIHYxIC4uLiB2MjoKLSBwcm9wZXJseSBzZXQgX0lSUV9JTlBST0dSRVNTIGJp dAotIGFkZCBnaWN2WzIzXV9wZWVrX2lycSgpIChwdWxsZWQgaW4gZnJvbSBsYXRlciBwYXRjaCkK LSBtb3ZlIHdyYXBwZXJzIGZ1bmN0aW9ucyBpbnRvIGdpYy5oCgogeGVuL2FyY2gvYXJtL2dpYy12 Mi5jICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IHhlbi9hcmNoL2FybS9naWMtdjMuYyAgICAgfCA1MiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLWFybS9naWMuaCB8IDI0ICsr KysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYyLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYy LmMKaW5kZXggN2RmZTZmYzY4ZC4uYzZmY2JmNTlkMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJt L2dpYy12Mi5jCisrKyBiL3hlbi9hcmNoL2FybS9naWMtdjIuYwpAQCAtMjQzLDYgKzI0Myw1MiBA QCBzdGF0aWMgdm9pZCBnaWN2Ml9wb2tlX2lycShzdHJ1Y3QgaXJxX2Rlc2MgKmlycWQsIHVpbnQz Ml90IG9mZnNldCkKICAgICB3cml0ZWxfZ2ljZCgxVSA8PCAoaXJxZC0+aXJxICUgMzIpLCBvZmZz ZXQgKyAoaXJxZC0+aXJxIC8gMzIpICogNCk7CiB9CiAKK3N0YXRpYyBib29sIGdpY3YyX3BlZWtf aXJxKHN0cnVjdCBpcnFfZGVzYyAqaXJxZCwgdWludDMyX3Qgb2Zmc2V0KQoreworICAgIHVpbnQz Ml90IHJlZzsKKworICAgIHJlZyA9IHJlYWRsX2dpY2Qob2Zmc2V0ICsgKGlycWQtPmlycSAvIDMy KSAqIDQpICYgKDFVIDw8IChpcnFkLT5pcnEgJSAzMikpOworCisgICAgcmV0dXJuIHJlZzsKK30K Kworc3RhdGljIHZvaWQgZ2ljdjJfc2V0X2FjdGl2ZV9zdGF0ZShzdHJ1Y3QgaXJxX2Rlc2MgKmly cWQsIGJvb2wgYWN0aXZlKQoreworICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmaXJxZC0+bG9j aykpOworCisgICAgaWYgKCBhY3RpdmUgKQorICAgIHsKKyAgICAgICAgaWYgKCB0ZXN0X2JpdChf SVJRX0dVRVNULCAmaXJxZC0+c3RhdHVzKSApCisgICAgICAgICAgICBzZXRfYml0KF9JUlFfSU5Q Uk9HUkVTUywgJmlycWQtPnN0YXR1cyk7CisgICAgICAgIGdpY3YyX3Bva2VfaXJxKGlycWQsIEdJ Q0RfSVNBQ1RJVkVSKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgZ2ljdjJfcG9r ZV9pcnEoaXJxZCwgR0lDRF9JQ0FDVElWRVIpOworICAgICAgICBpZiAoICFnaWN2Ml9wZWVrX2ly cShpcnFkLCBHSUNEX0lTUEVORFIpICYmCisgICAgICAgICAgICAgdGVzdF9iaXQoX0lSUV9HVUVT VCwgJmlycWQtPnN0YXR1cykgKQorICAgICAgICAgICAgY2xlYXJfYml0KF9JUlFfSU5QUk9HUkVT UywgJmlycWQtPnN0YXR1cyk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBnaWN2Ml9zZXRfcGVu ZGluZ19zdGF0ZShzdHJ1Y3QgaXJxX2Rlc2MgKmlycWQsIGJvb2wgcGVuZGluZykKK3sKKyAgICBB U1NFUlQoc3Bpbl9pc19sb2NrZWQoJmlycWQtPmxvY2spKTsKKworICAgIGlmICggcGVuZGluZyAp CisgICAgeworICAgICAgICAvKiBUaGUgSU5QUk9HUkVTUyBiaXQgd2lsbCBiZSBzZXQgd2hlbiB0 aGUgaW50ZXJydXB0IGZpcmVzLiAqLworICAgICAgICBnaWN2Ml9wb2tlX2lycShpcnFkLCBHSUNE X0lTUEVORFIpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBnaWN2Ml9wb2tlX2ly cShpcnFkLCBHSUNEX0lDUEVORFIpOworICAgICAgICBpZiAoICFnaWN2Ml9wZWVrX2lycShpcnFk LCBHSUNEX0lTQUNUSVZFUikgJiYKKyAgICAgICAgICAgICB0ZXN0X2JpdChfSVJRX0dVRVNULCAm aXJxZC0+c3RhdHVzKSApCisgICAgICAgICAgICBjbGVhcl9iaXQoX0lSUV9JTlBST0dSRVNTLCAm aXJxZC0+c3RhdHVzKTsKKyAgICB9Cit9CisKIHN0YXRpYyB2b2lkIGdpY3YyX3NldF9pcnFfdHlw ZShzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MsIHVuc2lnbmVkIGludCB0eXBlKQogewogICAgIHVpbnQz Ml90IGNmZywgYWN0dWFsLCBlZGdlYml0OwpAQCAtMTI3Nyw2ICsxMzIzLDggQEAgY29uc3Qgc3Rh dGljIHN0cnVjdCBnaWNfaHdfb3BlcmF0aW9ucyBnaWN2Ml9vcHMgPSB7CiAgICAgLmVvaV9pcnEg ICAgICAgICAgICAgPSBnaWN2Ml9lb2lfaXJxLAogICAgIC5kZWFjdGl2YXRlX2lycSAgICAgID0g Z2ljdjJfZGlyX2lycSwKICAgICAucmVhZF9pcnEgICAgICAgICAgICA9IGdpY3YyX3JlYWRfaXJx LAorICAgIC5zZXRfYWN0aXZlX3N0YXRlICAgID0gZ2ljdjJfc2V0X2FjdGl2ZV9zdGF0ZSwKKyAg ICAuc2V0X3BlbmRpbmdfc3RhdGUgICA9IGdpY3YyX3NldF9wZW5kaW5nX3N0YXRlLAogICAgIC5z ZXRfaXJxX3R5cGUgICAgICAgID0gZ2ljdjJfc2V0X2lycV90eXBlLAogICAgIC5zZXRfaXJxX3By aW9yaXR5ICAgID0gZ2ljdjJfc2V0X2lycV9wcmlvcml0eSwKICAgICAuc2VuZF9TR0kgICAgICAg ICAgICA9IGdpY3YyX3NlbmRfU0dJLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My5j IGIveGVuL2FyY2gvYXJtL2dpYy12My5jCmluZGV4IDM5MmNmOTFiNTguLjMxNmYyYzQxNDIgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMuYworKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYz LmMKQEAgLTQ0NCw2ICs0NDQsMTkgQEAgc3RhdGljIHZvaWQgZ2ljdjNfcG9rZV9pcnEoc3RydWN0 IGlycV9kZXNjICppcnFkLCB1MzIgb2Zmc2V0LCBib29sIHdhaXRfZm9yX3J3cCkKICAgICAgICAg Z2ljdjNfd2FpdF9mb3JfcndwKGlycWQtPmlycSk7CiB9CiAKK3N0YXRpYyBib29sIGdpY3YzX3Bl ZWtfaXJxKHN0cnVjdCBpcnFfZGVzYyAqaXJxZCwgdTMyIG9mZnNldCkKK3sKKyAgICB2b2lkIF9f aW9tZW0gKmJhc2U7CisgICAgdW5zaWduZWQgaW50IGlycSA9IGlycWQtPmlycTsKKworICAgIGlm ICggaXJxID49IE5SX0dJQ19MT0NBTF9JUlFTKQorICAgICAgICBiYXNlID0gR0lDRCArIChpcnEg LyAzMikgKiA0OworICAgIGVsc2UKKyAgICAgICAgYmFzZSA9IEdJQ0RfUkRJU1RfU0dJX0JBU0U7 CisKKyAgICByZXR1cm4gISEocmVhZGwoYmFzZSArIG9mZnNldCkgJiAoMVUgPDwgKGlycSAlIDMy KSkpOworfQorCiBzdGF0aWMgdm9pZCBnaWN2M191bm1hc2tfaXJxKHN0cnVjdCBpcnFfZGVzYyAq aXJxZCkKIHsKICAgICBnaWN2M19wb2tlX2lycShpcnFkLCBHSUNEX0lTRU5BQkxFUiwgZmFsc2Up OwpAQCAtNDc3LDYgKzQ5MCw0MyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdpY3YzX3JlYWRfaXJx KHZvaWQpCiAgICAgcmV0dXJuIGlycTsKIH0KIAorc3RhdGljIHZvaWQgZ2ljdjNfc2V0X2FjdGl2 ZV9zdGF0ZShzdHJ1Y3QgaXJxX2Rlc2MgKmlycWQsIGJvb2wgYWN0aXZlKQoreworICAgIEFTU0VS VChzcGluX2lzX2xvY2tlZCgmaXJxZC0+bG9jaykpOworCisgICAgaWYgKCBhY3RpdmUgKQorICAg IHsKKyAgICAgICAgaWYgKCB0ZXN0X2JpdChfSVJRX0dVRVNULCAmaXJxZC0+c3RhdHVzKSApCisg ICAgICAgICAgICBzZXRfYml0KF9JUlFfSU5QUk9HUkVTUywgJmlycWQtPnN0YXR1cyk7CisgICAg ICAgIGdpY3YzX3Bva2VfaXJxKGlycWQsIEdJQ0RfSVNBQ1RJVkVSLCBmYWxzZSk7CisgICAgfQor ICAgIGVsc2UKKyAgICB7CisgICAgICAgIGdpY3YzX3Bva2VfaXJxKGlycWQsIEdJQ0RfSUNBQ1RJ VkVSLCBmYWxzZSk7CisgICAgICAgIGlmICggIWdpY3YzX3BlZWtfaXJxKGlycWQsIEdJQ0RfSVNQ RU5EUikgJiYKKyAgICAgICAgICAgICB0ZXN0X2JpdChfSVJRX0dVRVNULCAmaXJxZC0+c3RhdHVz KSApCisgICAgICAgICAgICBjbGVhcl9iaXQoX0lSUV9JTlBST0dSRVNTLCAmaXJxZC0+c3RhdHVz KTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIGdpY3YzX3NldF9wZW5kaW5nX3N0YXRlKHN0cnVj dCBpcnFfZGVzYyAqaXJxZCwgYm9vbCBwZW5kaW5nKQoreworICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZCgmaXJxZC0+bG9jaykpOworCisgICAgaWYgKCBwZW5kaW5nICkKKyAgICB7CisgICAgICAg IC8qIFRoZSBJTlBST0dSRVNTIGJpdCB3aWxsIGJlIHNldCB3aGVuIHRoZSBpbnRlcnJ1cHQgZmly ZXMuICovCisgICAgICAgIGdpY3YzX3Bva2VfaXJxKGlycWQsIEdJQ0RfSVNQRU5EUiwgZmFsc2Up OworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBnaWN2M19wb2tlX2lycShpcnFkLCBH SUNEX0lDUEVORFIsIGZhbHNlKTsKKyAgICAgICAgaWYgKCAhZ2ljdjNfcGVla19pcnEoaXJxZCwg R0lDRF9JU0FDVElWRVIpICYmCisgICAgICAgICAgICAgdGVzdF9iaXQoX0lSUV9HVUVTVCwgJmly cWQtPnN0YXR1cykgKQorICAgICAgICAgICAgY2xlYXJfYml0KF9JUlFfSU5QUk9HUkVTUywgJmly cWQtPnN0YXR1cyk7CisgICAgfQorfQorCiBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGdpY3YzX21w aWRyX3RvX2FmZmluaXR5KGludCBjcHUpCiB7CiAgICAgIHVpbnQ2NF90IG1waWRyID0gY3B1X2xv Z2ljYWxfbWFwKGNwdSk7CkBAIC0xNzY2LDYgKzE4MTYsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGdpY19od19vcGVyYXRpb25zIGdpY3YzX29wcyA9IHsKICAgICAuZW9pX2lycSAgICAgICAgICAg ICA9IGdpY3YzX2VvaV9pcnEsCiAgICAgLmRlYWN0aXZhdGVfaXJxICAgICAgPSBnaWN2M19kaXJf aXJxLAogICAgIC5yZWFkX2lycSAgICAgICAgICAgID0gZ2ljdjNfcmVhZF9pcnEsCisgICAgLnNl dF9hY3RpdmVfc3RhdGUgICAgPSBnaWN2M19zZXRfYWN0aXZlX3N0YXRlLAorICAgIC5zZXRfcGVu ZGluZ19zdGF0ZSAgID0gZ2ljdjNfc2V0X3BlbmRpbmdfc3RhdGUsCiAgICAgLnNldF9pcnFfdHlw ZSAgICAgICAgPSBnaWN2M19zZXRfaXJxX3R5cGUsCiAgICAgLnNldF9pcnFfcHJpb3JpdHkgICAg PSBnaWN2M19zZXRfaXJxX3ByaW9yaXR5LAogICAgIC5zZW5kX1NHSSAgICAgICAgICAgID0gZ2lj djNfc2VuZF9zZ2ksCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS9naWMuaAppbmRleCA1NjViMDg3NWNhLi4yMWNmMzVmMTA2IDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1h cm0vZ2ljLmgKQEAgLTM0NCw2ICszNDQsMTAgQEAgc3RydWN0IGdpY19od19vcGVyYXRpb25zIHsK ICAgICB2b2lkICgqZGVhY3RpdmF0ZV9pcnEpKHN0cnVjdCBpcnFfZGVzYyAqaXJxZCk7CiAgICAg LyogUmVhZCBJUlEgaWQgYW5kIEFjayAqLwogICAgIHVuc2lnbmVkIGludCAoKnJlYWRfaXJxKSh2 b2lkKTsKKyAgICAvKiBGb3JjZSB0aGUgYWN0aXZlIHN0YXRlIG9mIGFuIElSUSBieSBhY2Nlc3Np bmcgdGhlIGRpc3RyaWJ1dG9yICovCisgICAgdm9pZCAoKnNldF9hY3RpdmVfc3RhdGUpKHN0cnVj dCBpcnFfZGVzYyAqaXJxZCwgYm9vbCBzdGF0ZSk7CisgICAgLyogRm9yY2UgdGhlIHBlbmRpbmcg c3RhdGUgb2YgYW4gSVJRIGJ5IGFjY2Vzc2luZyB0aGUgZGlzdHJpYnV0b3IgKi8KKyAgICB2b2lk ICgqc2V0X3BlbmRpbmdfc3RhdGUpKHN0cnVjdCBpcnFfZGVzYyAqaXJxZCwgYm9vbCBzdGF0ZSk7 CiAgICAgLyogU2V0IElSUSB0eXBlICovCiAgICAgdm9pZCAoKnNldF9pcnFfdHlwZSkoc3RydWN0 IGlycV9kZXNjICpkZXNjLCB1bnNpZ25lZCBpbnQgdHlwZSk7CiAgICAgLyogU2V0IElSUSBwcmlv cml0eSAqLwpAQCAtMzkyLDYgKzM5NiwyNiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBn aWNfZ2V0X25yX2xycyh2b2lkKQogICAgIHJldHVybiBnaWNfaHdfb3BzLT5pbmZvLT5ucl9scnM7 CiB9CiAKKy8qCisgKiBTZXQgdGhlIGFjdGl2ZSBzdGF0ZSBvZiBhbiBJUlEuIFRoaXMgc2hvdWxk IGJlIHVzZWQgd2l0aCBjYXJlLCBhcyB0aGlzCisgKiBkaXJlY3RseSBmb3JjZXMgdGhlIGFjdGl2 ZSBiaXQsIHdpdGhvdXQgY29uc2lkZXJpbmcgdGhlIEdJQyBzdGF0ZSBtYWNoaW5lLgorICogRm9y IHByaXZhdGUgSVJRcyB0aGlzIG9ubHkgd29ya3MgZm9yIHRob3NlIG9mIHRoZSBjdXJyZW50IENQ VS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkIGdpY19zZXRfYWN0aXZlX3N0YXRlKHN0cnVjdCBp cnFfZGVzYyAqaXJxZCwgYm9vbCBzdGF0ZSkKK3sKKyAgICBnaWNfaHdfb3BzLT5zZXRfYWN0aXZl X3N0YXRlKGlycWQsIHN0YXRlKTsKK30KKworLyoKKyAqIFNldCB0aGUgcGVuZGluZyBzdGF0ZSBv ZiBhbiBJUlEuIFRoaXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBjYXJlLCBhcyB0aGlzCisgKiBkaXJl Y3RseSBmb3JjZXMgdGhlIHBlbmRpbmcgYml0LCB3aXRob3V0IGNvbnNpZGVyaW5nIHRoZSBHSUMg c3RhdGUgbWFjaGluZS4KKyAqIEZvciBwcml2YXRlIElSUXMgdGhpcyBvbmx5IHdvcmtzIGZvciB0 aG9zZSBvZiB0aGUgY3VycmVudCBDUFUuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZCBnaWNfc2V0 X3BlbmRpbmdfc3RhdGUoc3RydWN0IGlycV9kZXNjICppcnFkLCBib29sIHN0YXRlKQoreworICAg IGdpY19od19vcHMtPnNldF9wZW5kaW5nX3N0YXRlKGlycWQsIHN0YXRlKTsKK30KKwogdm9pZCBy ZWdpc3Rlcl9naWNfb3BzKGNvbnN0IHN0cnVjdCBnaWNfaHdfb3BlcmF0aW9ucyAqb3BzKTsKIGlu dCBnaWNfbWFrZV9od2RvbV9kdF9ub2RlKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmdpYywKLS0g CjIuMTQuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=