From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH for-next v3 04/22] x86/traps: move emulate_forced_invalid_op Date: Thu, 18 May 2017 18:09:46 +0100 Message-ID: <20170518171004.27204-5-wei.liu2@citrix.com> References: <20170518171004.27204-1-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBOwI-0002ml-5O for xen-devel@lists.xenproject.org; Thu, 18 May 2017 17:10:14 +0000 In-Reply-To: <20170518171004.27204-1-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich List-Id: xen-devel@lists.xenproject.org QW5kIHJlbW92ZSB0aGUgbm93IHVudXNlZCBpbnN0cnVjdGlvbl9kb25lIGluIHg4Ni90cmFwcy5j LgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBXZWkgTGl1IDx3ZWkubGl1 MkBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wdi9lbXVsYXRlLmMgICAgICB8IDUxICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni90cmFwcy5jICAg ICAgICAgICB8IDYyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog eGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi90cmFwcy5oIHwgIDIgKysKIDMgZmlsZXMgY2hhbmdlZCwg NTMgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L3B2L2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVsYXRlLmMKaW5kZXggMzY0Y2Qw Zjc4Yy4uZTI2MWFlYjBmNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3B2L2VtdWxhdGUuYwor KysgYi94ZW4vYXJjaC94ODYvcHYvZW11bGF0ZS5jCkBAIC0xODgyLDYgKzE4ODIsNTcgQEAgaW50 IGVtdWxhdGVfaW52YWxpZF9yZHRzY3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAg cmV0dXJuIEVYQ1JFVF9mYXVsdF9maXhlZDsKIH0KIAoraW50IGVtdWxhdGVfZm9yY2VkX2ludmFs aWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCit7CisgICAgY2hhciBzaWdbNV0sIGlu c3RyWzJdOworICAgIHVuc2lnbmVkIGxvbmcgZWlwLCByYzsKKyAgICBzdHJ1Y3QgY3B1aWRfbGVh ZiByZXM7CisKKyAgICBlaXAgPSByZWdzLT5yaXA7CisKKyAgICAvKiBDaGVjayBmb3IgZm9yY2Vk IGVtdWxhdGlvbiBzaWduYXR1cmU6IHVkMiA7IC5hc2NpaSAieGVuIi4gKi8KKyAgICBpZiAoIChy YyA9IGNvcHlfZnJvbV91c2VyKHNpZywgKGNoYXIgKillaXAsIHNpemVvZihzaWcpKSkgIT0gMCAp CisgICAgeworICAgICAgICBwdl9pbmplY3RfcGFnZV9mYXVsdCgwLCBlaXAgKyBzaXplb2Yoc2ln KSAtIHJjKTsKKyAgICAgICAgcmV0dXJuIEVYQ1JFVF9mYXVsdF9maXhlZDsKKyAgICB9CisgICAg aWYgKCBtZW1jbXAoc2lnLCAiXHhmXHhieGVuIiwgc2l6ZW9mKHNpZykpICkKKyAgICAgICAgcmV0 dXJuIDA7CisgICAgZWlwICs9IHNpemVvZihzaWcpOworCisgICAgLyogV2Ugb25seSBlbXVsYXRl IENQVUlELiAqLworICAgIGlmICggKCByYyA9IGNvcHlfZnJvbV91c2VyKGluc3RyLCAoY2hhciAq KWVpcCwgc2l6ZW9mKGluc3RyKSkpICE9IDAgKQorICAgIHsKKyAgICAgICAgcHZfaW5qZWN0X3Bh Z2VfZmF1bHQoMCwgZWlwICsgc2l6ZW9mKGluc3RyKSAtIHJjKTsKKyAgICAgICAgcmV0dXJuIEVY Q1JFVF9mYXVsdF9maXhlZDsKKyAgICB9CisgICAgaWYgKCBtZW1jbXAoaW5zdHIsICJceGZceGEy Iiwgc2l6ZW9mKGluc3RyKSkgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8qIElmIGNwdWlk IGZhdWx0aW5nIGlzIGVuYWJsZWQgYW5kIENQTD4wIGluamVjdCBhICNHUCBpbiBwbGFjZSBvZiAj VUQuICovCisgICAgaWYgKCBjdXJyZW50LT5hcmNoLmNwdWlkX2ZhdWx0aW5nICYmICFndWVzdF9r ZXJuZWxfbW9kZShjdXJyZW50LCByZWdzKSApCisgICAgeworICAgICAgICByZWdzLT5yaXAgPSBl aXA7CisgICAgICAgIHB2X2luamVjdF9od19leGNlcHRpb24oVFJBUF9ncF9mYXVsdCwgcmVncy0+ ZXJyb3JfY29kZSk7CisgICAgICAgIHJldHVybiBFWENSRVRfZmF1bHRfZml4ZWQ7CisgICAgfQor CisgICAgZWlwICs9IHNpemVvZihpbnN0cik7CisKKyAgICBndWVzdF9jcHVpZChjdXJyZW50LCBy ZWdzLT5lYXgsIHJlZ3MtPmVjeCwgJnJlcyk7CisKKyAgICByZWdzLT5yYXggPSByZXMuYTsKKyAg ICByZWdzLT5yYnggPSByZXMuYjsKKyAgICByZWdzLT5yY3ggPSByZXMuYzsKKyAgICByZWdzLT5y ZHggPSByZXMuZDsKKworICAgIGluc3RydWN0aW9uX2RvbmUocmVncywgZWlwKTsKKworICAgIHRy YWNlX3RyYXBfb25lX2FkZHIoVFJDX1BWX0ZPUkNFRF9JTlZBTElEX09QLCByZWdzLT5yaXApOwor CisgICAgcmV0dXJuIEVYQ1JFVF9mYXVsdF9maXhlZDsKK30KKwogLyoKICAqIExvY2FsIHZhcmlh YmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIveGVu L2FyY2gveDg2L3RyYXBzLmMKaW5kZXggMzhiYzUzMWY1Yi4uYWNlMzQ2ZDM3NyAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTY5 NiwxNyArNjk2LDYgQEAgdm9pZCBwdl9pbmplY3RfZXZlbnQoY29uc3Qgc3RydWN0IHg4Nl9ldmVu dCAqZXZlbnQpCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBpbnN0cnVjdGlvbl9kb25lKHN0cnVj dCBjcHVfdXNlcl9yZWdzICpyZWdzLCB1bnNpZ25lZCBsb25nIHJpcCkKLXsKLSAgICByZWdzLT5y aXAgPSByaXA7Ci0gICAgcmVncy0+ZWZsYWdzICY9IH5YODZfRUZMQUdTX1JGOwotICAgIGlmICgg cmVncy0+ZWZsYWdzICYgWDg2X0VGTEFHU19URiApCi0gICAgewotICAgICAgICBjdXJyZW50LT5h cmNoLmRlYnVncmVnWzZdIHw9IERSX1NURVAgfCBEUl9TVEFUVVNfUkVTRVJWRURfT05FOwotICAg ICAgICBwdl9pbmplY3RfaHdfZXhjZXB0aW9uKFRSQVBfZGVidWcsIFg4Nl9FVkVOVF9OT19FQyk7 Ci0gICAgfQotfQotCiAvKgogICogQ2FsbGVkIGZyb20gYXNtIHRvIHNldCB1cCB0aGUgTUNFIHRy YXBib3VuY2UgaW5mby4KICAqIFJldHVybnMgMCBpZiBubyBjYWxsYmFjayBpcyBzZXQgdXAsIGVs c2UgMS4KQEAgLTk3OCw1NyArOTY3LDYgQEAgdm9pZCBjcHVpZF9oeXBlcnZpc29yX2xlYXZlcyhj b25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgbGVhZiwKICAgICB9CiB9CiAKLXN0YXRpYyBp bnQgZW11bGF0ZV9mb3JjZWRfaW52YWxpZF9vcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykK LXsKLSAgICBjaGFyIHNpZ1s1XSwgaW5zdHJbMl07Ci0gICAgdW5zaWduZWQgbG9uZyBlaXAsIHJj OwotICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJlczsKLQotICAgIGVpcCA9IHJlZ3MtPnJpcDsKLQot ICAgIC8qIENoZWNrIGZvciBmb3JjZWQgZW11bGF0aW9uIHNpZ25hdHVyZTogdWQyIDsgLmFzY2lp ICJ4ZW4iLiAqLwotICAgIGlmICggKHJjID0gY29weV9mcm9tX3VzZXIoc2lnLCAoY2hhciAqKWVp cCwgc2l6ZW9mKHNpZykpKSAhPSAwICkKLSAgICB7Ci0gICAgICAgIHB2X2luamVjdF9wYWdlX2Zh dWx0KDAsIGVpcCArIHNpemVvZihzaWcpIC0gcmMpOwotICAgICAgICByZXR1cm4gRVhDUkVUX2Zh dWx0X2ZpeGVkOwotICAgIH0KLSAgICBpZiAoIG1lbWNtcChzaWcsICJceGZceGJ4ZW4iLCBzaXpl b2Yoc2lnKSkgKQotICAgICAgICByZXR1cm4gMDsKLSAgICBlaXAgKz0gc2l6ZW9mKHNpZyk7Ci0K LSAgICAvKiBXZSBvbmx5IGVtdWxhdGUgQ1BVSUQuICovCi0gICAgaWYgKCAoIHJjID0gY29weV9m cm9tX3VzZXIoaW5zdHIsIChjaGFyICopZWlwLCBzaXplb2YoaW5zdHIpKSkgIT0gMCApCi0gICAg ewotICAgICAgICBwdl9pbmplY3RfcGFnZV9mYXVsdCgwLCBlaXAgKyBzaXplb2YoaW5zdHIpIC0g cmMpOwotICAgICAgICByZXR1cm4gRVhDUkVUX2ZhdWx0X2ZpeGVkOwotICAgIH0KLSAgICBpZiAo IG1lbWNtcChpbnN0ciwgIlx4Zlx4YTIiLCBzaXplb2YoaW5zdHIpKSApCi0gICAgICAgIHJldHVy biAwOwotCi0gICAgLyogSWYgY3B1aWQgZmF1bHRpbmcgaXMgZW5hYmxlZCBhbmQgQ1BMPjAgaW5q ZWN0IGEgI0dQIGluIHBsYWNlIG9mICNVRC4gKi8KLSAgICBpZiAoIGN1cnJlbnQtPmFyY2guY3B1 aWRfZmF1bHRpbmcgJiYgIWd1ZXN0X2tlcm5lbF9tb2RlKGN1cnJlbnQsIHJlZ3MpICkKLSAgICB7 Ci0gICAgICAgIHJlZ3MtPnJpcCA9IGVpcDsKLSAgICAgICAgcHZfaW5qZWN0X2h3X2V4Y2VwdGlv bihUUkFQX2dwX2ZhdWx0LCByZWdzLT5lcnJvcl9jb2RlKTsKLSAgICAgICAgcmV0dXJuIEVYQ1JF VF9mYXVsdF9maXhlZDsKLSAgICB9Ci0KLSAgICBlaXAgKz0gc2l6ZW9mKGluc3RyKTsKLQotICAg IGd1ZXN0X2NwdWlkKGN1cnJlbnQsIHJlZ3MtPmVheCwgcmVncy0+ZWN4LCAmcmVzKTsKLQotICAg IHJlZ3MtPnJheCA9IHJlcy5hOwotICAgIHJlZ3MtPnJieCA9IHJlcy5iOwotICAgIHJlZ3MtPnJj eCA9IHJlcy5jOwotICAgIHJlZ3MtPnJkeCA9IHJlcy5kOwotCi0gICAgaW5zdHJ1Y3Rpb25fZG9u ZShyZWdzLCBlaXApOwotCi0gICAgdHJhY2VfdHJhcF9vbmVfYWRkcihUUkNfUFZfRk9SQ0VEX0lO VkFMSURfT1AsIHJlZ3MtPnJpcCk7Ci0KLSAgICByZXR1cm4gRVhDUkVUX2ZhdWx0X2ZpeGVkOwot fQotCiB2b2lkIGRvX2ludmFsaWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7CiAg ICAgY29uc3Qgc3RydWN0IGJ1Z19mcmFtZSAqYnVnID0gTlVMTDsKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvcHYvdHJhcHMuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvdHJhcHMu aAppbmRleCA4OGRjMjA5MjhiLi4zZjFjOTNhNDMwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L3B2L3RyYXBzLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi90cmFwcy5oCkBA IC0yOCw2ICsyOCw3IEBACiBpbnQgZW11bGF0ZV9wcml2aWxlZ2VkX29wKHN0cnVjdCBjcHVfdXNl cl9yZWdzICpyZWdzKTsKIHZvaWQgZW11bGF0ZV9nYXRlX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKTsKIGludCBlbXVsYXRlX2ludmFsaWRfcmR0c2NwKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKTsKK2ludCBlbXVsYXRlX2ZvcmNlZF9pbnZhbGlkX29wKHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKTsKIAogI2Vsc2UgIC8qICFDT05GSUdfUFYgKi8KIApAQCAtMzYsNiArMzcsNyBA QCBpbnQgZW11bGF0ZV9pbnZhbGlkX3JkdHNjcChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7 CiBpbnQgZW11bGF0ZV9wcml2aWxlZ2VkX29wKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKSB7 IHJldHVybiAtRU9QTk9UU1VQUDsgfQogdm9pZCBlbXVsYXRlX2dhdGVfb3Aoc3RydWN0IGNwdV91 c2VyX3JlZ3MgKnJlZ3MpIHt9CiBpbnQgZW11bGF0ZV9pbnZhbGlkX3JkdHNjcChzdHJ1Y3QgY3B1 X3VzZXJfcmVncyAqcmVncykgeyByZXR1cm4gMDsgfQoraW50IGVtdWxhdGVfZm9yY2VkX2ludmFs aWRfb3Aoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpIHsgcmV0dXJuIDA7IH0KIAogI2VuZGlm CS8qIENPTkZJR19QViAqLwogCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBs aXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK