From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Liu Subject: [PATCH for-next v3 06/22] x86/traps: move PV hypercall handlers to pv/traps.c Date: Thu, 18 May 2017 18:09:48 +0100 Message-ID: <20170518171004.27204-7-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.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dBOwD-0002lv-Oy for xen-devel@lists.xenproject.org; Thu, 18 May 2017 17:10:09 +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 VGhlIGZvbGxvd2luZyBoYW5kbGVycyBhcmUgbW92ZWQ6CjEuIGRvX3NldF90cmFwX3RhYmxlCjIu IGRvX3NldF9kZWJ1Z3JlZwozLiBkb19nZXRfZGVidWdyZWcKNC4gZG9fZnB1X3Rhc2tzd2l0Y2gK Ck5vIGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9mZi1ieTogV2VpIExpdSA8d2VpLmxpdTJA Y2l0cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvcHYvdHJhcHMuYyB8IDk3ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9hcmNoL3g4Ni90cmFw cy5jICAgIHwgOTQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDIgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOTQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvcHYvdHJh cHMuYwppbmRleCA1MTEyNWE4ZDg2Li4zNTBlN2ExZGE0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvcHYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvcHYvdHJhcHMuYwpAQCAtMTksOSArMTks MTMgQEAKICAqIENvcHlyaWdodCAoYykgMjAxNyBDaXRyaXggU3lzdGVtcyBMdGQuCiAgKi8KIAor I2luY2x1ZGUgPHhlbi9ldmVudC5oPgorI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3MuaD4KICNp bmNsdWRlIDx4ZW4vaHlwZXJjYWxsLmg+CisjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAKICNpbmNs dWRlIDxhc20vYXBpYy5oPgorI2luY2x1ZGUgPGFzbS9kZWJ1Z3JlZy5oPgogCiB2b2lkIGRvX2Vu dHJ5X2ludDgyKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogewpAQCAtMzEsNiArMzUsOTkg QEAgdm9pZCBkb19lbnRyeV9pbnQ4MihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBw dl9oeXBlcmNhbGwocmVncyk7CiB9CiAKK2xvbmcgZG9fZnB1X3Rhc2tzd2l0Y2goaW50IHNldCkK K3sKKyAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CisKKyAgICBpZiAoIHNldCApCisgICAg eworICAgICAgICB2LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXSB8PSBYODZfQ1IwX1RTOworICAg ICAgICBzdHRzKCk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHYtPmFyY2gucHZf dmNwdS5jdHJscmVnWzBdICY9IH5YODZfQ1IwX1RTOworICAgICAgICBpZiAoIHYtPmZwdV9kaXJ0 aWVkICkKKyAgICAgICAgICAgIGNsdHMoKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKwor bG9uZyBkb19zZXRfdHJhcF90YWJsZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3RyYXBf aW5mb190KSB0cmFwcykKK3sKKyAgICBzdHJ1Y3QgdHJhcF9pbmZvIGN1cjsKKyAgICBzdHJ1Y3Qg dmNwdSAqY3VyciA9IGN1cnJlbnQ7CisgICAgc3RydWN0IHRyYXBfaW5mbyAqZHN0ID0gY3Vyci0+ YXJjaC5wdl92Y3B1LnRyYXBfY3R4dDsKKyAgICBsb25nIHJjID0gMDsKKworICAgIC8qIElmIG5v IHRhYmxlIGlzIHByZXNlbnRlZCB0aGVuIGNsZWFyIHRoZSBlbnRpcmUgdmlydHVhbCBJRFQuICov CisgICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbCh0cmFwcykgKQorICAgIHsKKyAgICAgICAg bWVtc2V0KGRzdCwgMCwgTlJfVkVDVE9SUyAqIHNpemVvZigqZHN0KSk7CisgICAgICAgIGluaXRf aW50ODBfZGlyZWN0X3RyYXAoY3Vycik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg IGZvciAoIDsgOyApCisgICAgeworICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmY3VyLCB0 cmFwcywgMSkgKQorICAgICAgICB7CisgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGlmICggY3VyLmFkZHJlc3MgPT0gMCAp CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoICFpc19jYW5vbmljYWxfYWRkcmVz cyhjdXIuYWRkcmVzcykgKQorICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICAgICAg Zml4dXBfZ3Vlc3RfY29kZV9zZWxlY3RvcihjdXJyLT5kb21haW4sIGN1ci5jcyk7CisKKyAgICAg ICAgbWVtY3B5KCZkc3RbY3VyLnZlY3Rvcl0sICZjdXIsIHNpemVvZihjdXIpKTsKKworICAgICAg ICBpZiAoIGN1ci52ZWN0b3IgPT0gMHg4MCApCisgICAgICAgICAgICBpbml0X2ludDgwX2RpcmVj dF90cmFwKGN1cnIpOworCisgICAgICAgIGd1ZXN0X2hhbmRsZV9hZGRfb2Zmc2V0KHRyYXBzLCAx KTsKKworICAgICAgICBpZiAoIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQorICAgICAgICB7 CisgICAgICAgICAgICByYyA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKAorICAgICAg ICAgICAgICAgIF9fSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJsZSwgImgiLCB0cmFwcyk7CisgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByYzsKK30KKwor bG9uZyBkb19zZXRfZGVidWdyZWcoaW50IHJlZywgdW5zaWduZWQgbG9uZyB2YWx1ZSkKK3sKKyAg ICByZXR1cm4gc2V0X2RlYnVncmVnKGN1cnJlbnQsIHJlZywgdmFsdWUpOworfQorCit1bnNpZ25l ZCBsb25nIGRvX2dldF9kZWJ1Z3JlZyhpbnQgcmVnKQoreworICAgIHN0cnVjdCB2Y3B1ICpjdXJy ID0gY3VycmVudDsKKworICAgIHN3aXRjaCAoIHJlZyApCisgICAgeworICAgIGNhc2UgMCAuLi4g MzoKKyAgICBjYXNlIDY6CisgICAgICAgIHJldHVybiBjdXJyLT5hcmNoLmRlYnVncmVnW3JlZ107 CisgICAgY2FzZSA3OgorICAgICAgICByZXR1cm4gKGN1cnItPmFyY2guZGVidWdyZWdbN10gfAor ICAgICAgICAgICAgICAgIGN1cnItPmFyY2guZGVidWdyZWdbNV0pOworICAgIGNhc2UgNCAuLi4g NToKKyAgICAgICAgcmV0dXJuICgoY3Vyci0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbNF0gJiBYODZf Q1I0X0RFKSA/CisgICAgICAgICAgICAgICAgY3Vyci0+YXJjaC5kZWJ1Z3JlZ1tyZWcgKyAyXSA6 IDApOworICAgIH0KKworICAgIHJldHVybiAtRUlOVkFMOworfQorCiAvKgogICogTG9jYWwgdmFy aWFibGVzOgogICogbW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RyYXBzLmMgYi94 ZW4vYXJjaC94ODYvdHJhcHMuYwppbmRleCBhY2UzNDZkMzc3Li5lNWEzYzlhZDFhIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvdHJhcHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAt MTQ4OSwyNSArMTQ4OSw2IEBAIHZvaWQgX19pbml0IGRvX2Vhcmx5X3BhZ2VfZmF1bHQoc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAgICAgfQogfQogCi1sb25nIGRvX2ZwdV90YXNrc3dpdGNo KGludCBzZXQpCi17Ci0gICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OwotCi0gICAgaWYgKCBz ZXQgKQotICAgIHsKLSAgICAgICAgdi0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbMF0gfD0gWDg2X0NS MF9UUzsKLSAgICAgICAgc3R0cygpOwotICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgICB2 LT5hcmNoLnB2X3ZjcHUuY3RybHJlZ1swXSAmPSB+WDg2X0NSMF9UUzsKLSAgICAgICAgaWYgKCB2 LT5mcHVfZGlydGllZCApCi0gICAgICAgICAgICBjbHRzKCk7Ci0gICAgfQotCi0gICAgcmV0dXJu IDA7Ci19Ci0KIHZvaWQgZG9fZ2VuZXJhbF9wcm90ZWN0aW9uKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKQEAgLTIxMjYsNTYgKzIx MDcsNiBAQCBpbnQgc2VuZF9ndWVzdF90cmFwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQxNl90IHZj cHVpZCwgdW5zaWduZWQgaW50IHRyYXBfbnIpCiAgICAgcmV0dXJuIC1FSU87CiB9CiAKLQotbG9u ZyBkb19zZXRfdHJhcF90YWJsZShYRU5fR1VFU1RfSEFORExFX1BBUkFNKGNvbnN0X3RyYXBfaW5m b190KSB0cmFwcykKLXsKLSAgICBzdHJ1Y3QgdHJhcF9pbmZvIGN1cjsKLSAgICBzdHJ1Y3QgdmNw dSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAgc3RydWN0IHRyYXBfaW5mbyAqZHN0ID0gY3Vyci0+YXJj aC5wdl92Y3B1LnRyYXBfY3R4dDsKLSAgICBsb25nIHJjID0gMDsKLQotICAgIC8qIElmIG5vIHRh YmxlIGlzIHByZXNlbnRlZCB0aGVuIGNsZWFyIHRoZSBlbnRpcmUgdmlydHVhbCBJRFQuICovCi0g ICAgaWYgKCBndWVzdF9oYW5kbGVfaXNfbnVsbCh0cmFwcykgKQotICAgIHsKLSAgICAgICAgbWVt c2V0KGRzdCwgMCwgTlJfVkVDVE9SUyAqIHNpemVvZigqZHN0KSk7Ci0gICAgICAgIGluaXRfaW50 ODBfZGlyZWN0X3RyYXAoY3Vycik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGZv ciAoIDsgOyApCi0gICAgewotICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmY3VyLCB0cmFw cywgMSkgKQotICAgICAgICB7Ci0gICAgICAgICAgICByYyA9IC1FRkFVTFQ7Ci0gICAgICAgICAg ICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICggY3VyLmFkZHJlc3MgPT0gMCApCi0g ICAgICAgICAgICBicmVhazsKLQotICAgICAgICBpZiAoICFpc19jYW5vbmljYWxfYWRkcmVzcyhj dXIuYWRkcmVzcykgKQotICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0KLSAgICAgICAgZml4 dXBfZ3Vlc3RfY29kZV9zZWxlY3RvcihjdXJyLT5kb21haW4sIGN1ci5jcyk7Ci0KLSAgICAgICAg bWVtY3B5KCZkc3RbY3VyLnZlY3Rvcl0sICZjdXIsIHNpemVvZihjdXIpKTsKLQotICAgICAgICBp ZiAoIGN1ci52ZWN0b3IgPT0gMHg4MCApCi0gICAgICAgICAgICBpbml0X2ludDgwX2RpcmVjdF90 cmFwKGN1cnIpOwotCi0gICAgICAgIGd1ZXN0X2hhbmRsZV9hZGRfb2Zmc2V0KHRyYXBzLCAxKTsK LQotICAgICAgICBpZiAoIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQotICAgICAgICB7Ci0g ICAgICAgICAgICByYyA9IGh5cGVyY2FsbF9jcmVhdGVfY29udGludWF0aW9uKAotICAgICAgICAg ICAgICAgIF9fSFlQRVJWSVNPUl9zZXRfdHJhcF90YWJsZSwgImgiLCB0cmFwcyk7Ci0gICAgICAg ICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiByYzsKLX0KLQogdm9p ZCBhY3RpdmF0ZV9kZWJ1Z3JlZ3MoY29uc3Qgc3RydWN0IHZjcHUgKmN1cnIpCiB7CiAgICAgQVNT RVJUKGN1cnIgPT0gY3VycmVudCk7CkBAIC0yMjk5LDMxICsyMjMwLDYgQEAgbG9uZyBzZXRfZGVi dWdyZWcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGxvbmcgdmFs dWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWxvbmcgZG9fc2V0X2RlYnVncmVnKGludCByZWcsIHVu c2lnbmVkIGxvbmcgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHNldF9kZWJ1Z3JlZyhjdXJyZW50LCBy ZWcsIHZhbHVlKTsKLX0KLQotdW5zaWduZWQgbG9uZyBkb19nZXRfZGVidWdyZWcoaW50IHJlZykK LXsKLSAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7Ci0KLSAgICBzd2l0Y2ggKCByZWcg KQotICAgIHsKLSAgICBjYXNlIDAgLi4uIDM6Ci0gICAgY2FzZSA2OgotICAgICAgICByZXR1cm4g Y3Vyci0+YXJjaC5kZWJ1Z3JlZ1tyZWddOwotICAgIGNhc2UgNzoKLSAgICAgICAgcmV0dXJuIChj dXJyLT5hcmNoLmRlYnVncmVnWzddIHwKLSAgICAgICAgICAgICAgICBjdXJyLT5hcmNoLmRlYnVn cmVnWzVdKTsKLSAgICBjYXNlIDQgLi4uIDU6Ci0gICAgICAgIHJldHVybiAoKGN1cnItPmFyY2gu cHZfdmNwdS5jdHJscmVnWzRdICYgWDg2X0NSNF9ERSkgPwotICAgICAgICAgICAgICAgIGN1cnIt PmFyY2guZGVidWdyZWdbcmVnICsgMl0gOiAwKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gLUVJTlZB TDsKLX0KLQogdm9pZCBhc21fZG9tYWluX2NyYXNoX3N5bmNocm9ub3VzKHVuc2lnbmVkIGxvbmcg YWRkcikKIHsKICAgICAvKgotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==