From: Thomas Garnier Subject: [PATCH v1 26/27] x86/relocs: Add option to generate 64-bit relocations Date: Wed, 11 Oct 2017 13:30:26 -0700 Message-ID: <20171011203027.11248-27-thgarnie@google.com> References: <20171011203027.11248-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: linux-arch@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-sparse@vger.kernel.org, linux-crypto@vger.kernel.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Arnd Bergmann , Thomas Garnier , Kees Cook , Andrey Ryabinin , Matthias Kaehlcke , Tom Lendacky , Andy Lutomirski , "Kirill A . Shutemov" , Borislav Petkov , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Juergen Gross , Chris Wright , Alok Kataria , Rusty Russell , Tejun Heo In-Reply-To: <20171011203027.11248-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org VGhlIHg4NiByZWxvY2F0aW9uIHRvb2wgZ2VuZXJhdGVzIGEgbGlzdCBvZiAzMi1iaXQgc2lnbmVk IGludGVnZXJzLiBUaGVyZQp3YXMgbm8gbmVlZCB0byB1c2UgNjQtYml0IGludGVnZXJzIGJlY2F1 c2UgYWxsIGFkZHJlc3NlcyB3aGVyZSBhYm92ZSB0aGUgMkcKdG9wIG9mIHRoZSBtZW1vcnkuCgpU aGlzIGNoYW5nZSBhZGQgYSBsYXJnZS1yZWxvYyBvcHRpb24gdG8gZ2VuZXJhdGUgNjQtYml0IHVu c2lnbmVkIGludGVnZXJzLgpJdCBjYW4gYmUgdXNlZCB3aGVuIHRoZSBrZXJuZWwgcGxhbiB0byBn byBiZWxvdyB0aGUgdG9wIDJHIGFuZCAzMi1iaXQKaW50ZWdlcnMgYXJlIG5vdCBlbm91Z2guCgpT aWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2FybmllciA8dGhnYXJuaWVAZ29vZ2xlLmNvbT4KLS0tCiBh cmNoL3g4Ni90b29scy9yZWxvY3MuYyAgICAgICAgfCA2MCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KIGFyY2gveDg2L3Rvb2xzL3JlbG9jcy5oICAgICAgICB8ICA0 ICstLQogYXJjaC94ODYvdG9vbHMvcmVsb2NzX2NvbW1vbi5jIHwgMTUgKysrKysrKy0tLS0KIDMg ZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvYXJjaC94ODYvdG9vbHMvcmVsb2NzLmMgYi9hcmNoL3g4Ni90b29scy9yZWxvY3MuYwpp bmRleCBiYzAzMmFkODhiMjIuLmU3NDk3ZWExZmU3NiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvdG9v bHMvcmVsb2NzLmMKKysrIGIvYXJjaC94ODYvdG9vbHMvcmVsb2NzLmMKQEAgLTEyLDggKzEyLDE0 IEBACiAKIHN0YXRpYyBFbGZfRWhkciBlaGRyOwogCisjaWYgRUxGX0JJVFMgPT0gNjQKK3R5cGVk ZWYgdWludDY0X3QgcmVsX29mZl90OworI2Vsc2UKK3R5cGVkZWYgdWludDMyX3QgcmVsX29mZl90 OworI2VuZGlmCisKIHN0cnVjdCByZWxvY3MgewotCXVpbnQzMl90CSpvZmZzZXQ7CisJcmVsX29m Zl90CSpvZmZzZXQ7CiAJdW5zaWduZWQgbG9uZwljb3VudDsKIAl1bnNpZ25lZCBsb25nCXNpemU7 CiB9OwpAQCAtNjg0LDcgKzY5MCw3IEBAIHN0YXRpYyB2b2lkIHByaW50X2Fic29sdXRlX3JlbG9j cyh2b2lkKQogCQlwcmludGYoIlxuIik7CiB9CiAKLXN0YXRpYyB2b2lkIGFkZF9yZWxvYyhzdHJ1 Y3QgcmVsb2NzICpyLCB1aW50MzJfdCBvZmZzZXQpCitzdGF0aWMgdm9pZCBhZGRfcmVsb2Moc3Ry dWN0IHJlbG9jcyAqciwgcmVsX29mZl90IG9mZnNldCkKIHsKIAlpZiAoci0+Y291bnQgPT0gci0+ c2l6ZSkgewogCQl1bnNpZ25lZCBsb25nIG5ld3NpemUgPSByLT5zaXplICsgNTAwMDA7CkBAIC0x MDU4LDI2ICsxMDY0LDQ4IEBAIHN0YXRpYyB2b2lkIHNvcnRfcmVsb2NzKHN0cnVjdCByZWxvY3Mg KnIpCiAJcXNvcnQoci0+b2Zmc2V0LCByLT5jb3VudCwgc2l6ZW9mKHItPm9mZnNldFswXSksIGNt cF9yZWxvY3MpOwogfQogCi1zdGF0aWMgaW50IHdyaXRlMzIodWludDMyX3QgdiwgRklMRSAqZikK K3N0YXRpYyBpbnQgd3JpdGUzMihyZWxfb2ZmX3QgcmVsLCBGSUxFICpmKQogewotCXVuc2lnbmVk IGNoYXIgYnVmWzRdOworCXVuc2lnbmVkIGNoYXIgYnVmW3NpemVvZih1aW50MzJfdCldOworCXVp bnQzMl90IHYgPSAodWludDMyX3QpcmVsOwogCiAJcHV0X3VuYWxpZ25lZF9sZTMyKHYsIGJ1Zik7 Ci0JcmV0dXJuIGZ3cml0ZShidWYsIDEsIDQsIGYpID09IDQgPyAwIDogLTE7CisJcmV0dXJuIGZ3 cml0ZShidWYsIDEsIHNpemVvZihidWYpLCBmKSA9PSBzaXplb2YoYnVmKSA/IDAgOiAtMTsKIH0K IAotc3RhdGljIGludCB3cml0ZTMyX2FzX3RleHQodWludDMyX3QgdiwgRklMRSAqZikKK3N0YXRp YyBpbnQgd3JpdGUzMl9hc190ZXh0KHJlbF9vZmZfdCByZWwsIEZJTEUgKmYpCiB7CisJdWludDMy X3QgdiA9ICh1aW50MzJfdClyZWw7CiAJcmV0dXJuIGZwcmludGYoZiwgIlx0LmxvbmcgMHglMDgi UFJJeDMyIlxuIiwgdikgPiAwID8gMCA6IC0xOwogfQogCi1zdGF0aWMgdm9pZCBlbWl0X3JlbG9j cyhpbnQgYXNfdGV4dCwgaW50IHVzZV9yZWFsX21vZGUpCitzdGF0aWMgaW50IHdyaXRlNjQocmVs X29mZl90IHJlbCwgRklMRSAqZikKK3sKKwl1bnNpZ25lZCBjaGFyIGJ1ZltzaXplb2YodWludDY0 X3QpXTsKKwl1aW50NjRfdCB2ID0gKHVpbnQ2NF90KXJlbDsKKworCXB1dF91bmFsaWduZWRfbGU2 NCh2LCBidWYpOworCXJldHVybiBmd3JpdGUoYnVmLCAxLCBzaXplb2YoYnVmKSwgZikgPT0gc2l6 ZW9mKGJ1ZikgPyAwIDogLTE7Cit9CisKK3N0YXRpYyBpbnQgd3JpdGU2NF9hc190ZXh0KHJlbF9v ZmZfdCByZWwsIEZJTEUgKmYpCit7CisJdWludDY0X3QgdiA9ICh1aW50NjRfdClyZWw7CisJcmV0 dXJuIGZwcmludGYoZiwgIlx0LnF1YWQgMHglMDE2IlBSSXg2NCJcbiIsIHYpID4gMCA/IDAgOiAt MTsKK30KKworc3RhdGljIHZvaWQgZW1pdF9yZWxvY3MoaW50IGFzX3RleHQsIGludCB1c2VfcmVh bF9tb2RlLCBpbnQgdXNlX2xhcmdlX3JlbG9jKQogewogCWludCBpOwotCWludCAoKndyaXRlX3Jl bG9jKSh1aW50MzJfdCwgRklMRSAqKSA9IHdyaXRlMzI7CisJaW50ICgqd3JpdGVfcmVsb2MpKHJl bF9vZmZfdCwgRklMRSAqKTsKIAlpbnQgKCpkb19yZWxvYykoc3RydWN0IHNlY3Rpb24gKnNlYywg RWxmX1JlbCAqcmVsLCBFbGZfU3ltICpzeW0sCiAJCQljb25zdCBjaGFyICpzeW1uYW1lKTsKIAor CWlmICh1c2VfbGFyZ2VfcmVsb2MpCisJCXdyaXRlX3JlbG9jID0gd3JpdGU2NDsKKwllbHNlCisJ CXdyaXRlX3JlbG9jID0gd3JpdGUzMjsKKwogI2lmIEVMRl9CSVRTID09IDY0CiAJaWYgKCF1c2Vf cmVhbF9tb2RlKQogCQlkb19yZWxvYyA9IGRvX3JlbG9jNjQ7CkBAIC0xMDg4LDYgKzExMTYsOSBA QCBzdGF0aWMgdm9pZCBlbWl0X3JlbG9jcyhpbnQgYXNfdGV4dCwgaW50IHVzZV9yZWFsX21vZGUp CiAJCWRvX3JlbG9jID0gZG9fcmVsb2MzMjsKIAllbHNlCiAJCWRvX3JlbG9jID0gZG9fcmVsb2Nf cmVhbDsKKworCS8qIExhcmdlIHJlbG9jYXRpb25zIG9ubHkgZm9yIDY0LWJpdCAqLworCXVzZV9s YXJnZV9yZWxvYyA9IDA7CiAjZW5kaWYKIAogCS8qIENvbGxlY3QgdXAgdGhlIHJlbG9jYXRpb25z ICovCkBAIC0xMTExLDggKzExNDIsMTMgQEAgc3RhdGljIHZvaWQgZW1pdF9yZWxvY3MoaW50IGFz X3RleHQsIGludCB1c2VfcmVhbF9tb2RlKQogCQkgKiBnYXMgd2lsbCBsaWtlLgogCQkgKi8KIAkJ cHJpbnRmKCIuc2VjdGlvbiBcIi5kYXRhLnJlbG9jXCIsXCJhXCJcbiIpOwotCQlwcmludGYoIi5i YWxpZ24gNFxuIik7Ci0JCXdyaXRlX3JlbG9jID0gd3JpdGUzMl9hc190ZXh0OworCQlpZiAodXNl X2xhcmdlX3JlbG9jKSB7CisJCQlwcmludGYoIi5iYWxpZ24gOFxuIik7CisJCQl3cml0ZV9yZWxv YyA9IHdyaXRlNjRfYXNfdGV4dDsKKwkJfSBlbHNlIHsKKwkJCXByaW50ZigiLmJhbGlnbiA0XG4i KTsKKwkJCXdyaXRlX3JlbG9jID0gd3JpdGUzMl9hc190ZXh0OworCQl9CiAJfQogCiAJaWYgKHVz ZV9yZWFsX21vZGUpIHsKQEAgLTExODAsNyArMTIxNiw3IEBAIHN0YXRpYyB2b2lkIHByaW50X3Jl bG9jX2luZm8odm9pZCkKIAogdm9pZCBwcm9jZXNzKEZJTEUgKmZwLCBpbnQgdXNlX3JlYWxfbW9k ZSwgaW50IGFzX3RleHQsCiAJICAgICBpbnQgc2hvd19hYnNvbHV0ZV9zeW1zLCBpbnQgc2hvd19h YnNvbHV0ZV9yZWxvY3MsCi0JICAgICBpbnQgc2hvd19yZWxvY19pbmZvKQorCSAgICAgaW50IHNo b3dfcmVsb2NfaW5mbywgaW50IHVzZV9sYXJnZV9yZWxvYykKIHsKIAlyZWdleF9pbml0KHVzZV9y ZWFsX21vZGUpOwogCXJlYWRfZWhkcihmcCk7CkBAIC0xMjAzLDUgKzEyMzksNSBAQCB2b2lkIHBy b2Nlc3MoRklMRSAqZnAsIGludCB1c2VfcmVhbF9tb2RlLCBpbnQgYXNfdGV4dCwKIAkJcHJpbnRf cmVsb2NfaW5mbygpOwogCQlyZXR1cm47CiAJfQotCWVtaXRfcmVsb2NzKGFzX3RleHQsIHVzZV9y ZWFsX21vZGUpOworCWVtaXRfcmVsb2NzKGFzX3RleHQsIHVzZV9yZWFsX21vZGUsIHVzZV9sYXJn ZV9yZWxvYyk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni90b29scy9yZWxvY3MuaCBiL2FyY2gv eDg2L3Rvb2xzL3JlbG9jcy5oCmluZGV4IDFkMjNiZjk1M2E0YS4uY2I3NzFjYzQ0MTJkIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni90b29scy9yZWxvY3MuaAorKysgYi9hcmNoL3g4Ni90b29scy9yZWxv Y3MuaApAQCAtMzAsOCArMzAsOCBAQCBlbnVtIHN5bXR5cGUgewogCiB2b2lkIHByb2Nlc3NfMzIo RklMRSAqZnAsIGludCB1c2VfcmVhbF9tb2RlLCBpbnQgYXNfdGV4dCwKIAkJaW50IHNob3dfYWJz b2x1dGVfc3ltcywgaW50IHNob3dfYWJzb2x1dGVfcmVsb2NzLAotCQlpbnQgc2hvd19yZWxvY19p bmZvKTsKKwkJaW50IHNob3dfcmVsb2NfaW5mbywgaW50IHVzZV9sYXJnZV9yZWxvYyk7CiB2b2lk IHByb2Nlc3NfNjQoRklMRSAqZnAsIGludCB1c2VfcmVhbF9tb2RlLCBpbnQgYXNfdGV4dCwKIAkJ aW50IHNob3dfYWJzb2x1dGVfc3ltcywgaW50IHNob3dfYWJzb2x1dGVfcmVsb2NzLAotCQlpbnQg c2hvd19yZWxvY19pbmZvKTsKKwkJaW50IHNob3dfcmVsb2NfaW5mbywgaW50IHVzZV9sYXJnZV9y ZWxvYyk7CiAjZW5kaWYgLyogUkVMT0NTX0ggKi8KZGlmZiAtLWdpdCBhL2FyY2gveDg2L3Rvb2xz L3JlbG9jc19jb21tb24uYyBiL2FyY2gveDg2L3Rvb2xzL3JlbG9jc19jb21tb24uYwppbmRleCBh Y2FiNjM2YmNiMzQuLjljZjEzOTFhZjUwYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvdG9vbHMvcmVs b2NzX2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L3Rvb2xzL3JlbG9jc19jb21tb24uYwpAQCAtMTEs MTQgKzExLDE0IEBAIHZvaWQgZGllKGNoYXIgKmZtdCwgLi4uKQogCiBzdGF0aWMgdm9pZCB1c2Fn ZSh2b2lkKQogewotCWRpZSgicmVsb2NzIFstLWFicy1zeW1zfC0tYWJzLXJlbG9jc3wtLXJlbG9j LWluZm98LS10ZXh0fC0tcmVhbG1vZGVdIiBcCi0JICAgICIgdm1saW51eFxuIik7CisJZGllKCJy ZWxvY3MgWy0tYWJzLXN5bXN8LS1hYnMtcmVsb2NzfC0tcmVsb2MtaW5mb3wtLXRleHR8LS1yZWFs bW9kZXwiIFwKKwkgICAgIi0tbGFyZ2UtcmVsb2NdICB2bWxpbnV4XG4iKTsKIH0KIAogaW50IG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCWludCBzaG93X2Fic29sdXRlX3N5bXMsIHNo b3dfYWJzb2x1dGVfcmVsb2NzLCBzaG93X3JlbG9jX2luZm87Ci0JaW50IGFzX3RleHQsIHVzZV9y ZWFsX21vZGU7CisJaW50IGFzX3RleHQsIHVzZV9yZWFsX21vZGUsIHVzZV9sYXJnZV9yZWxvYzsK IAljb25zdCBjaGFyICpmbmFtZTsKIAlGSUxFICpmcDsKIAlpbnQgaTsKQEAgLTI5LDYgKzI5LDcg QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCXNob3dfcmVsb2NfaW5mbyA9IDA7 CiAJYXNfdGV4dCA9IDA7CiAJdXNlX3JlYWxfbW9kZSA9IDA7CisJdXNlX2xhcmdlX3JlbG9jID0g MDsKIAlmbmFtZSA9IE5VTEw7CiAJZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykgewogCQljaGFy ICphcmcgPSBhcmd2W2ldOwpAQCAtNTMsNiArNTQsMTAgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogCQkJCXVzZV9yZWFsX21vZGUgPSAxOwogCQkJCWNvbnRpbnVlOwogCQkJfQor CQkJaWYgKHN0cmNtcChhcmcsICItLWxhcmdlLXJlbG9jIikgPT0gMCkgeworCQkJCXVzZV9sYXJn ZV9yZWxvYyA9IDE7CisJCQkJY29udGludWU7CisJCQl9CiAJCX0KIAkJZWxzZSBpZiAoIWZuYW1l KSB7CiAJCQlmbmFtZSA9IGFyZzsKQEAgLTc0LDExICs3OSwxMSBAQCBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqKmFyZ3YpCiAJaWYgKGVfaWRlbnRbRUlfQ0xBU1NdID09IEVMRkNMQVNTNjQpCiAJ CXByb2Nlc3NfNjQoZnAsIHVzZV9yZWFsX21vZGUsIGFzX3RleHQsCiAJCQkgICBzaG93X2Fic29s dXRlX3N5bXMsIHNob3dfYWJzb2x1dGVfcmVsb2NzLAotCQkJICAgc2hvd19yZWxvY19pbmZvKTsK KwkJCSAgIHNob3dfcmVsb2NfaW5mbywgdXNlX2xhcmdlX3JlbG9jKTsKIAllbHNlCiAJCXByb2Nl c3NfMzIoZnAsIHVzZV9yZWFsX21vZGUsIGFzX3RleHQsCiAJCQkgICBzaG93X2Fic29sdXRlX3N5 bXMsIHNob3dfYWJzb2x1dGVfcmVsb2NzLAotCQkJICAgc2hvd19yZWxvY19pbmZvKTsKKwkJCSAg IHNob3dfcmVsb2NfaW5mbywgdXNlX2xhcmdlX3JlbG9jKTsKIAlmY2xvc2UoZnApOwogCXJldHVy biAwOwogfQotLSAKMi4xNS4wLnJjMC4yNzEuZzM2YjY2OWVkY2MtZ29vZwoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=