From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v6.5 14/26] x86: Introduce alternative indirect thunks Date: Thu, 4 Jan 2018 00:15:43 +0000 Message-ID: <1515024955-13390-15-git-send-email-andrew.cooper3@citrix.com> References: <1515024955-13390-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1515024955-13390-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org RGVwZW5kaW5nIG9uIGhhcmR3YXJlIGFuZCBtaWNyb2NvZGUgYXZhaWxhYmlsaXR5LCB3ZSB3aWxs IHdhbnQgdG8gcmVwbGFjZQpJTkRfVEhVTktfUkVQT0xJTkUgd2l0aCBvdGhlciBpbXBsZW1lbnRh dGlvbnMuCgpGb3IgQU1EIGhhcmR3YXJlLCBjaG9vc2UgSU5EX1RIVU5LX0xGRU5DRSBpbiBwcmVm ZXJlbmNlIHRvIHJldHBvbGluZSBpZiBsZmVuY2UKaXMga25vd24gdG8gYmUgKG9yIHdhcyBzdWNj ZXNzZnVsbHkgbWFkZSkgZGlzcGF0Y2ggc2VyaWFsaXNpbmcuCgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KdjQ6CiAqIE5ldwp2NToK ICogSW50cm9kdWNlIGEgY29tbWFuZCBsaW5lIG9wdGlvbgotLS0KIGRvY3MvbWlzYy94ZW4tY29t bWFuZC1saW5lLm1hcmtkb3duIHwgMTQgKysrKysrKwogeGVuL2FyY2gveDg2L2luZGlyZWN0X3Ro dW5rLlMgICAgICAgfCAxMyArKysrKystCiB4ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMgICAgICAg ICAgICB8IDczICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9pbmNs dWRlL2FzbS14ODYvY3B1ZmVhdHVyZXMuaCAgIHwgIDIgKwogNCBmaWxlcyBjaGFuZ2VkLCA5OSBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94ZW4t Y29tbWFuZC1saW5lLm1hcmtkb3duIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rv d24KaW5kZXggNzgxMTEwZC4uYzlkYmZiYiAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL3hlbi1jb21t YW5kLWxpbmUubWFya2Rvd24KKysrIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rv d24KQEAgLTI0NSw2ICsyNDUsMjAgQEAgYW5kIG5vdCBydW5uaW5nIHNvZnRpcnFzLiBSZWR1Y2Ug dGhpcyBpZiBzb2Z0aXJxcyBhcmUgbm90IGJlaW5nIHJ1biBmcmVxdWVudGx5CiBlbm91Z2guIFNl dHRpbmcgdGhpcyB0byBhIGhpZ2ggdmFsdWUgbWF5IGNhdXNlIGJvb3QgZmFpbHVyZSwgcGFydGlj dWxhcmx5IGlmCiB0aGUgTk1JIHdhdGNoZG9nIGlzIGFsc28gZW5hYmxlZC4KIAorIyMjIGJ0aSAo eDg2KQorPiBgPSBMaXN0IG9mIFsgdGh1bms9cmV0cG9saW5lfGxmZW5jZXxwbGFpbiBdYAorCitC cmFuY2ggVGFyZ2V0IEluamVjdGlvbiBjb250cm9scy4gIEJ5IGRlZmF1bHQsIFhlbiB3aWxsIHBp Y2sgdGhlIG1vc3QKK2FwcHJvcHJpYXRlIEJUSSBtaXRpZ2F0aW9ucyBiYXNlZCBvbiBjb21waWxl ZCBpbiBzdXBwb3J0LCBsb2FkZWQgbWljcm9jb2RlLAorYW5kIGhhcmR3YXJlIGRldGFpbHMuCisK KyoqV0FSTklORzogQW55IHVzZSBvZiB0aGlzIG9wdGlvbiBpbmhpYml0cyBhbGwgaGVyaXN0Y3Mu ICBVc2Ugd2l0aCBleHRyZW1lIGNhcmUuKioKKworSWYgWGVuIHdhcyBjb21waWxlZCB3aXRoIElO RElSRUNUX1RIVU5LIHN1cHBvcnQsIGB0aHVuaz1gIGNhbiBiZSB1c2VkIHRvCitzZWxlY3Qgd2hp Y2ggb2YgdGhlIHRodW5rcyBnZXRzIHBhdGNoZWQgaW50byB0aGUgYF9feDg2LmluZGlyZWN0X3Ro dW5rLiVyZWdgCitsb2NhdGlvbnMuICBUaGUgZGVmYXVsdCB0aHVuayBpcyBgcmV0cG9saW5lYCwg d2l0aCB0aGUgYWx0ZXJuYXRpdmVzIGJlaW5nCitgcGxhaW5gIChhIGBqbXAgKiVyZWdgIGdhZGdl dCksIGFuZCBgbGZlbmNlYCAoYW4gYGxmZW5jZTsgam1wIColcmVnYCBnYWRnZXQpLgorCiAjIyMg eGVuaGVhcFxfbWVnYWJ5dGVzIChhcm0zMikKID4gYD0gPHNpemU+YAogCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaW5kaXJlY3RfdGh1bmsuUyBiL3hlbi9hcmNoL3g4Ni9pbmRpcmVjdF90aHVu ay5TCmluZGV4IDRmZWYxYzguLjU0Mjk3NGEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmRp cmVjdF90aHVuay5TCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmRpcmVjdF90aHVuay5TCkBAIC0xMCw2 ICsxMCwxNSBAQAogICAgICAgICByZXQKIC5lbmRtCiAKKy5tYWNybyBJTkRfVEhVTktfTEZFTkNF IHJlZzpyZXEKKyAgICAgICAgbGZlbmNlCisgICAgICAgIGptcCAqXHJlZworLmVuZG0KKworLm1h Y3JvIElORF9USFVOS19KTVAgcmVnOnJlcQorICAgICAgICBqbXAgKlxyZWcKKy5lbmRtCisKIC8q CiAgKiBCdWlsZCB0aGUgX194ODYuaW5kaXJlY3RfdGh1bmsuKiBzeW1ib2xzLiAgRXhlY3V0aW9u IGxhbmRzIG9uIGFuCiAgKiBhbHRlcm5hdGl2ZSBwYXRjaCBwb2ludCB3aGljaCBpbXBsZW1lbnRz IG9uZSBvZiB0aGUgYWJvdmUgVEhVTktfKidzCkBAIC0xOCw3ICsyNyw5IEBACiAgICAgICAgIC5z ZWN0aW9uIC50ZXh0Ll9feDg2LmluZGlyZWN0X3RodW5rLlxuYW1lLCAiYXgiLCBAcHJvZ2JpdHMK IAogRU5UUlkoX194ODYuaW5kaXJlY3RfdGh1bmsuXG5hbWUpCi0gICAgICAgIElORF9USFVOS19S RVRQT0xJTkUgXHJlZworICAgICAgICBBTFRFUk5BVElWRV8yIF9fc3RyaW5naWZ5KElORF9USFVO S19SRVRQT0xJTkUgXHJlZyksICAgICAgICAgICAgICBcCisgICAgICAgIF9fc3RyaW5naWZ5KElO RF9USFVOS19MRkVOQ0UgXHJlZyksIFg4Nl9GRUFUVVJFX0lORF9USFVOS19MRkVOQ0UsIFwKKyAg ICAgICAgX19zdHJpbmdpZnkoSU5EX1RIVU5LX0pNUCBccmVnKSwgICAgWDg2X0ZFQVRVUkVfSU5E X1RIVU5LX0pNUAogLmVuZG0KIAogLyogSW5zdGFudGlhdGUgR0VOX0lORElSRUNUX1RIVU5LIGZv ciBlYWNoIHJlZ2lzdGVyIGV4Y2VwdCAlcnNwLiAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L3NwZWNfY3RybC5jIGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCmluZGV4IGZmZWU5MDkuLjgz MDE2NDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYworKysgYi94ZW4vYXJj aC94ODYvc3BlY19jdHJsLmMKQEAgLTE2LDYgKzE2LDcgQEAKICAqCiAgKiBDb3B5cmlnaHQgKGMp IDIwMTcgQ2l0cml4IFN5c3RlbXMgTHRkLgogICovCisjaW5jbHVkZSA8eGVuL2Vycm5vLmg+CiAj aW5jbHVkZSA8eGVuL2luaXQuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAKQEAgLTI3LDcgKzI4 LDQyIEBAIGVudW0gaW5kX3RodW5rIHsKICAgICBUSFVOS19OT05FLCAgICAvKiBNaXNzaW5nIGNv bXBpbGVyIHN1cHBvcnQgZm9yIHRodW5rcy4gKi8KIAogICAgIFRIVU5LX1JFVFBPTElORSwKLX07 CisgICAgVEhVTktfTEZFTkNFLAorICAgIFRIVU5LX0pNUCwKK30gb3B0X3RodW5rIF9faW5pdGRh dGEgPSBUSFVOS19ERUZBVUxUOworCitzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9idGkoY29uc3Qg Y2hhciAqcykKK3sKKyAgICBjb25zdCBjaGFyICpzczsKKyAgICBpbnQgcmMgPSAwOworCisgICAg ZG8geworICAgICAgICBzcyA9IHN0cmNocihzLCAnLCcpOworICAgICAgICBpZiAoICFzcyApCisg ICAgICAgICAgICBzcyA9IHN0cmNocihzLCAnXDAnKTsKKworICAgICAgICBpZiAoICFzdHJuY21w KHMsICJ0aHVuaz0iLCA2KSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHMgKz0gNjsKKworICAg ICAgICAgICAgaWYgKCAhc3RybmNtcChzLCAicmV0cG9saW5lIiwgc3MgLSBzKSApCisgICAgICAg ICAgICAgICAgb3B0X3RodW5rID0gVEhVTktfUkVUUE9MSU5FOworICAgICAgICAgICAgZWxzZSBp ZiAoICFzdHJuY21wKHMsICJsZmVuY2UiLCBzcyAtIHMpICkKKyAgICAgICAgICAgICAgICBvcHRf dGh1bmsgPSBUSFVOS19MRkVOQ0U7CisgICAgICAgICAgICBlbHNlIGlmICggIXN0cm5jbXAocywg ImptcCIsIHNzIC0gcykgKQorICAgICAgICAgICAgICAgIG9wdF90aHVuayA9IFRIVU5LX0pNUDsK KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7CisgICAgICAg IH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmMgPSAtRUlOVkFMOworCisgICAgICAgIHMg PSBzcyArIDE7CisgICAgfSB3aGlsZSAoICpzcyApOworCisgICAgcmV0dXJuIHJjOworfQorY3Vz dG9tX3BhcmFtKCJidGkiLCBwYXJzZV9idGkpOwogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJpbnRf ZGV0YWlscyhlbnVtIGluZF90aHVuayB0aHVuaykKIHsKQEAgLTQwLDcgKzc2LDkgQEAgc3RhdGlj IHZvaWQgX19pbml0IHByaW50X2RldGFpbHMoZW51bSBpbmRfdGh1bmsgdGh1bmspCiAgICAgcHJp bnRrKFhFTkxPR19JTkZPCiAgICAgICAgICAgICJCVEkgbWl0aWdhdGlvbnM6IFRodW5rICVzXG4i LAogICAgICAgICAgICB0aHVuayA9PSBUSFVOS19OT05FICAgICAgPyAiTi9BIiA6Ci0gICAgICAg ICAgIHRodW5rID09IFRIVU5LX1JFVFBPTElORSA/ICJSRVRQT0xJTkUiIDogIj8iKTsKKyAgICAg ICAgICAgdGh1bmsgPT0gVEhVTktfUkVUUE9MSU5FID8gIlJFVFBPTElORSIgOgorICAgICAgICAg ICB0aHVuayA9PSBUSFVOS19MRkVOQ0UgICAgPyAiTEZFTkNFIiA6CisgICAgICAgICAgIHRodW5r ID09IFRIVU5LX0pNUCAgICAgICA/ICJKTVAiIDogIj8iKTsKIH0KIAogdm9pZCBfX2luaXQgaW5p dF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQpAQCAtNDgsNiArODYsMzEgQEAgdm9pZCBf X2luaXQgaW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgIGVudW0gaW5kX3Ro dW5rIHRodW5rID0gVEhVTktfREVGQVVMVDsKIAogICAgIC8qCisgICAgICogSGFzIHRoZSB1c2Vy IHNwZWNpZmllZCBhbnkgY3VzdG9tIEJUSSBtaXRpZ2F0aW9ucz8gIElmIHNvLCBmb2xsb3cgdGhl aXIKKyAgICAgKiBpbnN0cnVjdGlvbnMgZXhhY3RseSBhbmQgZGlzYWJsZSBhbGwgaGV1cmlzdGlj cy4KKyAgICAgKi8KKyAgICBpZiAoIG9wdF90aHVuayAhPSBUSFVOS19ERUZBVUxUICkKKyAgICB7 CisgICAgICAgIHRodW5rID0gb3B0X3RodW5rOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAg ICAgICAvKgorICAgICAgICAgKiBFdmFsdWF0ZSB0aGUgc2FmZXN0IEJyYW5jaCBUYXJnZXQgSW5q ZWN0aW9uIG1pdGlnYXRpb25zIHRvIHVzZS4KKyAgICAgICAgICogRmlyc3QsIGJlZ2luIHdpdGgg Y29tcGlsZXItYWlkZWQgbWl0aWdhdGlvbnMuCisgICAgICAgICAqLworICAgICAgICBpZiAoIElT X0VOQUJMRUQoQ09ORklHX0lORElSRUNUX1RIVU5LKSApCisgICAgICAgIHsKKyAgICAgICAgICAg IC8qCisgICAgICAgICAgICAgKiBBTUQncyByZWNvbW1lbmRlZCBtaXRpZ2F0aW9uIGlzIHRvIHNl dCBsZmVuY2UgYXMgYmVpbmcgZGlzcGF0Y2gKKyAgICAgICAgICAgICAqIHNlcmlhbGlzaW5nLCBh bmQgdG8gdXNlIElORF9USFVOS19MRkVOQ0UuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAg IGlmICggY3B1X2hhc19sZmVuY2VfZGlzcGF0Y2ggKQorICAgICAgICAgICAgICAgIHRodW5rID0g VEhVTktfTEZFTkNFOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKICAgICAgKiBTdXBwbGlt ZW50YXJ5IG1pbm9yIGFkanVzdG1lbnRzLiAgV2l0aG91dCBjb21waWxlciBzdXBwb3J0LCB0aGVy ZSBhcmUKICAgICAgKiBubyB0aHVua3MuCiAgICAgICovCkBAIC02MSw2ICsxMjQsMTIgQEAgdm9p ZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgIGlmICggdGh1 bmsgPT0gVEhVTktfREVGQVVMVCApCiAgICAgICAgIHRodW5rID0gVEhVTktfUkVUUE9MSU5FOwog CisgICAgLyogQXBwbHkgdGhlIGNob3NlbiBzZXR0aW5ncy4gKi8KKyAgICBpZiAoIHRodW5rID09 IFRIVU5LX0xGRU5DRSApCisgICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVf SU5EX1RIVU5LX0xGRU5DRSk7CisgICAgZWxzZSBpZiAoIHRodW5rID09IFRIVU5LX0pNUCApCisg ICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVfSU5EX1RIVU5LX0pNUCk7CisK ICAgICBwcmludF9kZXRhaWxzKHRodW5rKTsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9jcHVmZWF0dXJlcy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVmZWF0dXJlcy5o CmluZGV4IDU4YjM3ZDYuLmJhMTc3MWIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv Y3B1ZmVhdHVyZXMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmVzLmgKQEAg LTIzLDMgKzIzLDUgQEAgWEVOX0NQVUZFQVRVUkUoTUZFTkNFX1JEVFNDLCAgICAoRlNDQVBJTlRT KzApKjMyKyA5KSAvKiBNRkVOQ0Ugc3luY2hyb25pemVzIFJEVFMKIFhFTl9DUFVGRUFUVVJFKFhF Tl9TTUVQLCAgICAgICAgKEZTQ0FQSU5UUyswKSozMisxMCkgLyogU01FUCBnZXRzIHVzZWQgYnkg WGVuIGl0c2VsZiAqLwogWEVOX0NQVUZFQVRVUkUoWEVOX1NNQVAsICAgICAgICAoRlNDQVBJTlRT KzApKjMyKzExKSAvKiBTTUFQIGdldHMgdXNlZCBieSBYZW4gaXRzZWxmICovCiBYRU5fQ1BVRkVB VFVSRShMRkVOQ0VfRElTUEFUQ0gsIChGU0NBUElOVFMrMCkqMzIrMTIpIC8qIGxmZW5jZSBzZXQg YXMgRGlzcGF0Y2ggU2VyaWFsaXNpbmcgKi8KK1hFTl9DUFVGRUFUVVJFKElORF9USFVOS19MRkVO Q0UsKEZTQ0FQSU5UUyswKSozMisxMykgLyogVXNlIElORF9USFVOS19MRkVOQ0UgKi8KK1hFTl9D UFVGRUFUVVJFKElORF9USFVOS19KTVAsICAgKEZTQ0FQSU5UUyswKSozMisxNCkgLyogVXNlIElO RF9USFVOS19KTVAgKi8KLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3Rp bmZvL3hlbi1kZXZlbA==