From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Garnier Subject: [PATCH v3 22/27] x86/modules: Add option to start module section after kernel Date: Wed, 23 May 2018 12:54:16 -0700 Message-ID: <20180523195421.180248-23-thgarnie@google.com> References: <20180523195421.180248-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 , Greg Kroah-Hartman , Thomas Garnier , Philippe Ombredanne , Kate Stewart , Arnaldo Carvalho de Melo , Yonghong Song , Andrey Ryabinin , Kees Cook , Tom Lendacky , "Kirill A . Shutemov" , Andy Lutomirski , Dominik Brodowski , Borislav Petkov , Borislav Petkov , "Rafael J . Wysocki" , Len Return-path: In-Reply-To: <20180523195421.180248-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" List-Id: linux-crypto.vger.kernel.org QWRkIGFuIG9wdGlvbiBzbyB0aGUgbW9kdWxlIHNlY3Rpb24gaXMganVzdCBhZnRlciB0aGUgbWFw cGVkIGtlcm5lbC4gSXQKd2lsbCBlbnN1cmUgcG9zaXRpb24gaW5kZXBlbmRlbnQgbW9kdWxlcyBh cmUgYWx3YXlzIGF0IHRoZSByaWdodApkaXN0YW5jZSBmcm9tIHRoZSBrZXJuZWwgYW5kIGRvIG5v dCByZXF1aXJlIG1jbW9kdWxlPWxhcmdlLiBJdCBhbHNvCm9wdGltaXplIHRoZSBhdmFpbGFibGUg c2l6ZSBmb3IgbW9kdWxlcyBieSBnZXR0aW5nIHJpZCBvZiB0aGUgZW1wdHkKc3BhY2Ugb24ga2Vy bmVsIHJhbmRvbWl6YXRpb24gcmFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2FybmllciA8 dGhnYXJuaWVAZ29vZ2xlLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0 ICAgICAgICAgfCAzICsrKwogYXJjaC94ODYvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg IHwgNCArKysrCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmggfCA2ICsr KysrKwogYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jICAgICAgICAgICAgICAgIHwgNSArKysrLQog YXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMgICAgICAgICAgIHwgMyArKy0KIDUgZmlsZXMg Y2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0IGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0 L21tLnR4dAppbmRleCA2MDBiYzJhZmEyN2QuLmUzODEwYTFkYjc0YiAxMDA2NDQKLS0tIGEvRG9j dW1lbnRhdGlvbi94ODYveDg2XzY0L21tLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZf NjQvbW0udHh0CkBAIC03OSwzICs3OSw2IEBAIFRoZWlyIG9yZGVyIGlzIHByZXNlcnZlZCBidXQg dGhlaXIgYmFzZSB3aWxsIGJlIG9mZnNldCBlYXJseSBhdCBib290IHRpbWUuCiBCZSB2ZXJ5IGNh cmVmdWwgdnMuIEtBU0xSIHdoZW4gY2hhbmdpbmcgYW55dGhpbmcgaGVyZS4gVGhlIEtBU0xSIGFk ZHJlc3MKIHJhbmdlIG11c3Qgbm90IG92ZXJsYXAgd2l0aCBhbnl0aGluZyBleGNlcHQgdGhlIEtB U0FOIHNoYWRvdyBhcmVhLCB3aGljaCBpcwogY29ycmVjdCBhcyBLQVNBTiBkaXNhYmxlcyBLQVNM Ui4KKworSWYgQ09ORklHX0RZTkFNSUNfTU9EVUxFX0JBU0UgaXMgZW5hYmxlZCwgdGhlIG1vZHVs ZSBzZWN0aW9uIGZvbGxvd3MgdGhlIGVuZCBvZgordGhlIG1hcHBlZCBrZXJuZWwuCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9LY29uZmlnIGIvYXJjaC94ODYvS2NvbmZpZwppbmRleCAwZmMyZTk4MTQ1 OGQuLjI4ZWIyYjM3NTdiZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZworKysgYi9hcmNo L3g4Ni9LY29uZmlnCkBAIC0yMTk5LDYgKzIxOTksMTAgQEAgY29uZmlnIFJBTkRPTUlaRV9NRU1P UllfUEhZU0lDQUxfUEFERElORwogCiAJICAgSWYgdW5zdXJlLCBsZWF2ZSBhdCB0aGUgZGVmYXVs dCB2YWx1ZS4KIAorIyBNb2R1bGUgc2VjdGlvbiBzdGFydHMganVzdCBhZnRlciB0aGUgZW5kIG9m IHRoZSBrZXJuZWwgbW9kdWxlCitjb25maWcgRFlOQU1JQ19NT0RVTEVfQkFTRQorCWJvb2wKKwog Y29uZmlnIFg4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKIAlib29sICJTdGFjayBjb29raWUgdXNp bmcgYSBnbG9iYWwgdmFyaWFibGUiCiAJZGVwZW5kcyBvbiBDQ19TVEFDS1BST1RFQ1RPUl9BVVRP CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmgKaW5kZXggYWRiNDc1NTJlNmJi Li4zYWIyNWI5MDg4NzkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVf NjRfdHlwZXMuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmgK QEAgLTcsNiArNyw3IEBACiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2thc2xyLmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+ CiAKIC8qCiAgKiBUaGVzZSBhcmUgdXNlZCB0byBtYWtlIHVzZSBvZiBDIHR5cGUtY2hlY2tpbmcu LgpAQCAtMTI2LDcgKzEyNywxMiBAQCBleHRlcm4gdW5zaWduZWQgaW50IHB0cnNfcGVyX3A0ZDsK IAogI2RlZmluZSBWTUFMTE9DX0VORAkJKFZNQUxMT0NfU1RBUlQgKyAoVk1BTExPQ19TSVpFX1RC IDw8IDQwKSAtIDEpCiAKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19NT0RVTEVfQkFTRQorI2RlZmlu ZSBNT0RVTEVTX1ZBRERSCQlBTElHTigoKHVuc2lnbmVkIGxvbmcpX2VuZCArIFBBR0VfU0laRSks IFBNRF9TSVpFKQorI2Vsc2UKICNkZWZpbmUgTU9EVUxFU19WQUREUgkJKF9fU1RBUlRfS0VSTkVM X21hcCArIEtFUk5FTF9JTUFHRV9TSVpFKQorI2VuZGlmCisKIC8qIFRoZSBtb2R1bGUgc2VjdGlv bnMgZW5kcyB3aXRoIHRoZSBzdGFydCBvZiB0aGUgZml4bWFwICovCiAjZGVmaW5lIE1PRFVMRVNf RU5ECQlfQUMoMHhmZmZmZmZmZmZmMDAwMDAwLCBVTCkKICNkZWZpbmUgTU9EVUxFU19MRU4JCShN T0RVTEVTX0VORCAtIE1PRFVMRVNfVkFERFIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv aGVhZDY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMKaW5kZXggZmE2NjFmYjk3MTI3Li4z YTFjZTgyMmUxYzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9oZWFkNjQuYworKysgYi9h cmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMKQEAgLTM5NCwxMiArMzk0LDE1IEBAIGFzbWxpbmthZ2Ug X192aXNpYmxlIHZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9rZXJuZWwoY2hhciAqIHJlYWxfbW9k ZV9kYXRhKQogCSAqIEJ1aWxkLXRpbWUgc2FuaXR5IGNoZWNrcyBvbiB0aGUga2VybmVsIGltYWdl IGFuZCBtb2R1bGUKIAkgKiBhcmVhIG1hcHBpbmdzLiAodGhlc2UgYXJlIHB1cmVseSBidWlsZC10 aW1lIGFuZCBwcm9kdWNlIG5vIGNvZGUpCiAJICovCisjaWZuZGVmIENPTkZJR19EWU5BTUlDX01P RFVMRV9CQVNFCiAJQlVJTERfQlVHX09OKE1PRFVMRVNfVkFERFIgPCBfX1NUQVJUX0tFUk5FTF9t YXApOwogCUJVSUxEX0JVR19PTihNT0RVTEVTX1ZBRERSIC0gX19TVEFSVF9LRVJORUxfbWFwIDwg S0VSTkVMX0lNQUdFX1NJWkUpOwotCUJVSUxEX0JVR19PTihNT0RVTEVTX0xFTiArIEtFUk5FTF9J TUFHRV9TSVpFID4gMipQVURfU0laRSk7CisJQlVJTERfQlVHX09OKCFJU19FTkFCTEVEKENPTkZJ R19SQU5ET01JWkVfQkFTRV9MQVJHRSkgJiYKKwkJICAgICBNT0RVTEVTX0xFTiArIEtFUk5FTF9J TUFHRV9TSVpFID4gMipQVURfU0laRSk7CiAJQlVJTERfQlVHX09OKChfX1NUQVJUX0tFUk5FTF9t YXAgJiB+UE1EX01BU0spICE9IDApOwogCUJVSUxEX0JVR19PTigoTU9EVUxFU19WQUREUiAmIH5Q TURfTUFTSykgIT0gMCk7CiAJQlVJTERfQlVHX09OKCEoTU9EVUxFU19WQUREUiA+IF9fU1RBUlRf S0VSTkVMKSk7CisjZW5kaWYKIAlNQVlCRV9CVUlMRF9CVUdfT04oISgoKE1PRFVMRVNfRU5EIC0g MSkgJiBQR0RJUl9NQVNLKSA9PQogCQkJCShfX1NUQVJUX0tFUk5FTCAmIFBHRElSX01BU0spKSk7 CiAJQlVJTERfQlVHX09OKF9fZml4X3RvX3ZpcnQoX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSA8 PSBNT0RVTEVTX0VORCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMu YyBiL2FyY2gveDg2L21tL2R1bXBfcGFnZXRhYmxlcy5jCmluZGV4IGNjN2ZmNTk1NzE5NC4uZGNh NDA5OGNlNGZkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYworKysg Yi9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYwpAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRp YyBzdHJ1Y3QgYWRkcl9tYXJrZXIgYWRkcmVzc19tYXJrZXJzW10gPSB7CiAJW0VGSV9FTkRfTlJd CQk9IHsgRUZJX1ZBX0VORCwJCSJFRkkgUnVudGltZSBTZXJ2aWNlcyIgfSwKICNlbmRpZgogCVtI SUdIX0tFUk5FTF9OUl0JPSB7IF9fU1RBUlRfS0VSTkVMX21hcCwJIkhpZ2ggS2VybmVsIE1hcHBp bmciIH0sCi0JW01PRFVMRVNfVkFERFJfTlJdCT0geyBNT0RVTEVTX1ZBRERSLAkiTW9kdWxlcyIg fSwKKwlbTU9EVUxFU19WQUREUl9OUl0JPSB7IDAvKk1PRFVMRVNfVkFERFIqLywJIk1vZHVsZXMi IH0sCiAJW01PRFVMRVNfRU5EX05SXQk9IHsgTU9EVUxFU19FTkQsCSJFbmQgTW9kdWxlcyIgfSwK IAlbRklYQUREUl9TVEFSVF9OUl0JPSB7IEZJWEFERFJfU1RBUlQsCSJGaXhtYXAgQXJlYSIgfSwK IAlbRU5EX09GX1NQQUNFX05SXQk9IHsgLTEsCQkJTlVMTCB9CkBAIC02MDAsNiArNjAwLDcgQEAg c3RhdGljIGludCBfX2luaXQgcHRfZHVtcF9pbml0KHZvaWQpCiAJYWRkcmVzc19tYXJrZXJzW0tB U0FOX1NIQURPV19TVEFSVF9OUl0uc3RhcnRfYWRkcmVzcyA9IEtBU0FOX1NIQURPV19TVEFSVDsK IAlhZGRyZXNzX21hcmtlcnNbS0FTQU5fU0hBRE9XX0VORF9OUl0uc3RhcnRfYWRkcmVzcyA9IEtB U0FOX1NIQURPV19FTkQ7CiAjZW5kaWYKKwlhZGRyZXNzX21hcmtlcnNbTU9EVUxFU19WQUREUl9O Ul0uc3RhcnRfYWRkcmVzcyA9IE1PRFVMRVNfVkFERFI7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdf WDg2XzMyCiAJYWRkcmVzc19tYXJrZXJzW1ZNQUxMT0NfU1RBUlRfTlJdLnN0YXJ0X2FkZHJlc3Mg PSBWTUFMTE9DX1NUQVJUOwotLSAKMi4xNy4wLjQ0MS5nYjQ2ZmU2MGUxZC1nb29nCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Garnier Subject: [PATCH v3 22/27] x86/modules: Add option to start module section after kernel Date: Wed, 23 May 2018 12:54:16 -0700 Message-ID: <20180523195421.180248-23-thgarnie@google.com> References: <20180523195421.180248-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180523195421.180248-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Greg Kroah-Hartman , Thomas Garnier , Philippe Ombredanne , Kate Stewart , Arnaldo Carvalho de Melo , Yonghong Song , Andrey Ryabinin , Kees Cook , Tom Lendacky , "Kirill A . Shutemov" , Andy Lutomirski , Dominik Brodowski , Borislav Petkov , Borislav Petkov , "Rafael J . Wysocki" Len 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 List-Id: linux-sparse@vger.kernel.org QWRkIGFuIG9wdGlvbiBzbyB0aGUgbW9kdWxlIHNlY3Rpb24gaXMganVzdCBhZnRlciB0aGUgbWFw cGVkIGtlcm5lbC4gSXQKd2lsbCBlbnN1cmUgcG9zaXRpb24gaW5kZXBlbmRlbnQgbW9kdWxlcyBh cmUgYWx3YXlzIGF0IHRoZSByaWdodApkaXN0YW5jZSBmcm9tIHRoZSBrZXJuZWwgYW5kIGRvIG5v dCByZXF1aXJlIG1jbW9kdWxlPWxhcmdlLiBJdCBhbHNvCm9wdGltaXplIHRoZSBhdmFpbGFibGUg c2l6ZSBmb3IgbW9kdWxlcyBieSBnZXR0aW5nIHJpZCBvZiB0aGUgZW1wdHkKc3BhY2Ugb24ga2Vy bmVsIHJhbmRvbWl6YXRpb24gcmFuZ2UuCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgR2FybmllciA8 dGhnYXJuaWVAZ29vZ2xlLmNvbT4KLS0tCiBEb2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0 ICAgICAgICAgfCAzICsrKwogYXJjaC94ODYvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg IHwgNCArKysrCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmggfCA2ICsr KysrKwogYXJjaC94ODYva2VybmVsL2hlYWQ2NC5jICAgICAgICAgICAgICAgIHwgNSArKysrLQog YXJjaC94ODYvbW0vZHVtcF9wYWdldGFibGVzLmMgICAgICAgICAgIHwgMyArKy0KIDUgZmlsZXMg Y2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9E b2N1bWVudGF0aW9uL3g4Ni94ODZfNjQvbW0udHh0IGIvRG9jdW1lbnRhdGlvbi94ODYveDg2XzY0 L21tLnR4dAppbmRleCA2MDBiYzJhZmEyN2QuLmUzODEwYTFkYjc0YiAxMDA2NDQKLS0tIGEvRG9j dW1lbnRhdGlvbi94ODYveDg2XzY0L21tLnR4dAorKysgYi9Eb2N1bWVudGF0aW9uL3g4Ni94ODZf NjQvbW0udHh0CkBAIC03OSwzICs3OSw2IEBAIFRoZWlyIG9yZGVyIGlzIHByZXNlcnZlZCBidXQg dGhlaXIgYmFzZSB3aWxsIGJlIG9mZnNldCBlYXJseSBhdCBib290IHRpbWUuCiBCZSB2ZXJ5IGNh cmVmdWwgdnMuIEtBU0xSIHdoZW4gY2hhbmdpbmcgYW55dGhpbmcgaGVyZS4gVGhlIEtBU0xSIGFk ZHJlc3MKIHJhbmdlIG11c3Qgbm90IG92ZXJsYXAgd2l0aCBhbnl0aGluZyBleGNlcHQgdGhlIEtB U0FOIHNoYWRvdyBhcmVhLCB3aGljaCBpcwogY29ycmVjdCBhcyBLQVNBTiBkaXNhYmxlcyBLQVNM Ui4KKworSWYgQ09ORklHX0RZTkFNSUNfTU9EVUxFX0JBU0UgaXMgZW5hYmxlZCwgdGhlIG1vZHVs ZSBzZWN0aW9uIGZvbGxvd3MgdGhlIGVuZCBvZgordGhlIG1hcHBlZCBrZXJuZWwuCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9LY29uZmlnIGIvYXJjaC94ODYvS2NvbmZpZwppbmRleCAwZmMyZTk4MTQ1 OGQuLjI4ZWIyYjM3NTdiZiAxMDA2NDQKLS0tIGEvYXJjaC94ODYvS2NvbmZpZworKysgYi9hcmNo L3g4Ni9LY29uZmlnCkBAIC0yMTk5LDYgKzIxOTksMTAgQEAgY29uZmlnIFJBTkRPTUlaRV9NRU1P UllfUEhZU0lDQUxfUEFERElORwogCiAJICAgSWYgdW5zdXJlLCBsZWF2ZSBhdCB0aGUgZGVmYXVs dCB2YWx1ZS4KIAorIyBNb2R1bGUgc2VjdGlvbiBzdGFydHMganVzdCBhZnRlciB0aGUgZW5kIG9m IHRoZSBrZXJuZWwgbW9kdWxlCitjb25maWcgRFlOQU1JQ19NT0RVTEVfQkFTRQorCWJvb2wKKwog Y29uZmlnIFg4Nl9HTE9CQUxfU1RBQ0tQUk9URUNUT1IKIAlib29sICJTdGFjayBjb29raWUgdXNp bmcgYSBnbG9iYWwgdmFyaWFibGUiCiAJZGVwZW5kcyBvbiBDQ19TVEFDS1BST1RFQ1RPUl9BVVRP CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmgKaW5kZXggYWRiNDc1NTJlNmJi Li4zYWIyNWI5MDg4NzkgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BndGFibGVf NjRfdHlwZXMuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wZ3RhYmxlXzY0X3R5cGVzLmgK QEAgLTcsNiArNyw3IEBACiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogI2luY2x1ZGUgPGxpbnV4L3R5 cGVzLmg+CiAjaW5jbHVkZSA8YXNtL2thc2xyLmg+CisjaW5jbHVkZSA8YXNtL3NlY3Rpb25zLmg+ CiAKIC8qCiAgKiBUaGVzZSBhcmUgdXNlZCB0byBtYWtlIHVzZSBvZiBDIHR5cGUtY2hlY2tpbmcu LgpAQCAtMTI2LDcgKzEyNywxMiBAQCBleHRlcm4gdW5zaWduZWQgaW50IHB0cnNfcGVyX3A0ZDsK IAogI2RlZmluZSBWTUFMTE9DX0VORAkJKFZNQUxMT0NfU1RBUlQgKyAoVk1BTExPQ19TSVpFX1RC IDw8IDQwKSAtIDEpCiAKKyNpZmRlZiBDT05GSUdfRFlOQU1JQ19NT0RVTEVfQkFTRQorI2RlZmlu ZSBNT0RVTEVTX1ZBRERSCQlBTElHTigoKHVuc2lnbmVkIGxvbmcpX2VuZCArIFBBR0VfU0laRSks IFBNRF9TSVpFKQorI2Vsc2UKICNkZWZpbmUgTU9EVUxFU19WQUREUgkJKF9fU1RBUlRfS0VSTkVM X21hcCArIEtFUk5FTF9JTUFHRV9TSVpFKQorI2VuZGlmCisKIC8qIFRoZSBtb2R1bGUgc2VjdGlv bnMgZW5kcyB3aXRoIHRoZSBzdGFydCBvZiB0aGUgZml4bWFwICovCiAjZGVmaW5lIE1PRFVMRVNf RU5ECQlfQUMoMHhmZmZmZmZmZmZmMDAwMDAwLCBVTCkKICNkZWZpbmUgTU9EVUxFU19MRU4JCShN T0RVTEVTX0VORCAtIE1PRFVMRVNfVkFERFIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv aGVhZDY0LmMgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMKaW5kZXggZmE2NjFmYjk3MTI3Li4z YTFjZTgyMmUxYzAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9oZWFkNjQuYworKysgYi9h cmNoL3g4Ni9rZXJuZWwvaGVhZDY0LmMKQEAgLTM5NCwxMiArMzk0LDE1IEBAIGFzbWxpbmthZ2Ug X192aXNpYmxlIHZvaWQgX19pbml0IHg4Nl82NF9zdGFydF9rZXJuZWwoY2hhciAqIHJlYWxfbW9k ZV9kYXRhKQogCSAqIEJ1aWxkLXRpbWUgc2FuaXR5IGNoZWNrcyBvbiB0aGUga2VybmVsIGltYWdl IGFuZCBtb2R1bGUKIAkgKiBhcmVhIG1hcHBpbmdzLiAodGhlc2UgYXJlIHB1cmVseSBidWlsZC10 aW1lIGFuZCBwcm9kdWNlIG5vIGNvZGUpCiAJICovCisjaWZuZGVmIENPTkZJR19EWU5BTUlDX01P RFVMRV9CQVNFCiAJQlVJTERfQlVHX09OKE1PRFVMRVNfVkFERFIgPCBfX1NUQVJUX0tFUk5FTF9t YXApOwogCUJVSUxEX0JVR19PTihNT0RVTEVTX1ZBRERSIC0gX19TVEFSVF9LRVJORUxfbWFwIDwg S0VSTkVMX0lNQUdFX1NJWkUpOwotCUJVSUxEX0JVR19PTihNT0RVTEVTX0xFTiArIEtFUk5FTF9J TUFHRV9TSVpFID4gMipQVURfU0laRSk7CisJQlVJTERfQlVHX09OKCFJU19FTkFCTEVEKENPTkZJ R19SQU5ET01JWkVfQkFTRV9MQVJHRSkgJiYKKwkJICAgICBNT0RVTEVTX0xFTiArIEtFUk5FTF9J TUFHRV9TSVpFID4gMipQVURfU0laRSk7CiAJQlVJTERfQlVHX09OKChfX1NUQVJUX0tFUk5FTF9t YXAgJiB+UE1EX01BU0spICE9IDApOwogCUJVSUxEX0JVR19PTigoTU9EVUxFU19WQUREUiAmIH5Q TURfTUFTSykgIT0gMCk7CiAJQlVJTERfQlVHX09OKCEoTU9EVUxFU19WQUREUiA+IF9fU1RBUlRf S0VSTkVMKSk7CisjZW5kaWYKIAlNQVlCRV9CVUlMRF9CVUdfT04oISgoKE1PRFVMRVNfRU5EIC0g MSkgJiBQR0RJUl9NQVNLKSA9PQogCQkJCShfX1NUQVJUX0tFUk5FTCAmIFBHRElSX01BU0spKSk7 CiAJQlVJTERfQlVHX09OKF9fZml4X3RvX3ZpcnQoX19lbmRfb2ZfZml4ZWRfYWRkcmVzc2VzKSA8 PSBNT0RVTEVTX0VORCk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMu YyBiL2FyY2gveDg2L21tL2R1bXBfcGFnZXRhYmxlcy5jCmluZGV4IGNjN2ZmNTk1NzE5NC4uZGNh NDA5OGNlNGZkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYworKysg Yi9hcmNoL3g4Ni9tbS9kdW1wX3BhZ2V0YWJsZXMuYwpAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRp YyBzdHJ1Y3QgYWRkcl9tYXJrZXIgYWRkcmVzc19tYXJrZXJzW10gPSB7CiAJW0VGSV9FTkRfTlJd CQk9IHsgRUZJX1ZBX0VORCwJCSJFRkkgUnVudGltZSBTZXJ2aWNlcyIgfSwKICNlbmRpZgogCVtI SUdIX0tFUk5FTF9OUl0JPSB7IF9fU1RBUlRfS0VSTkVMX21hcCwJIkhpZ2ggS2VybmVsIE1hcHBp bmciIH0sCi0JW01PRFVMRVNfVkFERFJfTlJdCT0geyBNT0RVTEVTX1ZBRERSLAkiTW9kdWxlcyIg fSwKKwlbTU9EVUxFU19WQUREUl9OUl0JPSB7IDAvKk1PRFVMRVNfVkFERFIqLywJIk1vZHVsZXMi IH0sCiAJW01PRFVMRVNfRU5EX05SXQk9IHsgTU9EVUxFU19FTkQsCSJFbmQgTW9kdWxlcyIgfSwK IAlbRklYQUREUl9TVEFSVF9OUl0JPSB7IEZJWEFERFJfU1RBUlQsCSJGaXhtYXAgQXJlYSIgfSwK IAlbRU5EX09GX1NQQUNFX05SXQk9IHsgLTEsCQkJTlVMTCB9CkBAIC02MDAsNiArNjAwLDcgQEAg c3RhdGljIGludCBfX2luaXQgcHRfZHVtcF9pbml0KHZvaWQpCiAJYWRkcmVzc19tYXJrZXJzW0tB U0FOX1NIQURPV19TVEFSVF9OUl0uc3RhcnRfYWRkcmVzcyA9IEtBU0FOX1NIQURPV19TVEFSVDsK IAlhZGRyZXNzX21hcmtlcnNbS0FTQU5fU0hBRE9XX0VORF9OUl0uc3RhcnRfYWRkcmVzcyA9IEtB U0FOX1NIQURPV19FTkQ7CiAjZW5kaWYKKwlhZGRyZXNzX21hcmtlcnNbTU9EVUxFU19WQUREUl9O Ul0uc3RhcnRfYWRkcmVzcyA9IE1PRFVMRVNfVkFERFI7CiAjZW5kaWYKICNpZmRlZiBDT05GSUdf WDg2XzMyCiAJYWRkcmVzc19tYXJrZXJzW1ZNQUxMT0NfU1RBUlRfTlJdLnN0YXJ0X2FkZHJlc3Mg PSBWTUFMTE9DX1NUQVJUOwotLSAKMi4xNy4wLjQ0MS5nYjQ2ZmU2MGUxZC1nb29nCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Garnier Subject: [PATCH v3 22/27] x86/modules: Add option to start module section after kernel Date: Wed, 23 May 2018 12:54:16 -0700 Message-Id: <20180523195421.180248-23-thgarnie@google.com> In-Reply-To: <20180523195421.180248-1-thgarnie@google.com> References: <20180523195421.180248-1-thgarnie@google.com> To: Herbert Xu , "David S . Miller" , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Peter Zijlstra , Josh Poimboeuf , Greg Kroah-Hartman , Thomas Garnier , Philippe Ombredanne , Kate Stewart , Arnaldo Carvalho de Melo , Yonghong Song , Andrey Ryabinin , Kees Cook , Tom Lendacky , "Kirill A . Shutemov" , Andy Lutomirski , Dominik Brodowski , Borislav Petkov , Borislav Petkov , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Juergen Gross , Alok Kataria , Steven Rostedt , Jan Kiszka , Tejun Heo , Christoph Lameter , Dennis Zhou , Boris Ostrovsky , Alexey Dobriyan , Masami Hiramatsu , Cao jin , Francis Deslauriers , "Paul E . McKenney" , Nicolas Pitre , Andrew Morton , Randy Dunlap , "Luis R . Rodriguez" , Arnd Bergmann , Christopher Li , Jason Baron , Mika Westerberg , Lukas Wunner , Dou Liyang , Sergey Senozhatsky , Petr Mladek , Masahiro Yamada , Ingo Molnar , Nicholas Piggin , "H . J . Lu" , Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Joerg Roedel , David Woodhouse , Dave Hansen , Rik van Riel , Jia Zhang , Ricardo Neri , Jonathan Corbet , Jan Beulich , Matthias Kaehlcke , Baoquan He , =?UTF-8?q?Jan=20H=20=2E=20Sch=C3=B6nherr?= , Daniel Micay Cc: x86@kernel.org, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, virtualization@lists.linux-foundation.org, xen-devel@lists.xenproject.org, linux-arch@vger.kernel.org, linux-sparse@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, kernel-hardening@lists.openwall.com List-ID: Add an option so the module section is just after the mapped kernel. It will ensure position independent modules are always at the right distance from the kernel and do not require mcmodule=large. It also optimize the available size for modules by getting rid of the empty space on kernel randomization range. Signed-off-by: Thomas Garnier --- Documentation/x86/x86_64/mm.txt | 3 +++ arch/x86/Kconfig | 4 ++++ arch/x86/include/asm/pgtable_64_types.h | 6 ++++++ arch/x86/kernel/head64.c | 5 ++++- arch/x86/mm/dump_pagetables.c | 3 ++- 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Documentation/x86/x86_64/mm.txt b/Documentation/x86/x86_64/mm.txt index 600bc2afa27d..e3810a1db74b 100644 --- a/Documentation/x86/x86_64/mm.txt +++ b/Documentation/x86/x86_64/mm.txt @@ -79,3 +79,6 @@ Their order is preserved but their base will be offset early at boot time. Be very careful vs. KASLR when changing anything here. The KASLR address range must not overlap with anything except the KASAN shadow area, which is correct as KASAN disables KASLR. + +If CONFIG_DYNAMIC_MODULE_BASE is enabled, the module section follows the end of +the mapped kernel. diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 0fc2e981458d..28eb2b3757bf 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2199,6 +2199,10 @@ config RANDOMIZE_MEMORY_PHYSICAL_PADDING If unsure, leave at the default value. +# Module section starts just after the end of the kernel module +config DYNAMIC_MODULE_BASE + bool + config X86_GLOBAL_STACKPROTECTOR bool "Stack cookie using a global variable" depends on CC_STACKPROTECTOR_AUTO diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h index adb47552e6bb..3ab25b908879 100644 --- a/arch/x86/include/asm/pgtable_64_types.h +++ b/arch/x86/include/asm/pgtable_64_types.h @@ -7,6 +7,7 @@ #ifndef __ASSEMBLY__ #include #include +#include /* * These are used to make use of C type-checking.. @@ -126,7 +127,12 @@ extern unsigned int ptrs_per_p4d; #define VMALLOC_END (VMALLOC_START + (VMALLOC_SIZE_TB << 40) - 1) +#ifdef CONFIG_DYNAMIC_MODULE_BASE +#define MODULES_VADDR ALIGN(((unsigned long)_end + PAGE_SIZE), PMD_SIZE) +#else #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE) +#endif + /* The module sections ends with the start of the fixmap */ #define MODULES_END _AC(0xffffffffff000000, UL) #define MODULES_LEN (MODULES_END - MODULES_VADDR) diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c index fa661fb97127..3a1ce822e1c0 100644 --- a/arch/x86/kernel/head64.c +++ b/arch/x86/kernel/head64.c @@ -394,12 +394,15 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data) * Build-time sanity checks on the kernel image and module * area mappings. (these are purely build-time and produce no code) */ +#ifndef CONFIG_DYNAMIC_MODULE_BASE BUILD_BUG_ON(MODULES_VADDR < __START_KERNEL_map); BUILD_BUG_ON(MODULES_VADDR - __START_KERNEL_map < KERNEL_IMAGE_SIZE); - BUILD_BUG_ON(MODULES_LEN + KERNEL_IMAGE_SIZE > 2*PUD_SIZE); + BUILD_BUG_ON(!IS_ENABLED(CONFIG_RANDOMIZE_BASE_LARGE) && + MODULES_LEN + KERNEL_IMAGE_SIZE > 2*PUD_SIZE); BUILD_BUG_ON((__START_KERNEL_map & ~PMD_MASK) != 0); BUILD_BUG_ON((MODULES_VADDR & ~PMD_MASK) != 0); BUILD_BUG_ON(!(MODULES_VADDR > __START_KERNEL)); +#endif MAYBE_BUILD_BUG_ON(!(((MODULES_END - 1) & PGDIR_MASK) == (__START_KERNEL & PGDIR_MASK))); BUILD_BUG_ON(__fix_to_virt(__end_of_fixed_addresses) <= MODULES_END); diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c index cc7ff5957194..dca4098ce4fd 100644 --- a/arch/x86/mm/dump_pagetables.c +++ b/arch/x86/mm/dump_pagetables.c @@ -105,7 +105,7 @@ static struct addr_marker address_markers[] = { [EFI_END_NR] = { EFI_VA_END, "EFI Runtime Services" }, #endif [HIGH_KERNEL_NR] = { __START_KERNEL_map, "High Kernel Mapping" }, - [MODULES_VADDR_NR] = { MODULES_VADDR, "Modules" }, + [MODULES_VADDR_NR] = { 0/*MODULES_VADDR*/, "Modules" }, [MODULES_END_NR] = { MODULES_END, "End Modules" }, [FIXADDR_START_NR] = { FIXADDR_START, "Fixmap Area" }, [END_OF_SPACE_NR] = { -1, NULL } @@ -600,6 +600,7 @@ static int __init pt_dump_init(void) address_markers[KASAN_SHADOW_START_NR].start_address = KASAN_SHADOW_START; address_markers[KASAN_SHADOW_END_NR].start_address = KASAN_SHADOW_END; #endif + address_markers[MODULES_VADDR_NR].start_address = MODULES_VADDR; #endif #ifdef CONFIG_X86_32 address_markers[VMALLOC_START_NR].start_address = VMALLOC_START; -- 2.17.0.441.gb46fe60e1d-goog