All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
	X86 ML <x86@kernel.org>, LKML <linux-kernel@vger.kernel.org>,
	Kim Naru <kim.naru@amd.com>,
	Aravind Gopalakrishnan <aravind.gopalakrishnan@amd.com>,
	Sherry Hurwitz <sherry.hurwitz@amd.com>
Subject: [PATCH -v1.2] x86, CPU, AMD: Add workaround for family 16h, erratum 793
Date: Wed, 15 Jan 2014 12:10:56 +0100	[thread overview]
Message-ID: <20140115111056.GB32056@pd.tnic> (raw)
In-Reply-To: <52D5D883.802@zytor.com>

On Tue, Jan 14, 2014 at 04:38:27PM -0800, H. Peter Anvin wrote:
> In file included from
> /home/hpa/kernel/distwork/arch/x86/include/asm/processor.h:20:0,

Finnish!

Well, Boris the dumbass forgot to amend, changes were still in the index
but not committed. This is what I get when I do a couple of things at
the same time. :(

---
From: Borislav Petkov <bp@suse.de>

This adds the workaround for erratum 793 as a precaution in case not
every BIOS implements it. This addresses CVE-2013-6885.

Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Aravind Gopalakrishnan <aravind.gopalakrishnan@amd.com>
---
 arch/x86/include/uapi/asm/msr-index.h |  1 +
 arch/x86/kernel/cpu/amd.c             | 10 ++++++++++
 2 files changed, 11 insertions(+)

diff --git a/arch/x86/include/uapi/asm/msr-index.h b/arch/x86/include/uapi/asm/msr-index.h
index 37813b5ddc37..59cea185ad1d 100644
--- a/arch/x86/include/uapi/asm/msr-index.h
+++ b/arch/x86/include/uapi/asm/msr-index.h
@@ -184,6 +184,7 @@
 #define MSR_AMD64_PATCH_LOADER		0xc0010020
 #define MSR_AMD64_OSVW_ID_LENGTH	0xc0010140
 #define MSR_AMD64_OSVW_STATUS		0xc0010141
+#define MSR_AMD64_LS_CFG		0xc0011020
 #define MSR_AMD64_DC_CFG		0xc0011022
 #define MSR_AMD64_BU_CFG2		0xc001102a
 #define MSR_AMD64_IBSFETCHCTL		0xc0011030
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 4a48e8bbd857..6ac3a67ad471 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -507,6 +507,16 @@ static void early_init_amd(struct cpuinfo_x86 *c)
 			set_cpu_cap(c, X86_FEATURE_EXTD_APICID);
 	}
 #endif
+
+	/* F16h erratum 793, CVE-2013-6885 */
+	if (c->x86 == 0x16 && c->x86_model <= 0xf) {
+		u64 val;
+
+		rdmsrl(MSR_AMD64_LS_CFG, val);
+		if (!(val & BIT(15)))
+			wrmsrl(MSR_AMD64_LS_CFG, val | BIT(15));
+	}
+
 }
 
 static const int amd_erratum_383[];
-- 
1.8.5.2.192.g7794a68


-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

  reply	other threads:[~2014-01-15 11:11 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-14 11:41 AMD errata 793 (CVE-2013-6885) needs a workaround in Linux? Henrique de Moraes Holschuh
2014-01-14 11:55 ` Borislav Petkov
2014-01-14 15:14   ` H. Peter Anvin
2014-01-14 15:35     ` Borislav Petkov
2014-01-14 16:27       ` [PATCH] x86, CPU, AMD: Add workaround for family 16h, erratum 793 Borislav Petkov
2014-01-14 16:30         ` H. Peter Anvin
2014-01-14 16:42           ` Borislav Petkov
2014-01-14 17:46             ` H. Peter Anvin
2014-01-14 23:07               ` [PATCH -v1.1] " Borislav Petkov
2014-01-15  0:38                 ` H. Peter Anvin
2014-01-15 11:10                   ` Borislav Petkov [this message]
2014-01-15  0:45                 ` [tip:x86/urgent] x86, cpu, amd: " tip-bot for Borislav Petkov
2014-01-15  0:54                   ` H. Peter Anvin
2014-01-15  6:28                     ` Ingo Molnar
2014-01-15 13:36                       ` Borislav Petkov
2014-01-15 13:52                         ` H. Peter Anvin
2014-01-15 18:38                           ` Ingo Molnar
2014-01-16  4:11                             ` H. Peter Anvin
     [not found]         ` <52D59ACC.3090100@amd.com>
2014-01-14 20:38           ` [PATCH] x86, CPU, AMD: " Borislav Petkov
2014-01-16 17:58             ` Aravind Gopalakrishnan
2014-01-16 18:10               ` Borislav Petkov
2014-01-17  0:21               ` Henrique de Moraes Holschuh
2014-01-17  0:25                 ` H. Peter Anvin
2014-01-17 10:18                 ` Borislav Petkov
2014-01-17 16:23                   ` H. Peter Anvin
2014-01-17 17:02                     ` Borislav Petkov
2014-01-17 17:36                       ` Aravind Gopalakrishnan
2014-01-17 17:42                       ` H. Peter Anvin
2014-01-17 18:05                         ` Aravind Gopalakrishnan
2014-01-17 18:25                           ` Borislav Petkov
2014-01-17 22:28         ` Pavel Machek
2014-01-17 22:50           ` Borislav Petkov
2014-01-17 22:51             ` H. Peter Anvin
2014-01-17 22:57               ` Borislav Petkov
2014-01-18  0:29               ` Pavel Machek
2014-01-18  1:21                 ` H. Peter Anvin
2014-01-18  2:01                   ` Pavel Machek
2014-01-18 10:42                     ` Borislav Petkov
2014-01-18 11:08                       ` Pavel Machek
2014-01-18 11:26                         ` Borislav Petkov
2014-01-18 11:31                           ` Pavel Machek

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=20140115111056.GB32056@pd.tnic \
    --to=bp@alien8.de \
    --cc=aravind.gopalakrishnan@amd.com \
    --cc=hmh@hmh.eng.br \
    --cc=hpa@zytor.com \
    --cc=kim.naru@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sherry.hurwitz@amd.com \
    --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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.