From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH v10 16/32] ARM: vGIC: advertise LPI support Date: Fri, 26 May 2017 18:35:24 +0100 Message-ID: <20170526173540.10066-17-andre.przywara@arm.com> References: <20170526173540.10066-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 1dEJ9o-0005Mc-4o for xen-devel@lists.xenproject.org; Fri, 26 May 2017 17:36:12 +0000 In-Reply-To: <20170526173540.10066-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, Vijaya Kumar K , Vijay Kilari , Shanker Donthineni List-Id: xen-devel@lists.xenproject.org VG8gbGV0IGEgZ3Vlc3Qga25vdyBhYm91dCB0aGUgYXZhaWxhYmlsaXR5IG9mIHZpcnR1YWwgTFBJ cywgc2V0IHRoZQpyZXNwZWN0aXZlIGJpdHMgaW4gdGhlIHZpcnR1YWwgR0lDIHJlZ2lzdGVycyBh bmQgbGV0IGEgZ3Vlc3QgY29udHJvbAp0aGUgTFBJIGVuYWJsZSBiaXQuCk9ubHkgcmVwb3J0IHRo ZSBMUEkgY2FwYWJpbGl0eSBpZiB0aGUgaG9zdCBoYXMgaW5pdGlhbGl6ZWQgYXQgbGVhc3QKb25l IElUUy4KRm9yIERvbTAgd2UgcmVwb3J0IHRoZSBzYW1lIG51bWJlciBvZiBpbnRlcnJ1cHRzIGlk ZW50aWZpZXJzIGFzIHRoZQpob3N0LCB3aGVyZWFzIERvbVVzIGdldCBhIG51bWJlciBmaXhlZCBh dCAxMCBiaXRzIGZvciB0aGUgbW9tZW50cywgd2hpY2gKY292ZXJzIGFsbCBTUElzLiBBbHNvIHdl IGZpeCBhIHNsaWdodCBpbmFjY3VyYWN5IGhlcmUsIHNpbmNlIHRoZQpudW1iZXIgb2YgaW50ZXJy dXB0IGlkZW50aWZpZXIgc3BlY2lmaWVkIGluIEdJQ0RfVFlQRVIgZGVwZW5kcyBvbiB0aGUKc3Ry ZWFtIGludGVyZmFjZSBhbmQgaXMgaW5kZXBlbmRlbnQgZnJvbSB0aGUgbnVtYmVyIG9mIGFjdHVh bGx5IHdpcmVkClNQSXMuClRoaXMgYWxzbyByZW1vdmVzIGEgIlRCRCIgY29tbWVudCwgYXMgd2Ug bm93IHBvcHVsYXRlIHRoZSBwcm9jZXNzb3IKbnVtYmVyIGluIHRoZSBHSUNSX1RZUEVSIHJlZ2lz dGVyLgoKU2lnbmVkLW9mZi1ieTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5j b20+Ci0tLQogeGVuL2FyY2gvYXJtL3ZnaWMtdjMuYyB8IDc2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNjkgaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy12 My5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwppbmRleCBlMmU1YmMxLi4xMzRlMWIwIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12My5jCisrKyBiL3hlbi9hcmNoL2FybS92Z2ljLXYz LmMKQEAgLTE3MCw4ICsxNzAsMTkgQEAgc3RhdGljIGludCBfX3ZnaWNfdjNfcmRpc3RyX3JkX21t aW9fcmVhZChzdHJ1Y3QgdmNwdSAqdiwgbW1pb19pbmZvX3QgKmluZm8sCiAgICAgc3dpdGNoICgg Z2ljcl9yZWcgKQogICAgIHsKICAgICBjYXNlIFZSRUczMihHSUNSX0NUTFIpOgotICAgICAgICAv KiBXZSBoYXZlIG5vdCBpbXBsZW1lbnRlZCBMUEkncywgcmVhZCB6ZXJvICovCi0gICAgICAgIGdv dG8gcmVhZF9hc196ZXJvXzMyOworICAgIHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsK KworICAgICAgICBpZiAoICF2LT5kb21haW4tPmFyY2gudmdpYy5oYXNfaXRzICkKKyAgICAgICAg ICAgIGdvdG8gcmVhZF9hc196ZXJvXzMyOworICAgICAgICBpZiAoIGRhYnQuc2l6ZSAhPSBEQUJU X1dPUkQgKSBnb3RvIGJhZF93aWR0aDsKKworICAgICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmdi0+ YXJjaC52Z2ljLmxvY2ssIGZsYWdzKTsKKyAgICAgICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3Qo ISEodi0+YXJjaC52Z2ljLmZsYWdzICYgVkdJQ19WM19MUElTX0VOQUJMRUQpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbmZvKTsKKyAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmdi0+YXJjaC52Z2ljLmxvY2ssIGZsYWdzKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAg fQogCiAgICAgY2FzZSBWUkVHMzIoR0lDUl9JSURSKToKICAgICAgICAgaWYgKCBkYWJ0LnNpemUg IT0gREFCVF9XT1JEICkgZ290byBiYWRfd2lkdGg7CkBAIC0xODMsMTYgKzE5NCwyMCBAQCBzdGF0 aWMgaW50IF9fdmdpY192M19yZGlzdHJfcmRfbW1pb19yZWFkKHN0cnVjdCB2Y3B1ICp2LCBtbWlv X2luZm9fdCAqaW5mbywKICAgICAgICAgdWludDY0X3QgdHlwZXIsIGFmZjsKIAogICAgICAgICBp ZiAoICF2Z2ljX3JlZzY0X2NoZWNrX2FjY2VzcyhkYWJ0KSApIGdvdG8gYmFkX3dpZHRoOwotICAg ICAgICAvKiBUQkQ6IFVwZGF0ZSBwcm9jZXNzb3IgaWQgaW4gWzIzOjhdIHdoZW4gSVRTIHN1cHBv cnQgaXMgYWRkZWQgKi8KICAgICAgICAgYWZmID0gKE1QSURSX0FGRklOSVRZX0xFVkVMKHYtPmFy Y2gudm1waWRyLCAzKSA8PCA1NiB8CiAgICAgICAgICAgICAgICBNUElEUl9BRkZJTklUWV9MRVZF TCh2LT5hcmNoLnZtcGlkciwgMikgPDwgNDggfAogICAgICAgICAgICAgICAgTVBJRFJfQUZGSU5J VFlfTEVWRUwodi0+YXJjaC52bXBpZHIsIDEpIDw8IDQwIHwKICAgICAgICAgICAgICAgIE1QSURS X0FGRklOSVRZX0xFVkVMKHYtPmFyY2gudm1waWRyLCAwKSA8PCAzMik7CiAgICAgICAgIHR5cGVy ID0gYWZmOworICAgICAgICAvKiBXZSB1c2UgdGhlIFZDUFUgSUQgYXMgdGhlIHJlZGlzdHJpYnV0 b3IgSUQgaW4gYml0c1syMzo4XSAqLworICAgICAgICB0eXBlciB8PSB2LT52Y3B1X2lkIDw8IEdJ Q1JfVFlQRVJfUFJPQ19OVU1fU0hJRlQ7CiAKICAgICAgICAgaWYgKCB2LT5hcmNoLnZnaWMuZmxh Z3MgJiBWR0lDX1YzX1JESVNUX0xBU1QgKQogICAgICAgICAgICAgdHlwZXIgfD0gR0lDUl9UWVBF Ul9MQVNUOwogCisgICAgICAgIGlmICggdi0+ZG9tYWluLT5hcmNoLnZnaWMuaGFzX2l0cyApCisg ICAgICAgICAgICB0eXBlciB8PSBHSUNSX1RZUEVSX1BMUElTOworCiAgICAgICAgICpyID0gdmdp Y19yZWc2NF9leHRyYWN0KHR5cGVyLCBpbmZvKTsKIAogICAgICAgICByZXR1cm4gMTsKQEAgLTQy Niw2ICs0NDEsMzMgQEAgc3RhdGljIHVpbnQ2NF90IHNhbml0aXplX3BlbmRiYXNlcih1aW50NjRf dCByZWcpCiAgICAgcmV0dXJuIHJlZzsKIH0KIAorc3RhdGljIHZvaWQgdmdpY192Y3B1X2VuYWJs ZV9scGlzKHN0cnVjdCB2Y3B1ICp2KQoreworICAgIHVpbnQ2NF90IHJlZyA9IHYtPmRvbWFpbi0+ YXJjaC52Z2ljLnJkaXN0X3Byb3BiYXNlOworICAgIHVuc2lnbmVkIGludCBucl9scGlzID0gQklU KChyZWcgJiAweDFmKSArIDEpOworCisgICAgLyogcmRpc3RzX2VuYWJsZWQgaXMgcHJvdGVjdGVk IGJ5IHRoZSBkb21haW4gbG9jay4gKi8KKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnYtPmRv bWFpbi0+YXJjaC52Z2ljLmxvY2spKTsKKworICAgIGlmICggbnJfbHBpcyA8IExQSV9PRkZTRVQg KQorICAgICAgICBucl9scGlzID0gMDsKKyAgICBlbHNlCisgICAgICAgIG5yX2xwaXMgLT0gTFBJ X09GRlNFVDsKKworICAgIGlmICggIXYtPmRvbWFpbi0+YXJjaC52Z2ljLnJkaXN0c19lbmFibGVk ICkKKyAgICB7CisgICAgICAgIHYtPmRvbWFpbi0+YXJjaC52Z2ljLm5yX2xwaXMgPSBucl9scGlz OworICAgICAgICB2LT5kb21haW4tPmFyY2gudmdpYy5yZGlzdHNfZW5hYmxlZCA9IHRydWU7Cisg ICAgICAgIC8qCisgICAgICAgICAqIE1ha2Ugc3VyZSB0aGUgcGVyLWRvbWFpbiByZGlzdHNfZW5h YmxlZCBmbGFnIGhhcyBiZWVuIHNldCBiZWZvcmUKKyAgICAgICAgICogZW5hYmxpbmcgdGhpcyBw YXJ0aWN1bGFyIHJlZGlzdHJpYnV0b3IuCisgICAgICAgICAqLworICAgICAgICBzbXBfbWIoKTsK KyAgICB9CisKKyAgICB2LT5hcmNoLnZnaWMuZmxhZ3MgfD0gVkdJQ19WM19MUElTX0VOQUJMRUQ7 Cit9CisKIHN0YXRpYyBpbnQgX192Z2ljX3YzX3JkaXN0cl9yZF9tbWlvX3dyaXRlKHN0cnVjdCB2 Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IGdpY3JfcmVnLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfdCByKQpAQCAtNDM2LDggKzQ3OCwyNiBAQCBzdGF0 aWMgaW50IF9fdmdpY192M19yZGlzdHJfcmRfbW1pb193cml0ZShzdHJ1Y3QgdmNwdSAqdiwgbW1p b19pbmZvX3QgKmluZm8sCiAgICAgc3dpdGNoICggZ2ljcl9yZWcgKQogICAgIHsKICAgICBjYXNl IFZSRUczMihHSUNSX0NUTFIpOgotICAgICAgICAvKiBMUEkncyBub3QgaW1wbGVtZW50ZWQgKi8K LSAgICAgICAgZ290byB3cml0ZV9pZ25vcmVfMzI7CisgICAgeworICAgICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOworCisgICAgICAgIGlmICggIXYtPmRvbWFpbi0+YXJjaC52Z2ljLmhhc19pdHMg KQorICAgICAgICAgICAgZ290byB3cml0ZV9pZ25vcmVfMzI7CisgICAgICAgIGlmICggZGFidC5z aXplICE9IERBQlRfV09SRCApIGdvdG8gYmFkX3dpZHRoOworCisgICAgICAgIHZnaWNfbG9jayh2 KTsgICAgICAgICAgICAgICAgICAgLyogcHJvdGVjdHMgcmRpc3RzX2VuYWJsZWQgKi8KKyAgICAg ICAgc3Bpbl9sb2NrX2lycXNhdmUoJnYtPmFyY2gudmdpYy5sb2NrLCBmbGFncyk7CisKKyAgICAg ICAgLyogTFBJcyBjYW4gb25seSBiZSBlbmFibGVkIG9uY2UsIGJ1dCBuZXZlciBkaXNhYmxlZCBh Z2Fpbi4gKi8KKyAgICAgICAgaWYgKCAociAmIEdJQ1JfQ1RMUl9FTkFCTEVfTFBJUykgJiYKKyAg ICAgICAgICAgICAhKHYtPmFyY2gudmdpYy5mbGFncyAmIFZHSUNfVjNfTFBJU19FTkFCTEVEKSAp CisgICAgICAgICAgICB2Z2ljX3ZjcHVfZW5hYmxlX2xwaXModik7CisKKyAgICAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmdi0+YXJjaC52Z2ljLmxvY2ssIGZsYWdzKTsKKyAgICAgICAgdmdp Y191bmxvY2sodik7CisKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQogCiAgICAgY2FzZSBWUkVH MzIoR0lDUl9JSURSKToKICAgICAgICAgLyogUk8gKi8KQEAgLTEwNDUsNyArMTEwNSw2IEBAIHN0 YXRpYyBpbnQgdmdpY192M19kaXN0cl9tbWlvX3JlYWQoc3RydWN0IHZjcHUgKnYsIG1taW9faW5m b190ICppbmZvLAogICAgICAgICAgKiBOdW1iZXIgb2YgaW50ZXJydXB0IGlkZW50aWZpZXIgYml0 cyBzdXBwb3J0ZWQgYnkgdGhlIEdJQwogICAgICAgICAgKiBTdHJlYW0gUHJvdG9jb2wgSW50ZXJm YWNlCiAgICAgICAgICAqLwotICAgICAgICB1bnNpZ25lZCBpbnQgaXJxX2JpdHMgPSBnZXRfY291 bnRfb3JkZXIodmdpY19udW1faXJxcyh2LT5kb21haW4pKTsKICAgICAgICAgLyoKICAgICAgICAg ICogTnVtYmVyIG9mIHByb2Nlc3NvcnMgdGhhdCBtYXkgYmUgdXNlZCBhcyBpbnRlcnJ1cHQgdGFy Z2V0cyB3aGVuIEFSRQogICAgICAgICAgKiBiaXQgaXMgemVyby4gVGhlIG1heGltdW0gaXMgOC4K QEAgLTEwNTgsNyArMTExNywxMCBAQCBzdGF0aWMgaW50IHZnaWNfdjNfZGlzdHJfbW1pb19yZWFk KHN0cnVjdCB2Y3B1ICp2LCBtbWlvX2luZm9fdCAqaW5mbywKICAgICAgICAgdHlwZXIgPSAoKG5j cHVzIC0gMSkgPDwgR0lDRF9UWVBFX0NQVVNfU0hJRlQgfAogICAgICAgICAgICAgICAgICBESVZf Uk9VTkRfVVAodi0+ZG9tYWluLT5hcmNoLnZnaWMubnJfc3BpcywgMzIpKTsKIAotICAgICAgICB0 eXBlciB8PSAoaXJxX2JpdHMgLSAxKSA8PCBHSUNEX1RZUEVfSURfQklUU19TSElGVDsKKyAgICAg ICAgaWYgKCB2LT5kb21haW4tPmFyY2gudmdpYy5oYXNfaXRzICkKKyAgICAgICAgICAgIHR5cGVy IHw9IEdJQ0RfVFlQRV9MUElTOworCisgICAgICAgIHR5cGVyIHw9ICh2LT5kb21haW4tPmFyY2gu dmdpYy5pbnRpZF9iaXRzIC0gMSkgPDwgR0lDRF9UWVBFX0lEX0JJVFNfU0hJRlQ7CiAKICAgICAg ICAgKnIgPSB2Z2ljX3JlZzMyX2V4dHJhY3QodHlwZXIsIGluZm8pOwogCi0tIAoyLjkuMAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=