From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v3 09/26] ARM: GICv3: forward pending LPIs to guests Date: Fri, 31 Mar 2017 19:05:08 +0100 Message-ID: <20170331180525.30038-10-andre.przywara@arm.com> References: <20170331180525.30038-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cu0th-0005OI-TO for xen-devel@lists.xenproject.org; Fri, 31 Mar 2017 18:03:42 +0000 In-Reply-To: <20170331180525.30038-1-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org VXBvbiByZWNlaXZpbmcgYW4gTFBJLCB3ZSBuZWVkIHRvIGZpbmQgdGhlIHJpZ2h0IFZDUFUgYW5k IHZpcnR1YWwgSVJRCm51bWJlciB0byBnZXQgdGhpcyBJUlEgaW5qZWN0ZWQuCkl0ZXJhdGUgb3Vy IHR3by1sZXZlbCBMUEkgdGFibGUgdG8gZmluZCB0aGlzIGluZm9ybWF0aW9uIHF1aWNrbHkgd2hl bgp0aGUgaG9zdCB0YWtlcyBhbiBMUEkuIENhbGwgdGhlIGV4aXN0aW5nIGluamVjdGlvbiBmdW5j dGlvbiB0byBsZXQgdGhlCkdJQyBlbXVsYXRpb24gZGVhbCB3aXRoIHRoaXMgaW50ZXJydXB0LgoK U2lnbmVkLW9mZi1ieTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+Ci0t LQogeGVuL2FyY2gvYXJtL2dpYy12My1scGkuYyAgfCA0MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL2FybS9naWMuYyAgICAgICAgIHwgIDggKysr KysrKy0KIHhlbi9hcmNoL2FybS92Z2ljLXYzLmMgICAgIHwgMTEgKysrKysrKysrKysKIHhlbi9h cmNoL2FybS92Z2ljLmMgICAgICAgIHwgIDkgKysrKysrKystCiB4ZW4vaW5jbHVkZS9hc20tYXJt L2lycS5oICB8ICAyICsrCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaCB8ICAyICsrCiA2IGZp bGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL2dpYy12My1scGkuYyBiL3hlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMK aW5kZXggZDY0MmNjNS4uZGY3NWNmNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My1s cGkuYworKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCkBAIC0xMTUsNiArMTE1LDQ4IEBA IHVpbnQ2NF90IGdpY3YzX2dldF9yZWRpc3RfYWRkcmVzcyh1bnNpZ25lZCBpbnQgY3B1LCBib29s IHVzZV9wdGEpCiAgICAgICAgIHJldHVybiBwZXJfY3B1KGxwaV9yZWRpc3QsIGNwdSkucmVkaXN0 X2lkIDw8IDE2OwogfQogCisvKgorICogSGFuZGxlIGluY29taW5nIExQSXMsIHdoaWNoIGFyZSBh IGJpdCBzcGVjaWFsLCBiZWNhdXNlIHRoZXkgYXJlIHBvdGVudGlhbGx5CisgKiBudW1lcm91cyBh bmQgYWxzbyBvbmx5IGdldCBpbmplY3RlZCBpbnRvIGd1ZXN0cy4gVHJlYXQgdGhlbSBzcGVjaWFs bHkgaGVyZSwKKyAqIGJ5IGp1c3QgbG9va2luZyB1cCB0aGVpciB0YXJnZXQgdkNQVSBhbmQgdmly dHVhbCBMUEkgbnVtYmVyIGFuZCBoYW5kIGl0CisgKiBvdmVyIHRvIHRoZSBpbmplY3Rpb24gZnVu Y3Rpb24uCisgKi8KK3ZvaWQgZG9fTFBJKHVuc2lnbmVkIGludCBscGkpCit7CisgICAgc3RydWN0 IGRvbWFpbiAqZDsKKyAgICB1bmlvbiBob3N0X2xwaSAqaGxwaXAsIGhscGk7CisgICAgc3RydWN0 IHZjcHUgKnZjcHU7CisKKyAgICBXUklURV9TWVNSRUczMihscGksIElDQ19FT0lSMV9FTDEpOwor CisgICAgaGxwaXAgPSBnaWNfZ2V0X2hvc3RfbHBpKGxwaSk7CisgICAgaWYgKCAhaGxwaXAgKQor ICAgICAgICByZXR1cm47CisKKyAgICBobHBpLmRhdGEgPSByZWFkX3U2NF9hdG9taWMoJmhscGlw LT5kYXRhKTsKKworICAgIC8qIFVubWFwcGVkIGV2ZW50cyBhcmUgbWFya2VkIHdpdGggYW4gaW52 YWxpZCBMUEkgSUQuICovCisgICAgaWYgKCBobHBpLnZpcnRfbHBpID09IElOVkFMSURfTFBJICkK KyAgICAgICAgcmV0dXJuOworCisgICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChobHBpLmRv bV9pZCk7CisgICAgaWYgKCAhZCApCisgICAgICAgIHJldHVybjsKKworICAgIC8qIE1ha2Ugc3Vy ZSB3ZSBkb24ndCBzdGVwIGJleW9uZCB0aGUgdmNwdSBhcnJheS4gKi8KKyAgICBpZiAoIGhscGku dmNwdV9pZCA+PSBkLT5tYXhfdmNwdXMgKQorICAgIHsKKyAgICAgICAgcmN1X3VubG9ja19kb21h aW4oZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2Y3B1ID0gZC0+dmNwdVtobHBp LnZjcHVfaWRdOworCisgICAgdmdpY192Y3B1X2luamVjdF9pcnEodmNwdSwgaGxwaS52aXJ0X2xw aSk7CisKKyAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKK30KKwogc3RhdGljIGludCBnaWN2M19s cGlfYWxsb2NhdGVfcGVuZHRhYmxlKHVpbnQ2NF90ICpyZWcpCiB7CiAgICAgdWludDY0X3QgdmFs OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy5jIGIveGVuL2FyY2gvYXJtL2dpYy5jCmlu ZGV4IDZhNWM4ODIuLjQxY2QyZDEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9naWMuYworKysg Yi94ZW4vYXJjaC9hcm0vZ2ljLmMKQEAgLTcxMCw3ICs3MTAsMTMgQEAgdm9pZCBnaWNfaW50ZXJy dXB0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBpbnQgaXNfZmlxKQogICAgICAgICAgICAg ZG9fSVJRKHJlZ3MsIGlycSwgaXNfZmlxKTsKICAgICAgICAgICAgIGxvY2FsX2lycV9kaXNhYmxl KCk7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAodW5saWtlbHkoaXJxIDwgMTYpKQorI2lm ZGVmIENPTkZJR19IQVNfSVRTCisgICAgICAgIGVsc2UgaWYgKCBpc19scGkoaXJxKSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIGRvX0xQSShpcnEpOworICAgICAgICB9CisjZW5kaWYKKyAgICAg ICAgZWxzZSBpZiAoIHVubGlrZWx5KGlycSA8IDE2KSApCiAgICAgICAgIHsKICAgICAgICAgICAg IGRvX3NnaShyZWdzLCBpcnEpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v dmdpYy12My5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwppbmRleCAyOWM5N2ViLi42OTU3MmUz IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12My5jCisrKyBiL3hlbi9hcmNoL2FybS92 Z2ljLXYzLmMKQEAgLTM0OCw2ICszNDgsMTcgQEAgc3RydWN0IHBlbmRpbmdfaXJxICpscGlfdG9f cGVuZGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgbHBpKQogICAgIHJldHVybiBw aXJxOwogfQogCisvKiBSZXRyaWV2ZSB0aGUgcHJpb3JpdHkgb2YgYW4gTFBJIGZyb20gaXRzIHN0 cnVjdCBwZW5kaW5nX2lycS4gKi8KK2ludCB2Z2ljX2xwaV9nZXRfcHJpb3JpdHkoc3RydWN0IGRv bWFpbiAqZCwgdWludDMyX3QgdmxwaSkKK3sKKyAgICBzdHJ1Y3QgcGVuZGluZ19pcnEgKnAgPSBs cGlfdG9fcGVuZGluZyhkLCB2bHBpKTsKKworICAgIGlmICggIXAgKQorICAgICAgICByZXR1cm4g R0lDX1BSSV9JUlE7CisKKyAgICByZXR1cm4gcC0+bHBpX3ByaW9yaXR5OworfQorCiBzdGF0aWMg aW50IF9fdmdpY192M19yZGlzdHJfcmRfbW1pb193cml0ZShzdHJ1Y3QgdmNwdSAqdiwgbW1pb19p bmZvX3QgKmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCBnaWNyX3JlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlZ2lzdGVyX3QgcikKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLmMgYi94ZW4v YXJjaC9hcm0vdmdpYy5jCmluZGV4IDE1YzhlZjguLjJhZWUyMGYgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL2FybS92Z2ljLmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMuYwpAQCAtMjQ0LDEwICsyNDQs MTcgQEAgc3RydWN0IHZjcHUgKnZnaWNfZ2V0X3RhcmdldF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1 bnNpZ25lZCBpbnQgdmlycSkKIAogc3RhdGljIGludCB2Z2ljX2dldF92aXJxX3ByaW9yaXR5KHN0 cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdmlycSkKIHsKLSAgICBzdHJ1Y3QgdmdpY19pcnFf cmFuayAqcmFuayA9IHZnaWNfcmFua19pcnEodiwgdmlycSk7CisgICAgc3RydWN0IHZnaWNfaXJx X3JhbmsgKnJhbms7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBpbnQgcHJpb3JpdHk7 CiAKKyNpZmRlZiBDT05GSUdfSEFTX0lUUworICAgIC8qIExQSXMgZG9uJ3QgaGF2ZSBhIHJhbmss IGFsc28gc3RvcmUgdGhlaXIgcHJpb3JpdHkgc2VwYXJhdGVseS4gKi8KKyAgICBpZiAoIGlzX2xw aSh2aXJxKSApCisgICAgICAgIHJldHVybiB2Z2ljX2xwaV9nZXRfcHJpb3JpdHkodi0+ZG9tYWlu LCB2aXJxKTsKKyNlbmRpZgorCisgICAgcmFuayA9IHZnaWNfcmFua19pcnEodiwgdmlycSk7CiAg ICAgdmdpY19sb2NrX3JhbmsodiwgcmFuaywgZmxhZ3MpOwogICAgIHByaW9yaXR5ID0gcmFuay0+ cHJpb3JpdHlbdmlycSAmIElOVEVSUlVQVF9SQU5LX01BU0tdOwogICAgIHZnaWNfdW5sb2NrX3Jh bmsodiwgcmFuaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9pcnEu aCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vaXJxLmgKaW5kZXggZDE2YWZmYy4uM2ZkZjFlMCAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9pcnEuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t YXJtL2lycS5oCkBAIC00Nyw2ICs0Nyw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19scGkodW5z aWduZWQgaW50IGlycSkKICAgICByZXR1cm4gaXJxID49IExQSV9PRkZTRVQ7CiB9CiAKK3ZvaWQg ZG9fTFBJKHVuc2lnbmVkIGludCBpcnEpOworCiAjZGVmaW5lIGRvbWFpbl9waXJxX3RvX2lycShk LCBwaXJxKSAocGlycSkKIAogYm9vbF90IGlzX2Fzc2lnbmFibGVfaXJxKHVuc2lnbmVkIGludCBp cnEpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS92Z2ljLmggYi94ZW4vaW5jbHVk ZS9hc20tYXJtL3ZnaWMuaAppbmRleCBlNmRhZDM4Li5lYWJkZjkxIDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS9hc20tYXJtL3ZnaWMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaApA QCAtNjYsMTIgKzY2LDE0IEBAIHN0cnVjdCBwZW5kaW5nX2lycQogI2RlZmluZSBHSUNfSVJRX0dV RVNUX1ZJU0lCTEUgIDIKICNkZWZpbmUgR0lDX0lSUV9HVUVTVF9FTkFCTEVEICAzCiAjZGVmaW5l IEdJQ19JUlFfR1VFU1RfTUlHUkFUSU5HICAgNAorI2RlZmluZSBHSUNfSVJRX0dVRVNUX0xQSV9Q RU5ESU5HIDUKICAgICB1bnNpZ25lZCBsb25nIHN0YXR1czsKICAgICBzdHJ1Y3QgaXJxX2Rlc2Mg KmRlc2M7IC8qIG9ubHkgc2V0IGl0IHRoZSBpcnEgY29ycmVzcG9uZHMgdG8gYSBwaHlzaWNhbCBp cnEgKi8KICAgICB1bnNpZ25lZCBpbnQgaXJxOwogI2RlZmluZSBHSUNfSU5WQUxJRF9MUiAgICAg ICAgICh1aW50OF90KX4wCiAgICAgdWludDhfdCBscjsKICAgICB1aW50OF90IHByaW9yaXR5Owor ICAgIHVpbnQ4X3QgbHBpX3ByaW9yaXR5OyAgICAgICAvKiBDYWNoZXMgdGhlIHByaW9yaXR5IGlm IHRoaXMgaXMgYW4gTFBJLiAqLwogICAgIC8qIGluZmxpZ2h0IGlzIHVzZWQgdG8gYXBwZW5kIGlu c3RhbmNlcyBvZiBwZW5kaW5nX2lycSB0bwogICAgICAqIHZnaWMuaW5mbGlnaHRfaXJxcyAqLwog ICAgIHN0cnVjdCBsaXN0X2hlYWQgaW5mbGlnaHQ7Ci0tIAoyLjkuMAoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=