From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V3 13/29] x86/vvtd: Set Interrupt Remapping Table Pointer through GCMD Date: Thu, 21 Sep 2017 23:01:54 -0400 Message-ID: <1506049330-11196-14-git-send-email-tianyu.lan@intel.com> References: <1506049330-11196-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: <1506049330-11196-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, sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com, roger.pau@citrix.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KClNvZnR3YXJlIHNldHMgdGhpcyBm aWVsZCB0byBzZXQvdXBkYXRlIHRoZSBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIHBvaW50ZXIK dXNlZCBieSBoYXJkd2FyZS4gVGhlIGludGVycnVwdCByZW1hcHBpbmcgdGFibGUgcG9pbnRlciBp cyBzcGVjaWZpZWQgdGhyb3VnaAp0aGUgSW50ZXJydXB0IFJlbWFwcGluZyBUYWJsZSBBZGRyZXNz IChJUlRBX1JFRykgcmVnaXN0ZXIuCgpUaGlzIHBhdGNoIGVtdWxhdGVzIHRoaXMgb3BlcmF0aW9u IGFuZCBhZGRzIHNvbWUgbmV3IGZpZWxkcyBpbiBWVlREIHRvIHRyYWNrCmluZm8gKGUuZy4gdGhl IHRhYmxlJ3MgZ2ZuIGFuZCBtYXggc3VwcG9ydGVkIGVudHJpZXMpIG9mIGludGVycnVwdCByZW1h cHBpbmcKdGFibGUuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBMYW4gVGlhbnl1IDx0aWFueXUubGFuQGludGVsLmNvbT4KCi0tLQp2 MzoKIC0gaWdub3JlIHVuYWxpZ25lZCByL3cgb2YgdnQtZCBoYXJkd2FyZSByZWdpc3RlcnMgYW5k IHJldHVybiBYODZFTVVMX09LCi0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmggfCAxMiArKysrKystCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jICB8IDY5 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwg ODAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmgKaW5kZXggZWYwMzhjOS4uYTBkNWVjOCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmgKQEAgLTE1Myw2ICsxNTMsOCBAQAogI2RlZmluZSBETUFfR0NNRF9JUkUgICAgKCgodTY0 KTEpIDw8IDI1KQogI2RlZmluZSBETUFfR0NNRF9TSVJUUCAgKCgodTY0KTEpIDw8IDI0KQogI2Rl ZmluZSBETUFfR0NNRF9DRkkgICAgKCgodTY0KTEpIDw8IDIzKQorLyogbWFzayBvZiBvbmUtc2hv dCBiaXRzICovCisjZGVmaW5lIERNQV9HQ01EX09ORV9TSE9UX01BU0sgMHg5NmZmZmZmZiAKIAog LyogR1NUU19SRUcgKi8KICNkZWZpbmUgRE1BX0dTVFNfVEVTICAgICgoKHU2NCkxKSA8PCAzMSkK QEAgLTE2Miw5ICsxNjQsMTcgQEAKICNkZWZpbmUgRE1BX0dTVFNfV0JGUyAgICgoKHU2NCkxKSA8 PCAyNykKICNkZWZpbmUgRE1BX0dTVFNfUUlFUyAgICgoKHU2NCkxKSA8PDI2KQogI2RlZmluZSBE TUFfR1NUU19JUkVTICAgKCgodTY0KTEpIDw8MjUpCi0jZGVmaW5lIERNQV9HU1RTX1NJUlRQUyAo KCh1NjQpMSkgPDwgMjQpCisjZGVmaW5lIERNQV9HU1RTX1NJUlRQU19TSElGVCAgIDI0CisjZGVm aW5lIERNQV9HU1RTX1NJUlRQUyAoKCh1NjQpMSkgPDwgRE1BX0dTVFNfU0lSVFBTX1NISUZUKQog I2RlZmluZSBETUFfR1NUU19DRklTICAgKCgodTY0KTEpIDw8MjMpCiAKKy8qIElSVEFfUkVHICov CisvKiBUaGUgYmFzZSBvZiA0S0IgYWxpZ25lZCBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlICov CisjZGVmaW5lIERNQV9JUlRBX0FERFIodmFsKSAgICAgICgodmFsKSAmIH4weGZmZlVMTCkKKy8q IFRoZSBzaXplIG9mIHJlbWFwcGluZyB0YWJsZSBpcyAyXih4KzEpLCB3aGVyZSB4IGlzIHRoZSBz aXplIGZpZWxkIGluIElSVEEgKi8KKyNkZWZpbmUgRE1BX0lSVEFfUyh2YWwpICAgICAgICAgKHZh bCAmIDB4ZikKKyNkZWZpbmUgRE1BX0lSVEFfU0laRSh2YWwpICAgICAgKDFVTCA8PCAoRE1BX0lS VEFfUyh2YWwpICsgMSkpCisKIC8qIFBNRU5fUkVHICovCiAjZGVmaW5lIERNQV9QTUVOX0VQTSAg ICAoKCh1MzIpMSkgPDwgMzEpCiAjZGVmaW5lIERNQV9QTUVOX1BSUyAgICAoKCh1MzIpMSkgPDwg MCkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jCmluZGV4IGEzMDAyYzMuLjY3MzY5NTYgMTAw NjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3Z2dGQuYwpAQCAtMzIsNiArMzIsMTMgQEAKIC8qIFN1cHBv cnRlZCBjYXBhYmlsaXRpZXMgYnkgdnZ0ZCAqLwogdW5zaWduZWQgaW50IHZ2dGRfY2FwcyA9IFZJ T01NVV9DQVBfSVJRX1JFTUFQUElORzsKIAorc3RydWN0IGh2bV9od192dnRkX3N0YXR1cyB7Cisg ICAgdWludDMyX3QgZWltX2VuYWJsZWQgOiAxOworICAgIHVpbnQzMl90IGlydF9tYXhfZW50cnk7 CisgICAgLyogSW50ZXJydXB0IHJlbWFwcGluZyB0YWJsZSBiYXNlIGdmbiAqLworICAgIHVpbnQ2 NF90IGlydDsKK307CisKIHVuaW9uIGh2bV9od192dnRkX3JlZ3MgewogICAgIHVpbnQzMl90IGRh dGEzMlsyNTZdOwogICAgIHVpbnQ2NF90IGRhdGE2NFsxMjhdOwpAQCAtNDMsNiArNTAsOCBAQCBz dHJ1Y3QgdnZ0ZCB7CiAgICAgdWludDY0X3QgbGVuZ3RoOwogICAgIC8qIFBvaW50IGJhY2sgdG8g dGhlIG93bmVyIGRvbWFpbiAqLwogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbjsKKworICAgIHN0 cnVjdCBodm1faHdfdnZ0ZF9zdGF0dXMgc3RhdHVzOwogICAgIHVuaW9uIGh2bV9od192dnRkX3Jl Z3MgKnJlZ3M7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcmVnc19wYWdlOwogfTsKQEAgLTcwLDYg Kzc5LDExIEBAIHN0cnVjdCB2dnRkICpkb21haW5fdnZ0ZChzdHJ1Y3QgZG9tYWluICpkKQogICAg IHJldHVybiAoZC0+dmlvbW11KSA/IGQtPnZpb21tdS0+cHJpdiA6IE5VTEw7CiB9CiAKK3N0YXRp YyBpbmxpbmUgdm9pZCB2dnRkX3NldF9iaXQoc3RydWN0IHZ2dGQgKnZ2dGQsIHVpbnQzMl90IHJl ZywgaW50IG5yKQoreworICAgIF9fc2V0X2JpdChuciwgJnZ2dGQtPnJlZ3MtPmRhdGEzMltyZWcv c2l6ZW9mKHVpbnQzMl90KV0pOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgdnZ0ZF9zZXRfcmVn KHN0cnVjdCB2dnRkICp2dGQsIHVpbnQzMl90IHJlZywgdWludDMyX3QgdmFsdWUpCiB7CiAgICAg dnRkLT5yZWdzLT5kYXRhMzJbcmVnL3NpemVvZih1aW50MzJfdCldID0gdmFsdWU7CkBAIC05MSw2 ICsxMDUsNDQgQEAgc3RhdGljIGlubGluZSB1aW50NjRfdCB2dnRkX2dldF9yZWdfcXVhZChzdHJ1 Y3QgdnZ0ZCAqdnRkLCB1aW50MzJfdCByZWcpCiAgICAgcmV0dXJuIHZ0ZC0+cmVncy0+ZGF0YTY0 W3JlZy9zaXplb2YodWludDY0X3QpXTsKIH0KIAorc3RhdGljIHZvaWQgdnZ0ZF9oYW5kbGVfZ2Nt ZF9zaXJ0cChzdHJ1Y3QgdnZ0ZCAqdnZ0ZCwgdWludDMyX3QgdmFsKQoreworICAgIHVpbnQ2NF90 IGlydGEgPSB2dnRkX2dldF9yZWdfcXVhZCh2dnRkLCBETUFSX0lSVEFfUkVHKTsKKworICAgIGlm ICggISh2YWwgJiBETUFfR0NNRF9TSVJUUCkgKQorICAgICAgICByZXR1cm47CisKKyAgICB2dnRk LT5zdGF0dXMuaXJ0ID0gRE1BX0lSVEFfQUREUihpcnRhKSA+PiBQQUdFX1NISUZUOworICAgIHZ2 dGQtPnN0YXR1cy5pcnRfbWF4X2VudHJ5ID0gRE1BX0lSVEFfU0laRShpcnRhKTsKKyAgICB2dnRk LT5zdGF0dXMuZWltX2VuYWJsZWQgPSAhIShpcnRhICYgSVJUQV9FSU1FKTsKKyAgICB2dnRkX2lu Zm8oIlVwZGF0ZSBJUiBpbmZvIChhZGRyPSVseCBlaW09JWQgc2l6ZT0lZCkuIiwKKyAgICAgICAg ICAgICAgdnZ0ZC0+c3RhdHVzLmlydCwgdnZ0ZC0+c3RhdHVzLmVpbV9lbmFibGVkLAorICAgICAg ICAgICAgICB2dnRkLT5zdGF0dXMuaXJ0X21heF9lbnRyeSk7CisgICAgdnZ0ZF9zZXRfYml0KHZ2 dGQsIERNQVJfR1NUU19SRUcsIERNQV9HU1RTX1NJUlRQU19TSElGVCk7Cit9CisKK3N0YXRpYyBp bnQgdnZ0ZF93cml0ZV9nY21kKHN0cnVjdCB2dnRkICp2dnRkLCB1aW50MzJfdCB2YWwpCit7Cisg ICAgdWludDMyX3Qgb3JpZyA9IHZ2dGRfZ2V0X3JlZyh2dnRkLCBETUFSX0dTVFNfUkVHKTsKKyAg ICB1aW50MzJfdCBjaGFuZ2VkOworCisgICAgb3JpZyA9IG9yaWcgJiBETUFfR0NNRF9PTkVfU0hP VF9NQVNLOyAgIC8qIHJlc2V0IHRoZSBvbmUtc2hvdCBiaXRzICovCisgICAgY2hhbmdlZCA9IG9y aWcgXiB2YWw7CisKKyAgICBpZiAoICFjaGFuZ2VkICkKKyAgICAgICAgcmV0dXJuIFg4NkVNVUxf T0tBWTsKKworICAgIGlmICggY2hhbmdlZCAmIChjaGFuZ2VkIC0gMSkgKQorICAgICAgICB2dnRk X2luZm8oIkd1ZXN0IGF0dGVtcHRzIHRvIHdyaXRlICV4IHRvIEdDTUQgKGN1cnJlbnQgR1NUUyBp cyAleCksIiAKKyAgICAgICAgICAgICAgICAgICJpdCB3b3VsZCBsZWFkIHRvIHVwZGF0ZSBtdWx0 aXBsZSBmaWVsZHMiLAorICAgICAgICAgICAgICAgICAgdmFsLCBvcmlnKTsKKworICAgIGlmICgg Y2hhbmdlZCAmIERNQV9HQ01EX1NJUlRQICkKKyAgICAgICAgdnZ0ZF9oYW5kbGVfZ2NtZF9zaXJ0 cCh2dnRkLCB2YWwpOworCisgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKK30KKwogc3RhdGljIGlu dCB2dnRkX2luX3JhbmdlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAg ICAgc3RydWN0IHZ2dGQgKnZ2dGQgPSBkb21haW5fdnZ0ZCh2LT5kb21haW4pOwpAQCAtMTM1LDEy ICsxODcsMTcgQEAgc3RhdGljIGludCB2dnRkX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25l ZCBsb25nIGFkZHIsCiAgICAgewogICAgICAgICBzd2l0Y2ggKCBvZmZzZXQgKQogICAgICAgICB7 CisgICAgICAgIGNhc2UgRE1BUl9HQ01EX1JFRzoKKyAgICAgICAgICAgIHJldHVybiB2dnRkX3dy aXRlX2djbWQodnZ0ZCwgdmFsKTsKKwogICAgICAgICBjYXNlIERNQVJfSUVEQVRBX1JFRzoKICAg ICAgICAgY2FzZSBETUFSX0lFQUREUl9SRUc6CiAgICAgICAgIGNhc2UgRE1BUl9JRVVBRERSX1JF RzoKICAgICAgICAgY2FzZSBETUFSX0ZFREFUQV9SRUc6CiAgICAgICAgIGNhc2UgRE1BUl9GRUFE RFJfUkVHOgogICAgICAgICBjYXNlIERNQVJfRkVVQUREUl9SRUc6CisgICAgICAgIGNhc2UgRE1B Ul9JUlRBX1JFRzoKKyAgICAgICAgY2FzZSBETUFSX0lSVEFfUkVHX0hJOgogICAgICAgICAgICAg dnZ0ZF9zZXRfcmVnKHZ2dGQsIG9mZnNldCwgdmFsKTsKICAgICAgICAgICAgIGJyZWFrOwogCkBA IC0xNDgsNiArMjA1LDE4IEBAIHN0YXRpYyBpbnQgdnZ0ZF93cml0ZShzdHJ1Y3QgdmNwdSAqdiwg dW5zaWduZWQgbG9uZyBhZGRyLAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9 CisgICAgZWxzZSAvKiBsZW4gPT0gOCAqLworICAgIHsKKyAgICAgICAgc3dpdGNoICggb2Zmc2V0 ICkKKyAgICAgICAgeworICAgICAgICBjYXNlIERNQVJfSVJUQV9SRUc6CisgICAgICAgICAgICB2 dnRkX3NldF9yZWdfcXVhZCh2dnRkLCBETUFSX0lSVEFfUkVHLCB2YWwpOworICAgICAgICAgICAg YnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9 CisgICAgfQogCiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KLS0gCjEuOC4zLjEKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK