From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v4 08/28] x86/vvtd: Add MMIO handler for VVTD Date: Fri, 17 Nov 2017 14:22:15 +0800 Message-ID: <1510899755-40237-9-git-send-email-chao.gao@intel.com> References: <1510899755-40237-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1510899755-40237-1-git-send-email-chao.gao@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 , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Ian Jackson , Tim Deegan , Jan Beulich , Andrew Cooper , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIFZWVEQgTU1JTyBoYW5kbGVyIHRvIGRlYWwgd2l0aCBNTUlPIGFjY2Vz cy4KClNpZ25lZC1vZmYtYnk6IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IExhbiBUaWFueXUgPHRpYW55dS5sYW5AaW50ZWwuY29tPgotLS0KdjQ6CiAtIG9ubHkg dHJhcCB0aGUgcmVnaXN0ZXIgZW11bGF0ZWQgaW4gdnZ0ZF9pbl9yYW5nZSgpLgogICBpLmUuIHJl cGxhY2UgUEFHRV9TSVpFIHdpdGggdGhlIFZWVERfTUFYX09GRlNFVAotLS0KIHhlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQg YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3Z2dGQuYwppbmRleCA5Zjc2Y2NmLi5kNzhkODc4IDEwMDY0NAotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC92dnRkLmMKQEAgLTk0LDYgKzk0LDYwIEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3Qg dnZ0ZF9nZXRfcmVnX3F1YWQoY29uc3Qgc3RydWN0IHZ2dGQgKnZ2dGQsIHVpbnQzMl90IHJlZykK ICAgICByZXR1cm4gKih1aW50NjRfdCopVlZURF9SRUdfUE9TKHZ2dGQsIHJlZyk7CiB9CiAKK3N0 YXRpYyB2b2lkICpkb21haW5fdnZ0ZChjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIGlm ICggaXNfaHZtX2RvbWFpbihkKSAmJiBkLT5hcmNoLmh2bV9kb21haW4udmlvbW11ICkKKyAgICAg ICAgcmV0dXJuIGQtPmFyY2guaHZtX2RvbWFpbi52aW9tbXUtPnByaXY7CisgICAgZWxzZQorICAg ICAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGludCB2dnRkX2luX3JhbmdlKHN0cnVjdCB2 Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIpCit7CisgICAgc3RydWN0IHZ2dGQgKnZ2dGQgPSBk b21haW5fdnZ0ZCh2LT5kb21haW4pOworCisgICAgaWYgKCB2dnRkICkKKyAgICAgICAgcmV0dXJu IChhZGRyID49IHZ2dGQtPmJhc2VfYWRkcikgJiYKKyAgICAgICAgICAgICAgIChhZGRyIDwgdnZ0 ZC0+YmFzZV9hZGRyICsgVlZURF9NQVhfT0ZGU0VUKTsKKyAgICByZXR1cm4gMDsKK30KKworc3Rh dGljIGludCB2dnRkX3JlYWQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgYWRkciwKKyAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZW4sIHVuc2lnbmVkIGxvbmcgKnB2YWwp Cit7CisgICAgc3RydWN0IHZ2dGQgKnZ2dGQgPSBkb21haW5fdnZ0ZCh2LT5kb21haW4pOworICAg IHVuc2lnbmVkIGludCBvZmZzZXQgPSBhZGRyIC0gdnZ0ZC0+YmFzZV9hZGRyOworCisgICAgdnZ0 ZF9pbmZvKCJSZWFkIG9mZnNldCAleCBsZW4gJWRcbiIsIG9mZnNldCwgbGVuKTsKKworICAgIGlm ICggKGxlbiAhPSA0ICYmIGxlbiAhPSA4KSB8fCAob2Zmc2V0ICYgKGxlbiAtIDEpKSApCisgICAg ICAgIHJldHVybiBYODZFTVVMX09LQVk7CisKKyAgICBpZiAoIGxlbiA9PSA0ICkKKyAgICAgICAg KnB2YWwgPSB2dnRkX2dldF9yZWcodnZ0ZCwgb2Zmc2V0KTsKKyAgICBlbHNlCisgICAgICAgICpw dmFsID0gdnZ0ZF9nZXRfcmVnX3F1YWQodnZ0ZCwgb2Zmc2V0KTsKKworICAgIHJldHVybiBYODZF TVVMX09LQVk7Cit9CisKK3N0YXRpYyBpbnQgdnZ0ZF93cml0ZShzdHJ1Y3QgdmNwdSAqdiwgdW5z aWduZWQgbG9uZyBhZGRyLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZW4s IHVuc2lnbmVkIGxvbmcgdmFsKQoreworICAgIHN0cnVjdCB2dnRkICp2dnRkID0gZG9tYWluX3Z2 dGQodi0+ZG9tYWluKTsKKyAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0ID0gYWRkciAtIHZ2dGQtPmJh c2VfYWRkcjsKKworICAgIHZ2dGRfaW5mbygiV3JpdGUgb2Zmc2V0ICV4IGxlbiAlZCB2YWwgJWx4 XG4iLCBvZmZzZXQsIGxlbiwgdmFsKTsKKworICAgIHJldHVybiBYODZFTVVMX09LQVk7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHZtX21taW9fb3BzIHZ2dGRfbW1pb19vcHMgPSB7CisgICAg LmNoZWNrID0gdnZ0ZF9pbl9yYW5nZSwKKyAgICAucmVhZCA9IHZ2dGRfcmVhZCwKKyAgICAud3Jp dGUgPSB2dnRkX3dyaXRlCit9OworCiBzdGF0aWMgdm9pZCB2dnRkX3Jlc2V0KHN0cnVjdCB2dnRk ICp2dnRkKQogewogICAgIHVpbnQ2NF90IGNhcCA9IGNhcF9zZXRfbnVtX2ZhdWx0X3JlZ3MoVlZU RF9GUkNEX05VTSkKQEAgLTEyNiw2ICsxODAsNyBAQCBzdGF0aWMgaW50IHZ2dGRfY3JlYXRlKHN0 cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2aW9tbXUgKnZpb21tdSkKICAgICB2dnRkX3Jlc2V0KHZ2 dGQpOwogICAgIHZ2dGQtPmJhc2VfYWRkciA9IHZpb21tdS0+YmFzZV9hZGRyZXNzOwogICAgIHZ2 dGQtPmRvbWFpbiA9IGQ7CisgICAgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKGQsICZ2dnRkX21taW9f b3BzKTsKIAogICAgIHZpb21tdS0+cHJpdiA9IHZ2dGQ7CiAKLS0gCjEuOC4zLjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK