From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lan Tianyu Subject: [PATCH V3 12/29] x86/vvtd: Add MMIO handler for VVTD Date: Thu, 21 Sep 2017 23:01:53 -0400 Message-ID: <1506049330-11196-13-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 RnJvbTogQ2hhbyBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KClRoaXMgcGF0Y2ggYWRkcyBWVlRE IE1NSU8gaGFuZGxlciB0byBkZWFsIHdpdGggTU1JTyBhY2Nlc3MuCgpTaWduZWQtb2ZmLWJ5OiBD aGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBMYW4gVGlhbnl1IDx0 aWFueXUubGFuQGludGVsLmNvbT4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0 ZC5jIHwgOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBj aGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3Z2dGQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMKaW5k ZXggYzg1MWVjNy4uYTMwMDJjMyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL3Z2dGQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jCkBAIC00 Nyw2ICs0NywyOSBAQCBzdHJ1Y3QgdnZ0ZCB7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcmVnc19w YWdlOwogfTsKIAorLyogU2V0dGluZyB2aW9tbXVfdmVyYm9zZSBlbmFibGVzIGRlYnVnZ2luZyBt ZXNzYWdlcyBvZiB2SU9NTVUgKi8KK2Jvb2wgX19yZWFkX21vc3RseSB2aW9tbXVfdmVyYm9zZTsK K2Jvb2xlYW5fcnVudGltZV9wYXJhbSgidmlvbW11X3ZlcmJvc2UiLCB2aW9tbXVfdmVyYm9zZSk7 CisKKyNpZm5kZWYgTkRFQlVHCisjZGVmaW5lIHZ2dGRfaW5mbyhmbXQuLi4pIGRvIHsgICAgICAg ICAgICAgICAgICAgIFwKKyAgICBpZiAoIHZpb21tdV92ZXJib3NlICkgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAgICBncHJpbnRrKFhFTkxPR19HX0lORk8sICMjIGZtdCk7ICAgICAg ICAgICBcCit9IHdoaWxlKDApCisjZGVmaW5lIHZ2dGRfZGVidWcoZm10Li4uKSBkbyB7ICAgICAg ICAgICAgICAgICAgIFwKKyAgICBpZiAoIHZpb21tdV92ZXJib3NlICYmIHByaW50a19yYXRlbGlt aXQoKSApICAgXAorICAgICAgICBwcmludGsoWEVOTE9HX0dfREVCVUcgZm10KTsgICAgICAgICAg ICAgICBcCit9IHdoaWxlKDApCisjZWxzZQorI2RlZmluZSB2dnRkX2luZm8oZm10Li4uKSBkbyB7 fSB3aGlsZSgwKQorI2RlZmluZSB2dnRkX2RlYnVnKGZtdC4uLikgZG8ge30gd2hpbGUoMCkKKyNl bmRpZgorCitzdHJ1Y3QgdnZ0ZCAqZG9tYWluX3Z2dGQoc3RydWN0IGRvbWFpbiAqZCkKK3sKKyAg ICByZXR1cm4gKGQtPnZpb21tdSkgPyBkLT52aW9tbXUtPnByaXYgOiBOVUxMOworfQorCiBzdGF0 aWMgaW5saW5lIHZvaWQgdnZ0ZF9zZXRfcmVnKHN0cnVjdCB2dnRkICp2dGQsIHVpbnQzMl90IHJl ZywgdWludDMyX3QgdmFsdWUpCiB7CiAgICAgdnRkLT5yZWdzLT5kYXRhMzJbcmVnL3NpemVvZih1 aW50MzJfdCldID0gdmFsdWU7CkBAIC02OCw2ICs5MSw3MyBAQCBzdGF0aWMgaW5saW5lIHVpbnQ2 NF90IHZ2dGRfZ2V0X3JlZ19xdWFkKHN0cnVjdCB2dnRkICp2dGQsIHVpbnQzMl90IHJlZykKICAg ICByZXR1cm4gdnRkLT5yZWdzLT5kYXRhNjRbcmVnL3NpemVvZih1aW50NjRfdCldOwogfQogCitz dGF0aWMgaW50IHZ2dGRfaW5fcmFuZ2Uoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRk cikKK3sKKyAgICBzdHJ1Y3QgdnZ0ZCAqdnZ0ZCA9IGRvbWFpbl92dnRkKHYtPmRvbWFpbik7CisK KyAgICBpZiAoIHZ2dGQgKQorICAgICAgICByZXR1cm4gKGFkZHIgPj0gdnZ0ZC0+YmFzZV9hZGRy KSAmJgorICAgICAgICAgICAgICAgKGFkZHIgPCB2dnRkLT5iYXNlX2FkZHIgKyBQQUdFX1NJWkUp OworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZ2dGRfcmVhZChzdHJ1Y3QgdmNwdSAq diwgdW5zaWduZWQgbG9uZyBhZGRyLAorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGxlbiwgdW5zaWduZWQgbG9uZyAqcHZhbCkKK3sKKyAgICBzdHJ1Y3QgdnZ0ZCAqdnZ0ZCA9IGRv bWFpbl92dnRkKHYtPmRvbWFpbik7CisgICAgdW5zaWduZWQgaW50IG9mZnNldCA9IGFkZHIgLSB2 dnRkLT5iYXNlX2FkZHI7CisKKyAgICB2dnRkX2luZm8oIlJlYWQgb2Zmc2V0ICV4IGxlbiAlZFxu Iiwgb2Zmc2V0LCBsZW4pOworCisgICAgaWYgKCAobGVuICE9IDQgJiYgbGVuICE9IDgpIHx8IChv ZmZzZXQgJiAobGVuIC0gMSkpICkKKyAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKworICAg IGlmICggbGVuID09IDQgKQorICAgICAgICAqcHZhbCA9IHZ2dGRfZ2V0X3JlZyh2dnRkLCBvZmZz ZXQpOworICAgIGVsc2UKKyAgICAgICAgKnB2YWwgPSB2dnRkX2dldF9yZWdfcXVhZCh2dnRkLCBv ZmZzZXQpOworCisgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKK30KKworc3RhdGljIGludCB2dnRk X3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsCisgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGxlbiwgdW5zaWduZWQgbG9uZyB2YWwpCit7CisgICAgc3Ry dWN0IHZ2dGQgKnZ2dGQgPSBkb21haW5fdnZ0ZCh2LT5kb21haW4pOworICAgIHVuc2lnbmVkIGlu dCBvZmZzZXQgPSBhZGRyIC0gdnZ0ZC0+YmFzZV9hZGRyOworCisgICAgdnZ0ZF9pbmZvKCJXcml0 ZSBvZmZzZXQgJXggbGVuICVkIHZhbCAlbHhcbiIsIG9mZnNldCwgbGVuLCB2YWwpOworCisgICAg aWYgKCAobGVuICE9IDQgJiYgbGVuICE9IDgpIHx8IChvZmZzZXQgJiAobGVuIC0gMSkpICkKKyAg ICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKKworICAgIGlmICggbGVuID09IDQgKQorICAgIHsK KyAgICAgICAgc3dpdGNoICggb2Zmc2V0ICkKKyAgICAgICAgeworICAgICAgICBjYXNlIERNQVJf SUVEQVRBX1JFRzoKKyAgICAgICAgY2FzZSBETUFSX0lFQUREUl9SRUc6CisgICAgICAgIGNhc2Ug RE1BUl9JRVVBRERSX1JFRzoKKyAgICAgICAgY2FzZSBETUFSX0ZFREFUQV9SRUc6CisgICAgICAg IGNhc2UgRE1BUl9GRUFERFJfUkVHOgorICAgICAgICBjYXNlIERNQVJfRkVVQUREUl9SRUc6Cisg ICAgICAgICAgICB2dnRkX3NldF9yZWcodnZ0ZCwgb2Zmc2V0LCB2YWwpOworICAgICAgICAgICAg YnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9 CisgICAgfQorCisgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKK30KKworc3RhdGljIGNvbnN0IHN0 cnVjdCBodm1fbW1pb19vcHMgdnZ0ZF9tbWlvX29wcyA9IHsKKyAgICAuY2hlY2sgPSB2dnRkX2lu X3JhbmdlLAorICAgIC5yZWFkID0gdnZ0ZF9yZWFkLAorICAgIC53cml0ZSA9IHZ2dGRfd3JpdGUK K307CisKIHN0YXRpYyB2b2lkIHZ2dGRfcmVzZXQoc3RydWN0IHZ2dGQgKnZ2dGQsIHVpbnQ2NF90 IGNhcGFiaWxpdHkpCiB7CiAgICAgdWludDY0X3QgY2FwID0gY2FwX3NldF9udW1fZmF1bHRfcmVn cygxVUxMKSB8CkBAIC0xMDksNiArMTk5LDcgQEAgc3RhdGljIGludCB2dnRkX2NyZWF0ZShzdHJ1 Y3QgZG9tYWluICpkLCBzdHJ1Y3QgdmlvbW11ICp2aW9tbXUpCiAgICAgdnZ0ZF9yZXNldCh2dnRk LCB2aW9tbXUtPmNhcHMpOwogICAgIHZ2dGQtPmJhc2VfYWRkciA9IHZpb21tdS0+YmFzZV9hZGRy ZXNzOwogICAgIHZ2dGQtPmRvbWFpbiA9IGQ7CisgICAgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKGQs ICZ2dnRkX21taW9fb3BzKTsKIAogICAgIHZpb21tdS0+cHJpdiA9IHZ2dGQ7CiAKLS0gCjEuOC4z LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK