From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [RFC PATCH 12/23] X86/vvtd: Set Interrupt Remapping Table Pointer through GCMD Date: Fri, 17 Mar 2017 19:27:12 +0800 Message-ID: <1489750043-17260-13-git-send-email-tianyu.lan@intel.com> References: <1489750043-17260-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: <1489750043-17260-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 , andrew.cooper3@citrix.com, kevin.tian@intel.com, jbeulich@suse.com, chao.gao@intel.com List-Id: xen-devel@lists.xenproject.org RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KClNvZnR3YXJlIHNldHMgdGhpcyBm aWVsZCB0byBzZXQvdXBkYXRlIHRoZSBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIHBvaW50ZXIK dXNlZCBieSBoYXJkd2FyZS4gVGhlIGludGVycnVwdCByZW1hcHBpbmcgdGFibGUgcG9pbnRlciBp cyBzcGVjaWZpZWQgdGhyb3VnaAp0aGUgSW50ZXJydXB0IFJlbWFwcGluZyBUYWJsZSBBZGRyZXNz IChJUlRBX1JFRykgcmVnaXN0ZXIuCgpUaGlzIHBhdGNoIGVtdWxhdGVzIHRoaXMgb3BlcmF0aW9u IGFuZCB1c2VzIHNvbWUgZmllbGRzIG9mIFZWVEQgdG8gdHJhY2sKaW5mbyBhYm91dCBpbnRlcnJ1 cHQgcmVtYXBwaW5nIHRhYmxlLgoKU2lnbmVkLW9mZi1ieTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTGFuIFRpYW55dSA8dGlhbnl1LmxhbkBpbnRlbC5jb20+ Ci0tLQogeGVuL2FyY2gveDg2L2h2bS92dnRkLmMgICAgICAgICAgICAgfCA3MCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuaCB8ICA5ICsrKystCiAyIGZpbGVzIGNoYW5nZWQsIDc4IGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3Z2dGQuYyBiL3hlbi9h cmNoL3g4Ni9odm0vdnZ0ZC5jCmluZGV4IDk0NzNmZTAuLmExMmI0ZDEgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vdnZ0ZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdnZ0ZC5jCkBAIC00 NSw2ICs0NSwxMyBAQCBzdHJ1Y3QgdnZ0ZCB7CiAgICAgdWludDY0X3QgYmFzZV9hZGRyOwogICAg IC8qIFBvaW50IGJhY2sgdG8gdGhlIG93bmVyIGRvbWFpbiAqLwogICAgIHN0cnVjdCBkb21haW4g KmRvbWFpbjsKKyAgICAvKiBJcyBpbiBFeHRlbmRlZCBJbnRlcnJ1cHQgTW9kZSAqLworICAgIGJv b2wgZWltOworICAgIC8qIEludGVycnVwdCByZW1hcHBpbmcgdGFibGUgYmFzZSBnZm4gKi8KKyAg ICB1aW50NjRfdCBpcnQ7CisgICAgLyogTWF4IHJlbWFwcGluZyBlbnRyaWVzIGluIElSVCAqLwor ICAgIGludCBpcnRfbWF4X2VudHJ5OworCiAgICAgc3RydWN0IGh2bV9od192dnRkX3JlZ3MgKnJl Z3M7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcmVnc19wYWdlOwogfTsKQEAgLTgxLDYgKzg4LDEx IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZ2dGQgKnZjcHVfdnZ0ZChzdHJ1Y3QgdmNwdSAqdikK ICAgICByZXR1cm4gZG9tYWluX3Z2dGQodi0+ZG9tYWluKTsKIH0KIAorc3RhdGljIGlubGluZSB2 b2lkIF9fdnZ0ZF9zZXRfYml0KHN0cnVjdCB2dnRkICp2dnRkLCB1aW50MzJfdCByZWcsIGludCBu cikKK3sKKyAgICByZXR1cm4gX19zZXRfYml0KG5yLCAodWludDMyX3QgKikmdnZ0ZC0+cmVncy0+ ZGF0YVtyZWddKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHZ2dGRfc2V0X3JlZyhzdHJ1Y3Qg dnZ0ZCAqdnRkLCB1aW50MzJfdCByZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IHZhbHVlKQogewpAQCAtMTA3LDYgKzExOSw0MSBAQCBzdGF0aWMgaW5saW5lIHVp bnQ4X3QgdnZ0ZF9nZXRfcmVnX2J5dGUoc3RydWN0IHZ2dGQgKnZ0ZCwgdWludDMyX3QgcmVnKQog ICAgIHZ2dGRfc2V0X3JlZyh2dnRkLCAocmVnKSArIDQsICh1aW50MzJfdCkoKHZhbCkgPj4gMzIp KTsgXAogfSB3aGlsZSgwKQogCitzdGF0aWMgaW50IHZ2dGRfaGFuZGxlX2djbWRfc2lydHAoc3Ry dWN0IHZ2dGQgKnZ2dGQsIHVuc2lnbmVkIGxvbmcgdmFsKQoreworICAgIHVpbnQ2NF90IGlydGE7 CisKKyAgICBpZiAoICEodmFsICYgRE1BX0dDTURfU0lSVFApICkKKyAgICAgICAgcmV0dXJuIFg4 NkVNVUxfT0tBWTsKKworICAgIHZ2dGRfZ2V0X3JlZ19xdWFkKHZ2dGQsIERNQVJfSVJUQV9SRUcs IGlydGEpOworICAgIHZ2dGQtPmlydCA9IERNQV9JUlRBX0FERFIoaXJ0YSkgPj4gUEFHRV9TSElG VDsKKyAgICB2dnRkLT5pcnRfbWF4X2VudHJ5ID0gRE1BX0lSVEFfU0laRShpcnRhKTsKKyAgICB2 dnRkLT5laW0gPSAhIShpcnRhICYgSVJUQV9FSU1FKTsKKyAgICBWVlREX0RFQlVHKFZWVERfREJH X1JXLCAiVXBkYXRlIElSIGluZm8gKGFkZHI9JWx4IGVpbT0lZCBzaXplPSVkKS4iLAorICAgICAg ICAgICAgICAgdnZ0ZC0+aXJ0LCB2dnRkLT5laW0sIHZ2dGQtPmlydF9tYXhfZW50cnkpOworICAg IF9fdnZ0ZF9zZXRfYml0KHZ2dGQsIERNQVJfR1NUU19SRUcsIERNQV9HU1RTX1NJUlRQU19CSVQp OworCisgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKK30KKworc3RhdGljIGludCB2dnRkX3dyaXRl X2djbWQoc3RydWN0IHZ2dGQgKnZ2dGQsIHVuc2lnbmVkIGxvbmcgdmFsKQoreworICAgIHVpbnQz Ml90IG9yaWcgPSB2dnRkX2dldF9yZWcodnZ0ZCwgRE1BUl9HU1RTX1JFRyk7CisgICAgdWludDMy X3QgY2hhbmdlZCA9IG9yaWcgXiB2YWw7CisKKyAgICBpZiAoICFjaGFuZ2VkICkKKyAgICAgICAg cmV0dXJuIFg4NkVNVUxfT0tBWTsKKyAgICBpZiAoIChjaGFuZ2VkICYgKGNoYW5nZWQgLSAxKSkg KQorICAgICAgICBWVlREX0RFQlVHKFZWVERfREJHX1JXLCAiR3Vlc3QgYXR0ZW1wdHMgdG8gdXBk YXRlIG11bHRpcGxlIGZpZWxkcyAiCisgICAgICAgICAgICAgICAgICAgICAib2YgR0NNRF9SRUcg aW4gb25lIHdyaXRlIHRyYW5zYXRpb24uIik7CisKKyAgICBpZiAoIGNoYW5nZWQgJiBETUFfR0NN RF9TSVJUUCApCisgICAgICAgIHZ2dGRfaGFuZGxlX2djbWRfc2lydHAodnZ0ZCwgdmFsKTsKKwor ICAgIHJldHVybiBYODZFTVVMX09LQVk7Cit9CisKIHN0YXRpYyBpbnQgdnZ0ZF9yYW5nZShzdHJ1 Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyKQogewogICAgIHN0cnVjdCB2dnRkICp2dnRk ID0gdmNwdV92dnRkKHYpOwpAQCAtMTgzLDYgKzIzMCwyNiBAQCBzdGF0aWMgaW50IHZ2dGRfd3Jp dGUoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRkciwKICAgICByZXQgPSBYODZFTVVM X1VOSEFORExFQUJMRTsKICAgICBzd2l0Y2ggKCBvZmZzZXRfYWxpZ25lZCAgKQogICAgIHsKKyAg ICBjYXNlIERNQVJfR0NNRF9SRUc6CisgICAgICAgIGlmICggbGVuID09IDggKQorICAgICAgICAg ICAgZ290byBlcnJvcjsKKyAgICAgICAgcmV0ID0gdnZ0ZF93cml0ZV9nY21kKHZ2dGQsIHZhbF9s byk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBETUFSX0lSVEFfUkVHOgorICAgICAgICBp ZiAoIGxlbiA9PSA4ICkKKyAgICAgICAgICAgIHZ2dGRfc2V0X3JlZ19xdWFkKHZ2dGQsIERNQVJf SVJUQV9SRUcsIHZhbCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZ2dGRfc2V0X3JlZyh2 dnRkLCBETUFSX0lSVEFfUkVHLCB2YWxfbG8pOworICAgICAgICBicmVhazsKKworICAgIGNhc2Ug RE1BUl9JUlRBX1JFR19ISToKKyAgICAgICAgaWYgKCBsZW4gPT0gOCApCisgICAgICAgICAgICBn b3RvIGVycm9yOworICAgICAgICB2dnRkX3NldF9yZWcodnZ0ZCwgRE1BUl9JUlRBX1JFR19ISSwg dmFsX2xvKTsKKyAgICAgICAgcmV0ID0gWDg2RU1VTF9PS0FZOworICAgICAgICBicmVhazsKKwog ICAgIGNhc2UgRE1BUl9JRURBVEFfUkVHOgogICAgIGNhc2UgRE1BUl9JRUFERFJfUkVHOgogICAg IGNhc2UgRE1BUl9JRVVBRERSX1JFRzoKQEAgLTI2Niw2ICszMzMsOSBAQCBzdGF0aWMgc3RydWN0 IHZ2dGQgKl9fdnZ0ZF9jcmVhdGUoc3RydWN0IGRvbWFpbiAqZCwKICAgICB2dnRkLT5iYXNlX2Fk ZHIgPSBiYXNlX2FkZHI7CiAgICAgdnZ0ZC0+ZG9tYWluID0gZDsKICAgICB2dnRkLT5zdGF0dXMg PSAwOworICAgIHZ2dGQtPmVpbSA9IDA7CisgICAgdnZ0ZC0+aXJ0ID0gMDsKKyAgICB2dnRkLT5p cnRfbWF4X2VudHJ5ID0gMDsKICAgICByZWdpc3Rlcl9tbWlvX2hhbmRsZXIoZCwgJnZ2dGRfbW1p b19vcHMpOwogICAgIHJldHVybiB2dnRkOwogCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvaW9tbXUuaCBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5o CmluZGV4IDJlOWRjYWEuLmZkMDQwZDAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5o CkBAIC0xOTUsOSArMTk1LDE2IEBACiAjZGVmaW5lIERNQV9HU1RTX1dCRlMgICAoKCh1NjQpMSkg PDwgMjcpCiAjZGVmaW5lIERNQV9HU1RTX1FJRVMgICAoKCh1NjQpMSkgPDwyNikKICNkZWZpbmUg RE1BX0dTVFNfSVJFUyAgICgoKHU2NCkxKSA8PDI1KQotI2RlZmluZSBETUFfR1NUU19TSVJUUFMg KCgodTY0KTEpIDw8IDI0KQorI2RlZmluZSBETUFfR1NUU19TSVJUUFNfQklUICAgICAyNAorI2Rl ZmluZSBETUFfR1NUU19TSVJUUFMgKCgodTY0KTEpIDw8IERNQV9HU1RTX1NJUlRQU19CSVQpCiAj ZGVmaW5lIERNQV9HU1RTX0NGSVMgICAoKCh1NjQpMSkgPDwyMykKIAorLyogSVJUQV9SRUcgKi8K KyNkZWZpbmUgRE1BX0lSVEFfQUREUih2YWwpICAgICAgKHZhbCAmIH4weGZmZlVMTCkKKyNkZWZp bmUgRE1BX0lSVEFfRUlNRSh2YWwpICAgICAgKCEhKHZhbCAmICgxIDw8IDExKSkpCisjZGVmaW5l IERNQV9JUlRBX1ModmFsKSAgICAgICAgICh2YWwgJiAweGYpCisjZGVmaW5lIERNQV9JUlRBX1NJ WkUodmFsKSAgICAgICgxVUwgPDwgKERNQV9JUlRBX1ModmFsKSArIDEpKQorCiAvKiBQTUVOX1JF RyAqLwogI2RlZmluZSBETUFfUE1FTl9FUE0gICAgKCgodTMyKTEpIDw8IDMxKQogI2RlZmluZSBE TUFfUE1FTl9QUlMgICAgKCgodTMyKTEpIDw8IDApCi0tIAoxLjguMy4xCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==