From: Andy Lutomirski <luto@kernel.org>
To: x86@kernel.org
Cc: david@saggiorato.net, Borislav Petkov <bp@alien8.de>,
Brian Gerst <brgerst@gmail.com>,
linux-kernel@vger.kernel.org, Andy Lutomirski <luto@kernel.org>,
stable@vger.kernel.org
Subject: [PATCH 1/3] x86/init: Fix cr4_init_shadow() on CR4-less machines
Date: Wed, 28 Sep 2016 12:34:14 -0700
Message-ID: <43a20f81fb504013bf613913dc25574b45336a61.1475091074.git.luto@kernel.org> (raw)
In-Reply-To: <cover.1475091074.git.luto@kernel.org>
In-Reply-To: <cover.1475091074.git.luto@kernel.org>
cr4_init_shadow() will panic on 486-like machines without CR4. Fix
it using __read_cr4_safe().
Cc: stable@vger.kernel.org
Reported-by: david@saggiorato.net
Fixes: 1e02ce4cccdc ("x86: Store a per-cpu shadow copy of CR4")
Signed-off-by: Andy Lutomirski <luto@kernel.org>
---
arch/x86/include/asm/tlbflush.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
index 6fa85944af83..dee8a70382ba 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -81,7 +81,7 @@ DECLARE_PER_CPU_SHARED_ALIGNED(struct tlb_state, cpu_tlbstate);
/* Initialize cr4 shadow for this CPU. */
static inline void cr4_init_shadow(void)
{
- this_cpu_write(cpu_tlbstate.cr4, __read_cr4());
+ this_cpu_write(cpu_tlbstate.cr4, __read_cr4_safe());
}
/* Set in this cpu's CR4. */
--
2.7.4
next prev parent reply index
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-28 19:34 [PATCH 0/3] CR4 fixes (some are urgent) Andy Lutomirski
2016-09-28 19:34 ` Andy Lutomirski [this message]
2016-09-29 11:44 ` [PATCH 1/3] x86/init: Fix cr4_init_shadow() on CR4-less machines Borislav Petkov
2016-09-29 18:21 ` [tip:x86/urgent] " tip-bot for Andy Lutomirski
2016-09-28 19:34 ` [PATCH 2/3] x86/boot: Fix another __read_cr4() case on 486 Andy Lutomirski
2016-09-29 11:48 ` Borislav Petkov
2016-09-29 19:09 ` Andy Lutomirski
2016-09-28 19:34 ` [PATCH 3/3] x86/asm: Get rid of __read_cr4_safe() Andy Lutomirski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43a20f81fb504013bf613913dc25574b45336a61.1475091074.git.luto@kernel.org \
--to=luto@kernel.org \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=david@saggiorato.net \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
LKML Archive on lore.kernel.org
Archives are clonable:
git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git
git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
linux-kernel@vger.kernel.org
public-inbox-index lkml
Example config snippet for mirrors
Newsgroup available over NNTP:
nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git