From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [RFC PATCH V2 13/26] X86/vvtd: Set Interrupt Remapping Table Pointer through GCMD Date: Thu, 18 May 2017 01:34:43 -0400 Message-ID: <1495085696-10819-14-git-send-email-tianyu.lan@intel.com> References: <1495085696-10819-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: <1495085696-10819-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, jbeulich@suse.com, Chao Gao List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KClNvZnR3YXJlIHNldHMgdGhpcyBm aWVsZCB0byBzZXQvdXBkYXRlIHRoZSBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIHBvaW50ZXIK dXNlZCBieSBoYXJkd2FyZS4gVGhlIGludGVycnVwdCByZW1hcHBpbmcgdGFibGUgcG9pbnRlciBp cyBzcGVjaWZpZWQgdGhyb3VnaAp0aGUgSW50ZXJydXB0IFJlbWFwcGluZyBUYWJsZSBBZGRyZXNz IChJUlRBX1JFRykgcmVnaXN0ZXIuCgpUaGlzIHBhdGNoIGVtdWxhdGVzIHRoaXMgb3BlcmF0aW9u IGFuZCBhZGRzIHNvbWUgbmV3IGZpZWxkcyBpbiBWVlREIHRvIHRyYWNrCmluZm8gKGUuZy4gdGhl IHRhYmxlJ3MgZ2ZuIGFuZCBtYXggc3VwcG9ydGVkIGVudHJpZXMpIG9mIGludGVycnVwdCByZW1h cHBpbmcKdGFibGUuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBMYW4gVGlhbnl1IDx0aWFueXUubGFuQGludGVsLmNvbT4KLS0tCiB4 ZW4vYXJjaC94ODYvaHZtL3Z2dGQuYyAgICAgICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5o IHwgIDkgKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdnZ0ZC5jIGIveGVuL2FyY2gveDg2 L2h2bS92dnRkLmMKaW5kZXggYjBhMjNlZS4uYjZmZDM0YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92dnRkLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92dnRkLmMKQEAgLTQ2LDYgKzQ2 LDEzIEBAIHN0cnVjdCB2dnRkIHsKICAgICB1aW50NjRfdCBsZW5ndGg7CiAgICAgLyogUG9pbnQg YmFjayB0byB0aGUgb3duZXIgZG9tYWluICovCiAgICAgc3RydWN0IGRvbWFpbiAqZG9tYWluOwor ICAgIC8qIElzIGluIEV4dGVuZGVkIEludGVycnVwdCBNb2RlPyAqLworICAgIGJvb2wgZWltOwor ICAgIC8qIE1heCByZW1hcHBpbmcgZW50cmllcyBpbiBJUlQgKi8KKyAgICBpbnQgaXJ0X21heF9l bnRyeTsKKyAgICAvKiBJbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIGJhc2UgZ2ZuICovCisgICAg dWludDY0X3QgaXJ0OworCiAgICAgc3RydWN0IGh2bV9od192dnRkX3JlZ3MgKnJlZ3M7CiAgICAg c3RydWN0IHBhZ2VfaW5mbyAqcmVnc19wYWdlOwogfTsKQEAgLTgyLDYgKzg5LDExIEBAIHN0YXRp YyBpbmxpbmUgc3RydWN0IHZ2dGQgKnZjcHVfdnZ0ZChzdHJ1Y3QgdmNwdSAqdikKICAgICByZXR1 cm4gZG9tYWluX3Z2dGQodi0+ZG9tYWluKTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIF9fdnZ0 ZF9zZXRfYml0KHN0cnVjdCB2dnRkICp2dnRkLCB1aW50MzJfdCByZWcsIGludCBucikKK3sKKyAg ICByZXR1cm4gX19zZXRfYml0KG5yLCAodWludDMyX3QgKikmdnZ0ZC0+cmVncy0+ZGF0YVtyZWdd KTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHZ2dGRfc2V0X3JlZyhzdHJ1Y3QgdnZ0ZCAqdnRk LCB1aW50MzJfdCByZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IHZhbHVlKQogewpAQCAtMTA4LDYgKzEyMCw0MSBAQCBzdGF0aWMgaW5saW5lIHVpbnQ4X3QgdnZ0 ZF9nZXRfcmVnX2J5dGUoc3RydWN0IHZ2dGQgKnZ0ZCwgdWludDMyX3QgcmVnKQogICAgIHZ2dGRf c2V0X3JlZyh2dnRkLCAocmVnKSArIDQsICh2YWwpID4+IDMyKTsgXAogfSB3aGlsZSgwKQogCitz dGF0aWMgaW50IHZ2dGRfaGFuZGxlX2djbWRfc2lydHAoc3RydWN0IHZ2dGQgKnZ2dGQsIHVpbnQz Ml90IHZhbCkKK3sKKyAgICB1aW50NjRfdCBpcnRhOworCisgICAgaWYgKCAhKHZhbCAmIERNQV9H Q01EX1NJUlRQKSApCisgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CisKKyAgICB2dnRkX2dl dF9yZWdfcXVhZCh2dnRkLCBETUFSX0lSVEFfUkVHLCBpcnRhKTsKKyAgICB2dnRkLT5pcnQgPSBE TUFfSVJUQV9BRERSKGlydGEpID4+IFBBR0VfU0hJRlQ7CisgICAgdnZ0ZC0+aXJ0X21heF9lbnRy eSA9IERNQV9JUlRBX1NJWkUoaXJ0YSk7CisgICAgdnZ0ZC0+ZWltID0gRE1BX0lSVEFfRUlNRShp cnRhKTsKKyAgICBWVlREX0RFQlVHKFZWVERfREJHX1JXLCAiVXBkYXRlIElSIGluZm8gKGFkZHI9 JWx4IGVpbT0lZCBzaXplPSVkKS4iLAorICAgICAgICAgICAgICAgdnZ0ZC0+aXJ0LCB2dnRkLT5l aW0sIHZ2dGQtPmlydF9tYXhfZW50cnkpOworICAgIF9fdnZ0ZF9zZXRfYml0KHZ2dGQsIERNQVJf R1NUU19SRUcsIERNQV9HU1RTX1NJUlRQU19CSVQpOworCisgICAgcmV0dXJuIFg4NkVNVUxfT0tB WTsKK30KKworc3RhdGljIGludCB2dnRkX3dyaXRlX2djbWQoc3RydWN0IHZ2dGQgKnZ2dGQsIHVp bnQzMl90IHZhbCkKK3sKKyAgICB1aW50MzJfdCBvcmlnID0gdnZ0ZF9nZXRfcmVnKHZ2dGQsIERN QVJfR1NUU19SRUcpOworICAgIHVpbnQzMl90IGNoYW5nZWQgPSBvcmlnIF4gdmFsOworCisgICAg aWYgKCAhY2hhbmdlZCApCisgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7CisgICAgaWYgKCAo Y2hhbmdlZCAmIChjaGFuZ2VkIC0gMSkpICkKKyAgICAgICAgVlZURF9ERUJVRyhWVlREX0RCR19S VywgIkd1ZXN0IGF0dGVtcHRzIHRvIHVwZGF0ZSBtdWx0aXBsZSBmaWVsZHMgIgorICAgICAgICAg ICAgICAgICAgICAgIm9mIEdDTURfUkVHIGluIG9uZSB3cml0ZSB0cmFuc2F0aW9uLiIpOworCisg ICAgaWYgKCBjaGFuZ2VkICYgRE1BX0dDTURfU0lSVFAgKQorICAgICAgICB2dnRkX2hhbmRsZV9n Y21kX3NpcnRwKHZ2dGQsIHZhbCk7CisKKyAgICByZXR1cm4gWDg2RU1VTF9PS0FZOworfQorCiBz dGF0aWMgaW50IHZ2dGRfcmFuZ2Uoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRkcikK IHsKICAgICBzdHJ1Y3QgdnZ0ZCAqdnZ0ZCA9IHZjcHVfdnZ0ZCh2KTsKQEAgLTE3NSwxMiArMjIy LDE4IEBAIHN0YXRpYyBpbnQgdnZ0ZF93cml0ZShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9u ZyBhZGRyLAogICAgIHsKICAgICAgICAgc3dpdGNoICggb2Zmc2V0X2FsaWduZWQgKQogICAgICAg ICB7CisgICAgICAgIGNhc2UgRE1BUl9HQ01EX1JFRzoKKyAgICAgICAgICAgIHJldCA9IHZ2dGRf d3JpdGVfZ2NtZCh2dnRkLCB2YWwpOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAgICAgY2Fz ZSBETUFSX0lFREFUQV9SRUc6CiAgICAgICAgIGNhc2UgRE1BUl9JRUFERFJfUkVHOgogICAgICAg ICBjYXNlIERNQVJfSUVVQUREUl9SRUc6CiAgICAgICAgIGNhc2UgRE1BUl9GRURBVEFfUkVHOgog ICAgICAgICBjYXNlIERNQVJfRkVBRERSX1JFRzoKICAgICAgICAgY2FzZSBETUFSX0ZFVUFERFJf UkVHOgorICAgICAgICBjYXNlIERNQVJfSVJUQV9SRUc6CisgICAgICAgIGNhc2UgRE1BUl9JUlRB X1JFR19ISToKICAgICAgICAgICAgIHZ2dGRfc2V0X3JlZyh2dnRkLCBvZmZzZXRfYWxpZ25lZCwg dmFsKTsKICAgICAgICAgICAgIHJldCA9IFg4NkVNVUxfT0tBWTsKICAgICAgICAgICAgIGJyZWFr OwpAQCAtMTkwLDYgKzI0MywyMCBAQCBzdGF0aWMgaW50IHZ2dGRfd3JpdGUoc3RydWN0IHZjcHUg KnYsIHVuc2lnbmVkIGxvbmcgYWRkciwKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg ICAgfQorICAgIGVsc2UgaWYgKCBsZW4gPT0gOCApCisgICAgeworICAgICAgICBzd2l0Y2ggKCBv ZmZzZXRfYWxpZ25lZCApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBETUFSX0lSVEFfUkVHOgor ICAgICAgICAgICAgdnZ0ZF9zZXRfcmVnX3F1YWQodnZ0ZCwgRE1BUl9JUlRBX1JFRywgdmFsKTsK KyAgICAgICAgICAgIHJldCA9IFg4NkVNVUxfT0tBWTsKKyAgICAgICAgICAgIGJyZWFrOworCisg ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICByZXQgPSBYODZFTVVMX1VOSEFORExFQUJMRTsK KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQogICAgIGVsc2UKICAgICAgICAg cmV0ID0gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAKQEAgLTI2Niw2ICszMzMsOSBAQCBzdGF0aWMg aW50IHZ2dGRfY3JlYXRlKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2aW9tbXUgKnZpb21tdSkK ICAgICB2dnRkLT5sZW5ndGggPSB2aW9tbXUtPmxlbmd0aDsKICAgICB2dnRkLT5kb21haW4gPSBk OwogICAgIHZ2dGQtPnN0YXR1cyA9IDA7CisgICAgdnZ0ZC0+ZWltID0gMDsKKyAgICB2dnRkLT5p cnQgPSAwOworICAgIHZ2dGQtPmlydF9tYXhfZW50cnkgPSAwOwogICAgIHJlZ2lzdGVyX21taW9f aGFuZGxlcihkLCAmdnZ0ZF9tbWlvX29wcyk7CiAgICAgcmV0dXJuIDA7CiAKZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2lvbW11LmgKaW5kZXggMmU5ZGNhYS4uZmQwNDBkMCAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2lvbW11LmgKQEAgLTE5NSw5ICsxOTUsMTYgQEAKICNkZWZpbmUgRE1BX0dTVFNf V0JGUyAgICgoKHU2NCkxKSA8PCAyNykKICNkZWZpbmUgRE1BX0dTVFNfUUlFUyAgICgoKHU2NCkx KSA8PDI2KQogI2RlZmluZSBETUFfR1NUU19JUkVTICAgKCgodTY0KTEpIDw8MjUpCi0jZGVmaW5l IERNQV9HU1RTX1NJUlRQUyAoKCh1NjQpMSkgPDwgMjQpCisjZGVmaW5lIERNQV9HU1RTX1NJUlRQ U19CSVQgICAgIDI0CisjZGVmaW5lIERNQV9HU1RTX1NJUlRQUyAoKCh1NjQpMSkgPDwgRE1BX0dT VFNfU0lSVFBTX0JJVCkKICNkZWZpbmUgRE1BX0dTVFNfQ0ZJUyAgICgoKHU2NCkxKSA8PDIzKQog CisvKiBJUlRBX1JFRyAqLworI2RlZmluZSBETUFfSVJUQV9BRERSKHZhbCkgICAgICAodmFsICYg fjB4ZmZmVUxMKQorI2RlZmluZSBETUFfSVJUQV9FSU1FKHZhbCkgICAgICAoISEodmFsICYgKDEg PDwgMTEpKSkKKyNkZWZpbmUgRE1BX0lSVEFfUyh2YWwpICAgICAgICAgKHZhbCAmIDB4ZikKKyNk ZWZpbmUgRE1BX0lSVEFfU0laRSh2YWwpICAgICAgKDFVTCA8PCAoRE1BX0lSVEFfUyh2YWwpICsg MSkpCisKIC8qIFBNRU5fUkVHICovCiAjZGVmaW5lIERNQV9QTUVOX0VQTSAgICAoKCh1MzIpMSkg PDwgMzEpCiAjZGVmaW5lIERNQV9QTUVOX1BSUyAgICAoKCh1MzIpMSkgPDwgMCkKLS0gCjEuOC4z LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK