From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V2 13/25] x86/vvtd: Set Interrupt Remapping Table Pointer through GCMD Date: Wed, 9 Aug 2017 16:34:14 -0400 Message-ID: <1502310866-10450-14-git-send-email-tianyu.lan@intel.com> References: <1502310866-10450-1-git-send-email-tianyu.lan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502310866-10450-1-git-send-email-tianyu.lan@intel.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: Lan Tianyu , kevin.tian@intel.com, wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, julien.grall@arm.com, jbeulich@suse.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KClNvZnR3YXJlIHNldHMgdGhpcyBm aWVsZCB0byBzZXQvdXBkYXRlIHRoZSBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIHBvaW50ZXIK dXNlZCBieSBoYXJkd2FyZS4gVGhlIGludGVycnVwdCByZW1hcHBpbmcgdGFibGUgcG9pbnRlciBp cyBzcGVjaWZpZWQgdGhyb3VnaAp0aGUgSW50ZXJydXB0IFJlbWFwcGluZyBUYWJsZSBBZGRyZXNz IChJUlRBX1JFRykgcmVnaXN0ZXIuCgpUaGlzIHBhdGNoIGVtdWxhdGVzIHRoaXMgb3BlcmF0aW9u IGFuZCBhZGRzIHNvbWUgbmV3IGZpZWxkcyBpbiBWVlREIHRvIHRyYWNrCmluZm8gKGUuZy4gdGhl IHRhYmxlJ3MgZ2ZuIGFuZCBtYXggc3VwcG9ydGVkIGVudHJpZXMpIG9mIGludGVycnVwdCByZW1h cHBpbmcKdGFibGUuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBMYW4gVGlhbnl1IDx0aWFueXUubGFuQGludGVsLmNvbT4KLS0tCiB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaCB8ICA5ICsrKystCiB4ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jICB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgODEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKaW5kZXggNTVmM2I2ZS4uMTAyYjRm MyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKQEAgLTE5Miw5ICsxOTIsMTYgQEAK ICNkZWZpbmUgRE1BX0dTVFNfV0JGUyAgICgoKHU2NCkxKSA8PCAyNykKICNkZWZpbmUgRE1BX0dT VFNfUUlFUyAgICgoKHU2NCkxKSA8PDI2KQogI2RlZmluZSBETUFfR1NUU19JUkVTICAgKCgodTY0 KTEpIDw8MjUpCi0jZGVmaW5lIERNQV9HU1RTX1NJUlRQUyAoKCh1NjQpMSkgPDwgMjQpCisjZGVm aW5lIERNQV9HU1RTX1NJUlRQU19CSVQgICAgIDI0CisjZGVmaW5lIERNQV9HU1RTX1NJUlRQUyAo KCh1NjQpMSkgPDwgRE1BX0dTVFNfU0lSVFBTX0JJVCkKICNkZWZpbmUgRE1BX0dTVFNfQ0ZJUyAg ICgoKHU2NCkxKSA8PDIzKQogCisvKiBJUlRBX1JFRyAqLworI2RlZmluZSBETUFfSVJUQV9BRERS KHZhbCkgICAgICAodmFsICYgfjB4ZmZmVUxMKQorI2RlZmluZSBETUFfSVJUQV9FSU1FKHZhbCkg ICAgICAoISEodmFsICYgKDEgPDwgMTEpKSkKKyNkZWZpbmUgRE1BX0lSVEFfUyh2YWwpICAgICAg ICAgKHZhbCAmIDB4ZikKKyNkZWZpbmUgRE1BX0lSVEFfU0laRSh2YWwpICAgICAgKDFVTCA8PCAo RE1BX0lSVEFfUyh2YWwpICsgMSkpCisKIC8qIFBNRU5fUkVHICovCiAjZGVmaW5lIERNQV9QTUVO X0VQTSAgICAoKCh1MzIpMSkgPDwgMzEpCiAjZGVmaW5lIERNQV9QTUVOX1BSUyAgICAoKCh1MzIp MSkgPDwgMCkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jCmluZGV4IDk0NjgwZTYuLjhlOGRi ZTYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3Z2dGQuYwpAQCAtNDYsNiArNDYsMTMgQEAgc3Ry dWN0IHZ2dGQgewogICAgIHVpbnQ2NF90IGxlbmd0aDsKICAgICAvKiBQb2ludCBiYWNrIHRvIHRo ZSBvd25lciBkb21haW4gKi8KICAgICBzdHJ1Y3QgZG9tYWluICpkb21haW47CisgICAgLyogSXMg aW4gRXh0ZW5kZWQgSW50ZXJydXB0IE1vZGU/ICovCisgICAgYm9vbCBlaW07CisgICAgLyogTWF4 IHJlbWFwcGluZyBlbnRyaWVzIGluIElSVCAqLworICAgIGludCBpcnRfbWF4X2VudHJ5OworICAg IC8qIEludGVycnVwdCByZW1hcHBpbmcgdGFibGUgYmFzZSBnZm4gKi8KKyAgICB1aW50NjRfdCBp cnQ7CisKICAgICBzdHJ1Y3QgaHZtX2h3X3Z2dGRfcmVncyAqcmVnczsKICAgICBzdHJ1Y3QgcGFn ZV9pbmZvICpyZWdzX3BhZ2U7CiB9OwpAQCAtODIsNiArODksMTEgQEAgc3RhdGljIGlubGluZSBz dHJ1Y3QgdnZ0ZCAqdmNwdV92dnRkKHN0cnVjdCB2Y3B1ICp2KQogICAgIHJldHVybiBkb21haW5f dnZ0ZCh2LT5kb21haW4pOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQgX192dnRkX3NldF9iaXQo c3RydWN0IHZ2dGQgKnZ2dGQsIHVpbnQzMl90IHJlZywgaW50IG5yKQoreworICAgIHJldHVybiBf X3NldF9iaXQobnIsICh1aW50MzJfdCAqKSZ2dnRkLT5yZWdzLT5kYXRhW3JlZ10pOworfQorCiBz dGF0aWMgaW5saW5lIHZvaWQgdnZ0ZF9zZXRfcmVnKHN0cnVjdCB2dnRkICp2dGQsIHVpbnQzMl90 IHJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdmFsdWUpCiB7 CkBAIC0xMDgsNiArMTIwLDQ0IEBAIHN0YXRpYyBpbmxpbmUgdWludDhfdCB2dnRkX2dldF9yZWdf Ynl0ZShzdHJ1Y3QgdnZ0ZCAqdnRkLCB1aW50MzJfdCByZWcpCiAgICAgdnZ0ZF9zZXRfcmVnKHZ2 dGQsIChyZWcpICsgNCwgKHZhbCkgPj4gMzIpOyBcCiB9IHdoaWxlKDApCiAKK3N0YXRpYyBpbnQg dnZ0ZF9oYW5kbGVfZ2NtZF9zaXJ0cChzdHJ1Y3QgdnZ0ZCAqdnZ0ZCwgdWludDMyX3QgdmFsKQor eworICAgIHVpbnQ2NF90IGlydGE7CisKKyAgICBpZiAoICEodmFsICYgRE1BX0dDTURfU0lSVFAp ICkKKyAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKworICAgIHZ2dGRfZ2V0X3JlZ19xdWFk KHZ2dGQsIERNQVJfSVJUQV9SRUcsIGlydGEpOworICAgIHZ2dGQtPmlydCA9IERNQV9JUlRBX0FE RFIoaXJ0YSkgPj4gUEFHRV9TSElGVDsKKyAgICB2dnRkLT5pcnRfbWF4X2VudHJ5ID0gRE1BX0lS VEFfU0laRShpcnRhKTsKKyAgICB2dnRkLT5laW0gPSBETUFfSVJUQV9FSU1FKGlydGEpOworICAg IFZWVERfREVCVUcoVlZURF9EQkdfUlcsICJVcGRhdGUgSVIgaW5mbyAoYWRkcj0lbHggZWltPSVk IHNpemU9JWQpLiIsCisgICAgICAgICAgICAgICB2dnRkLT5pcnQsIHZ2dGQtPmVpbSwgdnZ0ZC0+ aXJ0X21heF9lbnRyeSk7CisgICAgX192dnRkX3NldF9iaXQodnZ0ZCwgRE1BUl9HU1RTX1JFRywg RE1BX0dTVFNfU0lSVFBTX0JJVCk7CisKKyAgICByZXR1cm4gWDg2RU1VTF9PS0FZOworfQorCitz dGF0aWMgaW50IHZ2dGRfd3JpdGVfZ2NtZChzdHJ1Y3QgdnZ0ZCAqdnZ0ZCwgdWludDMyX3QgdmFs KQoreworICAgIHVpbnQzMl90IG9yaWcgPSB2dnRkX2dldF9yZWcodnZ0ZCwgRE1BUl9HU1RTX1JF Ryk7CisgICAgdWludDMyX3QgY2hhbmdlZDsKKworICAgIG9yaWcgPSBvcmlnICYgMHg5NmZmZmZm ZjsgICAgLyogcmVzZXQgdGhlIG9uZS1zaG90IGJpdHMgKi8KKyAgICBjaGFuZ2VkID0gb3JpZyBe IHZhbDsKKworICAgIGlmICggIWNoYW5nZWQgKQorICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZ OworICAgIGlmICggKGNoYW5nZWQgJiAoY2hhbmdlZCAtIDEpKSApCisgICAgICAgIFZWVERfREVC VUcoVlZURF9EQkdfUlcsICJHdWVzdCBhdHRlbXB0cyB0byB1cGRhdGUgbXVsdGlwbGUgZmllbGRz ICIKKyAgICAgICAgICAgICAgICAgICAgICJvZiBHQ01EX1JFRyBpbiBvbmUgd3JpdGUgdHJhbnNh dGlvbi4iKTsKKworICAgIGlmICggY2hhbmdlZCAmIERNQV9HQ01EX1NJUlRQICkKKyAgICAgICAg dnZ0ZF9oYW5kbGVfZ2NtZF9zaXJ0cCh2dnRkLCB2YWwpOworCisgICAgcmV0dXJuIFg4NkVNVUxf T0tBWTsKK30KKwogc3RhdGljIGludCB2dnRkX3JhbmdlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25l ZCBsb25nIGFkZHIpCiB7CiAgICAgc3RydWN0IHZ2dGQgKnZ2dGQgPSB2Y3B1X3Z2dGQodik7CkBA IC0xNjUsMTIgKzIxNSwxOCBAQCBzdGF0aWMgaW50IHZ2dGRfd3JpdGUoc3RydWN0IHZjcHUgKnYs IHVuc2lnbmVkIGxvbmcgYWRkciwKICAgICB7CiAgICAgICAgIHN3aXRjaCAoIG9mZnNldF9hbGln bmVkICkKICAgICAgICAgeworICAgICAgICBjYXNlIERNQVJfR0NNRF9SRUc6CisgICAgICAgICAg ICByZXQgPSB2dnRkX3dyaXRlX2djbWQodnZ0ZCwgdmFsKTsKKyAgICAgICAgICAgIGJyZWFrOwor CiAgICAgICAgIGNhc2UgRE1BUl9JRURBVEFfUkVHOgogICAgICAgICBjYXNlIERNQVJfSUVBRERS X1JFRzoKICAgICAgICAgY2FzZSBETUFSX0lFVUFERFJfUkVHOgogICAgICAgICBjYXNlIERNQVJf RkVEQVRBX1JFRzoKICAgICAgICAgY2FzZSBETUFSX0ZFQUREUl9SRUc6CiAgICAgICAgIGNhc2Ug RE1BUl9GRVVBRERSX1JFRzoKKyAgICAgICAgY2FzZSBETUFSX0lSVEFfUkVHOgorICAgICAgICBj YXNlIERNQVJfSVJUQV9SRUdfSEk6CiAgICAgICAgICAgICB2dnRkX3NldF9yZWcodnZ0ZCwgb2Zm c2V0X2FsaWduZWQsIHZhbCk7CiAgICAgICAgICAgICByZXQgPSBYODZFTVVMX09LQVk7CiAgICAg ICAgICAgICBicmVhazsKQEAgLTE3OSw2ICsyMzUsMjAgQEAgc3RhdGljIGludCB2dnRkX3dyaXRl KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsCiAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgfQogICAgIH0KKyAgICBlbHNlIC8qIGxlbiA9PSA4ICovCisgICAgeworICAgICAg ICBzd2l0Y2ggKCBvZmZzZXRfYWxpZ25lZCApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBETUFS X0lSVEFfUkVHOgorICAgICAgICAgICAgdnZ0ZF9zZXRfcmVnX3F1YWQodnZ0ZCwgRE1BUl9JUlRB X1JFRywgdmFsKTsKKyAgICAgICAgICAgIHJldCA9IFg4NkVNVUxfT0tBWTsKKyAgICAgICAgICAg IGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBYODZFTVVMX1VO SEFORExFQUJMRTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQogCiAgICAg cmV0dXJuIHJldDsKIH0KQEAgLTIzNSw2ICszMDUsOSBAQCBzdGF0aWMgaW50IHZ2dGRfY3JlYXRl KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2aW9tbXUgKnZpb21tdSkKICAgICB2dnRkLT5sZW5n dGggPSB2aW9tbXUtPmxlbmd0aDsKICAgICB2dnRkLT5kb21haW4gPSBkOwogICAgIHZ2dGQtPnN0 YXR1cyA9IFZJT01NVV9TVEFUVVNfREVGQVVMVDsKKyAgICB2dnRkLT5laW0gPSAwOworICAgIHZ2 dGQtPmlydCA9IDA7CisgICAgdnZ0ZC0+aXJ0X21heF9lbnRyeSA9IDA7CiAgICAgcmVnaXN0ZXJf bW1pb19oYW5kbGVyKGQsICZ2dnRkX21taW9fb3BzKTsKICAgICByZXR1cm4gMDsKIAotLSAKMS44 LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=