From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v2 26/45] ARM: new VGIC: Add PENDING registers handlers Date: Thu, 15 Mar 2018 20:30:31 +0000 Message-ID: <20180315203050.19791-27-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 1ewZXF-0003qL-LY for xen-devel@lists.xenproject.org; Thu, 15 Mar 2018 20:31:37 +0000 Received: by mail-wr0-x242.google.com with SMTP id o1so9583687wro.10 for ; Thu, 15 Mar 2018 13:31:36 -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 VGhlIHBlbmRpbmcgcmVnaXN0ZXIgaGFuZGxlcnMgYXJlIHNoYXJlZCBiZXR3ZWVuIHRoZSB2MiBh bmQgdjMKZW11bGF0aW9uLCBzbyB0aGVpciBpbXBsZW1lbnRhdGlvbiBnb2VzIGludG8gdmdpYy1t bWlvLmMsIHRvIGJlIGVhc2lseQpyZWZlcmVuY2VkIGZyb20gdGhlIHYzIGVtdWxhdGlvbiBhcyB3 ZWxsIGxhdGVyLgpGb3IgbGV2ZWwgdHJpZ2dlcmVkIGludGVycnVwdHMgdGhlIHJlYWwgbGluZSBs ZXZlbCBpcyB1bmFmZmVjdGVkIGJ5CnRoaXMgd3JpdGUsIHNvIHdlIGtlZXAgdGhpcyBzdGF0ZSBz ZXBhcmF0ZSBhbmQgY29tYmluZSBpdCB3aXRoIHRoZQpkZXZpY2UncyBsZXZlbCB0byBnZXQgdGhl IGFjdHVhbCBwZW5kaW5nIHN0YXRlLgpIYXJkd2FyZSBtYXBwZWQgSVJRcyBuZWVkIHNvbWUgc3Bl Y2lhbCBoYW5kbGluZywgYXMgdGhlaXIgaGFyZHdhcmUgc3RhdGUKaGFzIHRvIGJlIGNvb3JkaW5h dGVkIHdpdGggdGhlIHZpcnR1YWwgcGVuZGluZyBiaXQgdG8gYXZvaWQgaGFuZ2luZwpvciBtYXNr ZWQgaW50ZXJydXB0cy4KClRoaXMgaXMgYmFzZWQgb24gTGludXggY29tbWl0IDk2YjI5ODAwMGRi NCwgd3JpdHRlbiBieSBBbmRyZSBQcnp5d2FyYS4KClNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3 YXJhIDxhbmRyZS5wcnp5d2FyYUBsaW5hcm8ub3JnPgotLS0KQ2hhbmdlbG9nIHYxIC4uLiB2MjoK LSBBU1NFUlQgb24gaC93IElSUSBhbmQgdklSUSBzdGF5aW5nIGluIHN5bmMKCiB4ZW4vYXJjaC9h cm0vdmdpYy92Z2ljLW1taW8tdjIuYyB8ICAgNCArLQogeGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1t bWlvLmMgICAgfCAxMjUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4 ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8uaCAgICB8ICAxMSArKysrCiAzIGZpbGVzIGNoYW5n ZWQsIDEzOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS92Z2ljL3ZnaWMtbW1pby12Mi5jIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlv LXYyLmMKaW5kZXggN2VmZDFjNGViNC4uYTQ4YzU1NDA0MCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv YXJtL3ZnaWMvdmdpYy1tbWlvLXYyLmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlv LXYyLmMKQEAgLTk1LDEwICs5NSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZnaWNfcmVnaXN0 ZXJfcmVnaW9uIHZnaWNfdjJfZGlzdF9yZWdpc3RlcnNbXSA9IHsKICAgICAgICAgdmdpY19tbWlv X3JlYWRfZW5hYmxlLCB2Z2ljX21taW9fd3JpdGVfY2VuYWJsZSwgMSwKICAgICAgICAgVkdJQ19B Q0NFU1NfMzJiaXQpLAogICAgIFJFR0lTVEVSX0RFU0NfV0lUSF9CSVRTX1BFUl9JUlEoR0lDRF9J U1BFTkRSLAotICAgICAgICB2Z2ljX21taW9fcmVhZF9yYXosIHZnaWNfbW1pb193cml0ZV93aSwg MSwKKyAgICAgICAgdmdpY19tbWlvX3JlYWRfcGVuZGluZywgdmdpY19tbWlvX3dyaXRlX3NwZW5k aW5nLCAxLAogICAgICAgICBWR0lDX0FDQ0VTU18zMmJpdCksCiAgICAgUkVHSVNURVJfREVTQ19X SVRIX0JJVFNfUEVSX0lSUShHSUNEX0lDUEVORFIsCi0gICAgICAgIHZnaWNfbW1pb19yZWFkX3Jh eiwgdmdpY19tbWlvX3dyaXRlX3dpLCAxLAorICAgICAgICB2Z2ljX21taW9fcmVhZF9wZW5kaW5n LCB2Z2ljX21taW9fd3JpdGVfY3BlbmRpbmcsIDEsCiAgICAgICAgIFZHSUNfQUNDRVNTXzMyYml0 KSwKICAgICBSRUdJU1RFUl9ERVNDX1dJVEhfQklUU19QRVJfSVJRKEdJQ0RfSVNBQ1RJVkVSLAog ICAgICAgICB2Z2ljX21taW9fcmVhZF9yYXosIHZnaWNfbW1pb193cml0ZV93aSwgMSwKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljL3ZnaWMtbW1pby5jIGIveGVuL2FyY2gvYXJtL3ZnaWMv dmdpYy1tbWlvLmMKaW5kZXggOTllMWFkYjFlYS4uMTUxODNjMTEyYyAxMDA2NDQKLS0tIGEveGVu L2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1t bWlvLmMKQEAgLTE1Niw2ICsxNTYsMTMxIEBAIHZvaWQgdmdpY19tbWlvX3dyaXRlX2NlbmFibGUo c3RydWN0IHZjcHUgKnZjcHUsCiAgICAgfQogfQogCit1bnNpZ25lZCBsb25nIHZnaWNfbW1pb19y ZWFkX3BlbmRpbmcoc3RydWN0IHZjcHUgKnZjcHUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGFkZHJfdCBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuKQoreworICAgIHVpbnQz Ml90IGludGlkID0gVkdJQ19BRERSX1RPX0lOVElEKGFkZHIsIDEpOworICAgIHVpbnQzMl90IHZh bHVlID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIC8qIExvb3Agb3ZlciBhbGwgSVJR cyBhZmZlY3RlZCBieSB0aGlzIHJlYWQgKi8KKyAgICBmb3IgKCBpID0gMDsgaSA8IGxlbiAqIDg7 IGkrKyApCisgICAgeworICAgICAgICBzdHJ1Y3QgdmdpY19pcnEgKmlycSA9IHZnaWNfZ2V0X2ly cSh2Y3B1LT5kb21haW4sIHZjcHUsIGludGlkICsgaSk7CisKKyAgICAgICAgaWYgKCBpcnFfaXNf cGVuZGluZyhpcnEpICkKKyAgICAgICAgICAgIHZhbHVlIHw9ICgxVSA8PCBpKTsKKworICAgICAg ICB2Z2ljX3B1dF9pcnEodmNwdS0+ZG9tYWluLCBpcnEpOworICAgIH0KKworICAgIHJldHVybiB2 YWx1ZTsKK30KKwordm9pZCB2Z2ljX21taW9fd3JpdGVfc3BlbmRpbmcoc3RydWN0IHZjcHUgKnZj cHUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGFkZHIsIHVuc2lnbmVk IGludCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZh bCkKK3sKKyAgICB1aW50MzJfdCBpbnRpZCA9IFZHSUNfQUREUl9UT19JTlRJRChhZGRyLCAxKTsK KyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICB1bnNpZ25lZCBsb25nIGZsYWdzOworICAgIGlycV9k ZXNjX3QgKmRlc2M7CisKKyAgICBmb3JfZWFjaF9zZXRfYml0KCBpLCAmdmFsLCBsZW4gKiA4ICkK KyAgICB7CisgICAgICAgIHN0cnVjdCB2Z2ljX2lycSAqaXJxID0gdmdpY19nZXRfaXJxKHZjcHUt PmRvbWFpbiwgdmNwdSwgaW50aWQgKyBpKTsKKworICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgm aXJxLT5pcnFfbG9jaywgZmxhZ3MpOworICAgICAgICBpcnEtPnBlbmRpbmdfbGF0Y2ggPSB0cnVl OworCisgICAgICAgIC8qIFRvIG9ic2VydmUgdGhlIGxvY2tpbmcgb3JkZXIsIGp1c3QgdGFrZSB0 aGUgaXJxX2Rlc2MgcG9pbnRlciBoZXJlLiAqLworICAgICAgICBpZiAoIGlycS0+aHcgKQorICAg ICAgICAgICAgZGVzYyA9IGlycV90b19kZXNjKGlycS0+aHdpbnRpZCk7CisgICAgICAgIGVsc2UK KyAgICAgICAgICAgIGRlc2MgPSBOVUxMOworCisgICAgICAgIHZnaWNfcXVldWVfaXJxX3VubG9j ayh2Y3B1LT5kb21haW4sIGlycSwgZmxhZ3MpOworCisgICAgICAgIC8qCisgICAgICAgICAqIFdo ZW4gdGhlIFZNIHNldHMgdGhlIHBlbmRpbmcgc3RhdGUgZm9yIGEgSFcgaW50ZXJydXB0IG9uIHRo ZSB2aXJ0dWFsCisgICAgICAgICAqIGRpc3RyaWJ1dG9yIHdlIHNldCB0aGUgYWN0aXZlIHN0YXRl IG9uIHRoZSBwaHlzaWNhbCBkaXN0cmlidXRvciwKKyAgICAgICAgICogYmVjYXVzZSB0aGUgdmly dHVhbCBpbnRlcnJ1cHQgY2FuIGJlY29tZSBhY3RpdmUgYW5kIHRoZW4gdGhlIGd1ZXN0CisgICAg ICAgICAqIGNhbiBkZWFjdGl2YXRlIGl0LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBkZXNj ICkKKyAgICAgICAgeworICAgICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmRlc2MtPmxvY2ss IGZsYWdzKTsKKyAgICAgICAgICAgIHNwaW5fbG9jaygmaXJxLT5pcnFfbG9jayk7CisKKyAgICAg ICAgICAgIC8qIFRoaXMgaC93IElSUSBzaG91bGQgc3RpbGwgYmUgYXNzaWduZWQgdG8gdGhlIHZp cnR1YWwgSVJRLiAqLworICAgICAgICAgICAgQVNTRVJUKGlycS0+aHcgJiYgZGVzYy0+aXJxID09 IGlycS0+aHdpbnRpZCk7CisKKyAgICAgICAgICAgIGdpY19zZXRfYWN0aXZlX3N0YXRlKGRlc2Ms IHRydWUpOworCisgICAgICAgICAgICBzcGluX3VubG9jaygmaXJxLT5pcnFfbG9jayk7CisgICAg ICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAg ICAgIH0KKworICAgICAgICB2Z2ljX3B1dF9pcnEodmNwdS0+ZG9tYWluLCBpcnEpOworICAgIH0K K30KKwordm9pZCB2Z2ljX21taW9fd3JpdGVfY3BlbmRpbmcoc3RydWN0IHZjcHUgKnZjcHUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGFkZHIsIHVuc2lnbmVkIGludCBs ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHZhbCkKK3sK KyAgICB1aW50MzJfdCBpbnRpZCA9IFZHSUNfQUREUl9UT19JTlRJRChhZGRyLCAxKTsKKyAgICB1 bnNpZ25lZCBpbnQgaTsKKyAgICB1bnNpZ25lZCBsb25nIGZsYWdzOworICAgIGlycV9kZXNjX3Qg KmRlc2M7CisKKyAgICBmb3JfZWFjaF9zZXRfYml0KCBpLCAmdmFsLCBsZW4gKiA4ICkKKyAgICB7 CisgICAgICAgIHN0cnVjdCB2Z2ljX2lycSAqaXJxID0gdmdpY19nZXRfaXJxKHZjcHUtPmRvbWFp biwgdmNwdSwgaW50aWQgKyBpKTsKKworICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaXJxLT5p cnFfbG9jaywgZmxhZ3MpOworICAgICAgICBpcnEtPnBlbmRpbmdfbGF0Y2ggPSBmYWxzZTsKKwor ICAgICAgICAvKiBUbyBvYnNlcnZlIHRoZSBsb2NraW5nIG9yZGVyLCBqdXN0IHRha2UgdGhlIGly cV9kZXNjIHBvaW50ZXIgaGVyZS4gKi8KKyAgICAgICAgaWYgKCBpcnEtPmh3ICkKKyAgICAgICAg ICAgIGRlc2MgPSBpcnFfdG9fZGVzYyhpcnEtPmh3aW50aWQpOworICAgICAgICBlbHNlCisgICAg ICAgICAgICBkZXNjID0gTlVMTDsKKworICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZp cnEtPmlycV9sb2NrLCBmbGFncyk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgZG9uJ3Qg d2FudCB0aGUgZ3Vlc3QgdG8gZWZmZWN0aXZlbHkgbWFzayB0aGUgcGh5c2ljYWwKKyAgICAgICAg ICogaW50ZXJydXB0IGJ5IGRvaW5nIGEgd3JpdGUgdG8gU1BFTkRSIGZvbGxvd2VkIGJ5IGEgd3Jp dGUgdG8KKyAgICAgICAgICogQ1BFTkRSIGZvciBIVyBpbnRlcnJ1cHRzLCBzbyB3ZSBjbGVhciB0 aGUgYWN0aXZlIHN0YXRlIG9uCisgICAgICAgICAqIHRoZSBwaHlzaWNhbCBzaWRlIGlmIHRoZSB2 aXJ0dWFsIGludGVycnVwdCBpcyBub3QgYWN0aXZlLgorICAgICAgICAgKiBUaGlzIG1heSBsZWFk IHRvIHRha2luZyBhbiBhZGRpdGlvbmFsIGludGVycnVwdCBvbiB0aGUKKyAgICAgICAgICogaG9z dCwgYnV0IHRoYXQgc2hvdWxkIG5vdCBiZSBhIHByb2JsZW0gYXMgdGhlIHdvcnN0IHRoYXQKKyAg ICAgICAgICogY2FuIGhhcHBlbiBpcyBhbiBhZGRpdGlvbmFsIHZnaWMgaW5qZWN0aW9uLiAgV2Ug YWxzbyBjbGVhcgorICAgICAgICAgKiB0aGUgcGVuZGluZyBzdGF0ZSB0byBtYWludGFpbiBwcm9w ZXIgc2VtYW50aWNzIGZvciBlZGdlIEhXCisgICAgICAgICAqIGludGVycnVwdHMuCisgICAgICAg ICAqLworICAgICAgICBpZiAoIGRlc2MgKQorICAgICAgICB7CisgICAgICAgICAgICBzcGluX2xv Y2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworICAgICAgICAgICAgc3Bpbl9sb2NrKCZp cnEtPmlycV9sb2NrKTsKKworICAgICAgICAgICAgLyogVGhpcyBoL3cgSVJRIHNob3VsZCBzdGls bCBiZSBhc3NpZ25lZCB0byB0aGUgdmlydHVhbCBJUlEuICovCisgICAgICAgICAgICBBU1NFUlQo aXJxLT5odyAmJiBkZXNjLT5pcnEgPT0gaXJxLT5od2ludGlkKTsKKworICAgICAgICAgICAgZ2lj X3NldF9wZW5kaW5nX3N0YXRlKGRlc2MsIGZhbHNlKTsKKyAgICAgICAgICAgIGlmICghaXJxLT5h Y3RpdmUpCisgICAgICAgICAgICAgICAgZ2ljX3NldF9hY3RpdmVfc3RhdGUoZGVzYywgZmFsc2Up OworCisgICAgICAgICAgICBzcGluX3VubG9jaygmaXJxLT5pcnFfbG9jayk7CisgICAgICAgICAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAgICAgIH0K KworCisgICAgICAgIHZnaWNfcHV0X2lycSh2Y3B1LT5kb21haW4sIGlycSk7CisgICAgfQorfQor CiBzdGF0aWMgaW50IG1hdGNoX3JlZ2lvbihjb25zdCB2b2lkICprZXksIGNvbnN0IHZvaWQgKmVs dCkKIHsKICAgICBjb25zdCB1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gKHVuc2lnbmVkIGxvbmcpa2V5 OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1tbWlvLmggYi94ZW4vYXJjaC9h cm0vdmdpYy92Z2ljLW1taW8uaAppbmRleCBhMmNlYmQ3N2Y0Li41YzkyN2YyOGIwIDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLW1taW8uaAorKysgYi94ZW4vYXJjaC9hcm0vdmdp Yy92Z2ljLW1taW8uaApAQCAtOTcsNiArOTcsMTcgQEAgdm9pZCB2Z2ljX21taW9fd3JpdGVfY2Vu YWJsZShzdHJ1Y3QgdmNwdSAqdmNwdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFk ZHJfdCBhZGRyLCB1bnNpZ25lZCBpbnQgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHZhbCk7CiAKK3Vuc2lnbmVkIGxvbmcgdmdpY19tbWlvX3JlYWRfcGVu ZGluZyhzdHJ1Y3QgdmNwdSAqdmNwdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWRkcl90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4pOworCit2b2lkIHZnaWNfbW1pb193 cml0ZV9zcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdmNwdSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhZGRyX3QgYWRkciwgdW5zaWduZWQgaW50IGxlbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdmFsKTsKKwordm9pZCB2Z2ljX21taW9fd3JpdGVf Y3BlbmRpbmcoc3RydWN0IHZjcHUgKnZjcHUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkcl90IGFkZHIsIHVuc2lnbmVkIGludCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIHZhbCk7CisKIHVuc2lnbmVkIGludCB2Z2ljX3YyX2luaXRf ZGlzdF9pb2RldihzdHJ1Y3QgdmdpY19pb19kZXZpY2UgKmRldik7CiAKICNlbmRpZgotLSAKMi4x NC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==