From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752748AbcHNVAG (ORCPT ); Sun, 14 Aug 2016 17:00:06 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:46167 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932247AbcHNUmj (ORCPT ); Sun, 14 Aug 2016 16:42:39 -0400 From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Toshi Kani , Thomas Gleixner , Andrew Morton , Andy Lutomirski , Borislav Petkov , Borislav Petkov , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Juergen Gross , Linus Torvalds , "Luis R. Rodriguez" , Peter Zijlstra , Robert Elliott , Toshi Kani , konrad.wilk@oracle.com, paul.gortmaker@windriver.com, xen-devel@lists.xenproject.org, Ingo Molnar Subject: [PATCH 4.6 24/56] x86/mm/pat: Add pat_disable() interface Date: Sun, 14 Aug 2016 22:37:28 +0200 Message-Id: <20160814202505.917424759@linuxfoundation.org> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20160814202504.908694181@linuxfoundation.org> References: <20160814202504.908694181@linuxfoundation.org> User-Agent: quilt/0.64 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.6-stable review patch. If anyone has any objections, please let me know. ------------------ From: Toshi Kani commit 224bb1e5d67ba0f2872c98002d6a6f991ac6fd4a upstream. In preparation for fixing a regression caused by: 9cd25aac1f44 ("x86/mm/pat: Emulate PAT when it is disabled") ... PAT needs to provide an interface that prevents the OS from initializing the PAT MSR. PAT MSR initialization must be done on all CPUs using the specific sequence of operations defined in the Intel SDM. This requires MTRRs to be enabled since pat_init() is called as part of MTRR init from mtrr_rendezvous_handler(). Make pat_disable() as the interface that prevents the OS from initializing the PAT MSR. MTRR will call this interface when it cannot provide the SDM-defined sequence to initialize PAT. This also assures that pat_disable() called from pat_bsp_init() will set the PAT table properly when CPU does not support PAT. Signed-off-by: Toshi Kani Reviewed-by: Thomas Gleixner Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Juergen Gross Cc: Linus Torvalds Cc: Luis R. Rodriguez Cc: Peter Zijlstra Cc: Robert Elliott Cc: Toshi Kani Cc: konrad.wilk@oracle.com Cc: paul.gortmaker@windriver.com Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/1458769323-24491-3-git-send-email-toshi.kani@hpe.com Signed-off-by: Ingo Molnar Signed-off-by: Greg Kroah-Hartman --- arch/x86/include/asm/pat.h | 1 + arch/x86/mm/pat.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) --- a/arch/x86/include/asm/pat.h +++ b/arch/x86/include/asm/pat.h @@ -5,6 +5,7 @@ #include bool pat_enabled(void); +void pat_disable(const char *reason); extern void pat_init(void); void __init_cache_modes(u64); --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c @@ -40,11 +40,22 @@ static bool boot_cpu_done; static int __read_mostly __pat_enabled = IS_ENABLED(CONFIG_X86_PAT); +static void init_cache_modes(void); -static inline void pat_disable(const char *reason) +void pat_disable(const char *reason) { + if (!__pat_enabled) + return; + + if (boot_cpu_done) { + WARN_ONCE(1, "x86/PAT: PAT cannot be disabled after initialization\n"); + return; + } + __pat_enabled = 0; pr_info("x86/PAT: %s\n", reason); + + init_cache_modes(); } static int __init nopat(char *str) From mboxrd@z Thu Jan 1 00:00:00 1970 From: Greg Kroah-Hartman Subject: [PATCH 4.6 24/56] x86/mm/pat: Add pat_disable() interface Date: Sun, 14 Aug 2016 22:37:28 +0200 Message-ID: <20160814202505.917424759@linuxfoundation.org> References: <20160814202504.908694181@linuxfoundation.org> 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 1bZ2Ev-00087w-5g for xen-devel@lists.xenproject.org; Sun, 14 Aug 2016 20:42:37 +0000 In-Reply-To: <20160814202504.908694181@linuxfoundation.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: linux-kernel@vger.kernel.org Cc: Juergen Gross , Denys Vlasenko , xen-devel@lists.xenproject.org, Toshi Kani , Peter Zijlstra , Greg Kroah-Hartman , "Luis R. Rodriguez" , "H. Peter Anvin" , stable@vger.kernel.org, Andy Lutomirski , paul.gortmaker@windriver.com, Ingo Molnar , Borislav Petkov , Brian Gerst , Toshi Kani , Andrew Morton , Borislav Petkov , Linus Torvalds , Thomas Gleixner , Robert Elliott List-Id: xen-devel@lists.xenproject.org NC42LXN0YWJsZSByZXZpZXcgcGF0Y2guICBJZiBhbnlvbmUgaGFzIGFueSBvYmplY3Rpb25zLCBw bGVhc2UgbGV0IG1lIGtub3cuCgotLS0tLS0tLS0tLS0tLS0tLS0KCkZyb206IFRvc2hpIEthbmkg PHRvc2hpLmthbmlAaHBlLmNvbT4KCmNvbW1pdCAyMjRiYjFlNWQ2N2JhMGYyODcyYzk4MDAyZDZh NmY5OTFhYzZmZDRhIHVwc3RyZWFtLgoKSW4gcHJlcGFyYXRpb24gZm9yIGZpeGluZyBhIHJlZ3Jl c3Npb24gY2F1c2VkIGJ5OgoKICA5Y2QyNWFhYzFmNDQgKCJ4ODYvbW0vcGF0OiBFbXVsYXRlIFBB VCB3aGVuIGl0IGlzIGRpc2FibGVkIikKCi4uLiBQQVQgbmVlZHMgdG8gcHJvdmlkZSBhbiBpbnRl cmZhY2UgdGhhdCBwcmV2ZW50cyB0aGUgT1MgZnJvbQppbml0aWFsaXppbmcgdGhlIFBBVCBNU1Iu CgpQQVQgTVNSIGluaXRpYWxpemF0aW9uIG11c3QgYmUgZG9uZSBvbiBhbGwgQ1BVcyB1c2luZyB0 aGUgc3BlY2lmaWMKc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBkZWZpbmVkIGluIHRoZSBJbnRlbCBT RE0uICBUaGlzIHJlcXVpcmVzIE1UUlJzCnRvIGJlIGVuYWJsZWQgc2luY2UgcGF0X2luaXQoKSBp cyBjYWxsZWQgYXMgcGFydCBvZiBNVFJSIGluaXQKZnJvbSBtdHJyX3JlbmRlenZvdXNfaGFuZGxl cigpLgoKTWFrZSBwYXRfZGlzYWJsZSgpIGFzIHRoZSBpbnRlcmZhY2UgdGhhdCBwcmV2ZW50cyB0 aGUgT1MgZnJvbQppbml0aWFsaXppbmcgdGhlIFBBVCBNU1IuICBNVFJSIHdpbGwgY2FsbCB0aGlz IGludGVyZmFjZSB3aGVuIGl0CmNhbm5vdCBwcm92aWRlIHRoZSBTRE0tZGVmaW5lZCBzZXF1ZW5j ZSB0byBpbml0aWFsaXplIFBBVC4KClRoaXMgYWxzbyBhc3N1cmVzIHRoYXQgcGF0X2Rpc2FibGUo KSBjYWxsZWQgZnJvbSBwYXRfYnNwX2luaXQoKQp3aWxsIHNldCB0aGUgUEFUIHRhYmxlIHByb3Bl cmx5IHdoZW4gQ1BVIGRvZXMgbm90IHN1cHBvcnQgUEFULgoKU2lnbmVkLW9mZi1ieTogVG9zaGkg S2FuaSA8dG9zaGkua2FuaUBocGUuY29tPgpSZXZpZXdlZC1ieTogVGhvbWFzIEdsZWl4bmVyIDx0 Z2x4QGxpbnV0cm9uaXguZGU+CkNjOiBBbmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRp b24ub3JnPgpDYzogQW5keSBMdXRvbWlyc2tpIDxsdXRvQGFtYWNhcGl0YWwubmV0PgpDYzogQm9y aXNsYXYgUGV0a292IDxicEBhbGllbjguZGU+CkNjOiBCb3Jpc2xhdiBQZXRrb3YgPGJwQHN1c2Uu ZGU+CkNjOiBCcmlhbiBHZXJzdCA8YnJnZXJzdEBnbWFpbC5jb20+CkNjOiBEZW55cyBWbGFzZW5r byA8ZHZsYXNlbmtAcmVkaGF0LmNvbT4KQ2M6IEguIFBldGVyIEFudmluIDxocGFAenl0b3IuY29t PgpDYzogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpDYzogTGludXMgVG9ydmFsZHMg PHRvcnZhbGRzQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpDYzogTHVpcyBSLiBSb2RyaWd1ZXogPG1j Z3JvZkBzdXNlLmNvbT4KQ2M6IFBldGVyIFppamxzdHJhIDxwZXRlcnpAaW5mcmFkZWFkLm9yZz4K Q2M6IFJvYmVydCBFbGxpb3R0IDxlbGxpb3R0QGhwZS5jb20+CkNjOiBUb3NoaSBLYW5pIDx0b3No aS5rYW5pQGhwLmNvbT4KQ2M6IGtvbnJhZC53aWxrQG9yYWNsZS5jb20KQ2M6IHBhdWwuZ29ydG1h a2VyQHdpbmRyaXZlci5jb20KQ2M6IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpMaW5r OiBodHRwOi8vbGttbC5rZXJuZWwub3JnL3IvMTQ1ODc2OTMyMy0yNDQ5MS0zLWdpdC1zZW5kLWVt YWlsLXRvc2hpLmthbmlAaHBlLmNvbQpTaWduZWQtb2ZmLWJ5OiBJbmdvIE1vbG5hciA8bWluZ29A a2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGlu dXhmb3VuZGF0aW9uLm9yZz4KCi0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vcGF0LmggfCAgICAx ICsKIGFyY2gveDg2L21tL3BhdC5jICAgICAgICAgIHwgICAxMyArKysrKysrKysrKystCiAyIGZp bGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCi0tLSBhL2FyY2gv eDg2L2luY2x1ZGUvYXNtL3BhdC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3BhdC5oCkBA IC01LDYgKzUsNyBAQAogI2luY2x1ZGUgPGFzbS9wZ3RhYmxlX3R5cGVzLmg+CiAKIGJvb2wgcGF0 X2VuYWJsZWQodm9pZCk7Cit2b2lkIHBhdF9kaXNhYmxlKGNvbnN0IGNoYXIgKnJlYXNvbik7CiBl eHRlcm4gdm9pZCBwYXRfaW5pdCh2b2lkKTsKIHZvaWQgX19pbml0X2NhY2hlX21vZGVzKHU2NCk7 CiAKLS0tIGEvYXJjaC94ODYvbW0vcGF0LmMKKysrIGIvYXJjaC94ODYvbW0vcGF0LmMKQEAgLTQw LDExICs0MCwyMiBAQAogc3RhdGljIGJvb2wgYm9vdF9jcHVfZG9uZTsKIAogc3RhdGljIGludCBf X3JlYWRfbW9zdGx5IF9fcGF0X2VuYWJsZWQgPSBJU19FTkFCTEVEKENPTkZJR19YODZfUEFUKTsK K3N0YXRpYyB2b2lkIGluaXRfY2FjaGVfbW9kZXModm9pZCk7CiAKLXN0YXRpYyBpbmxpbmUgdm9p ZCBwYXRfZGlzYWJsZShjb25zdCBjaGFyICpyZWFzb24pCit2b2lkIHBhdF9kaXNhYmxlKGNvbnN0 IGNoYXIgKnJlYXNvbikKIHsKKwlpZiAoIV9fcGF0X2VuYWJsZWQpCisJCXJldHVybjsKKworCWlm IChib290X2NwdV9kb25lKSB7CisJCVdBUk5fT05DRSgxLCAieDg2L1BBVDogUEFUIGNhbm5vdCBi ZSBkaXNhYmxlZCBhZnRlciBpbml0aWFsaXphdGlvblxuIik7CisJCXJldHVybjsKKwl9CisKIAlf X3BhdF9lbmFibGVkID0gMDsKIAlwcl9pbmZvKCJ4ODYvUEFUOiAlc1xuIiwgcmVhc29uKTsKKwor CWluaXRfY2FjaGVfbW9kZXMoKTsKIH0KIAogc3RhdGljIGludCBfX2luaXQgbm9wYXQoY2hhciAq c3RyKQoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK