summaryrefslogtreecommitdiffstats
path: root/x86-microcode-Ensure-that-module-is-only-loaded-for-supported-AMD-CPUs.patch
blob: d693173163ac985d5f4295f4641ce726bb0f967e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
Path: news.gmane.org!not-for-mail
From: Borislav Petkov <borislav.petkov@amd.com>
Newsgroups: gmane.linux.kernel
Subject: [PATCH 2/2] x86, microcode: Ensure that module is only loaded for
Date: Thu, 12 Apr 2012 18:34:22 +0200
Lines: 80
Approved: news@gmane.org
Message-ID: <20120412163422.GM24549@aftab>
References: <20120411163849.GE4794@alberich.amd.com>
 <20120411200601.GC12288@kroah.com>
 <20120411201053.GF18114@aftab>
 <20120412162351.GJ24549@aftab>
NNTP-Posting-Host: plane.gmane.org
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
X-Trace: dough.gmane.org 1334248500 15307 80.91.229.3 (12 Apr 2012 16:35:00 GMT)
X-Complaints-To: usenet@dough.gmane.org
NNTP-Posting-Date: Thu, 12 Apr 2012 16:35:00 +0000 (UTC)
Cc: Andreas Herrmann <andreas.herrmann3@amd.com>,
	Kay Sievers <kay.sievers@vrfy.org>,
	Dave Jones <davej@redhat.com>, <linux-kernel@vger.kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Original-X-From: linux-kernel-owner@vger.kernel.org Thu Apr 12 18:34:59 2012
Return-path: <linux-kernel-owner@vger.kernel.org>
Envelope-to: glk-linux-kernel-3@plane.gmane.org
Original-Received: from vger.kernel.org ([209.132.180.67])
	by plane.gmane.org with esmtp (Exim 4.69)
	(envelope-from <linux-kernel-owner@vger.kernel.org>)
	id 1SIMz4-0008MV-3g
	for glk-linux-kernel-3@plane.gmane.org; Thu, 12 Apr 2012 18:34:58 +0200
Original-Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
	id S965760Ab2DLQep (ORCPT <rfc822;glk-linux-kernel-3@m.gmane.org>);
	Thu, 12 Apr 2012 12:34:45 -0400
Original-Received: from db3ehsobe002.messaging.microsoft.com ([213.199.154.140]:56919
	"EHLO db3outboundpool.messaging.microsoft.com" rhost-flags-OK-OK-OK-OK)
	by vger.kernel.org with ESMTP id S965553Ab2DLQen (ORCPT
	<rfc822;linux-kernel@vger.kernel.org>);
	Thu, 12 Apr 2012 12:34:43 -0400
Original-Received: from mail2-db3-R.bigfish.com (10.3.81.239) by
 DB3EHSOBE005.bigfish.com (10.3.84.25) with Microsoft SMTP Server id
 14.1.225.23; Thu, 12 Apr 2012 16:34:41 +0000
Original-Received: from mail2-db3 (localhost [127.0.0.1])	by mail2-db3-R.bigfish.com
 (Postfix) with ESMTP id E4EF14404B4;	Thu, 12 Apr 2012 16:34:41 +0000 (UTC)
X-SpamScore: 0
X-BigFish: VPS0(zzzz1202hzz8275bh8275dhz2dh668h839h944hd25hd2bh)
X-Forefront-Antispam-Report: CIP:163.181.249.108;KIP:(null);UIP:(null);IPV:NLI;H:ausb3twp01.amd.com;RD:none;EFVD:NLI
Original-Received: from mail2-db3 (localhost.localdomain [127.0.0.1]) by mail2-db3
 (MessageSwitch) id 1334248479906480_3860; Thu, 12 Apr 2012 16:34:39 +0000
 (UTC)
Original-Received: from DB3EHSMHS005.bigfish.com (unknown [10.3.81.241])	by
 mail2-db3.bigfish.com (Postfix) with ESMTP id CEB76400A4;	Thu, 12 Apr 2012
 16:34:39 +0000 (UTC)
Original-Received: from ausb3twp01.amd.com (163.181.249.108) by
 DB3EHSMHS005.bigfish.com (10.3.87.105) with Microsoft SMTP Server id
 14.1.225.23; Thu, 12 Apr 2012 16:34:38 +0000
X-WSS-ID: 0M2DKPO-01-CNU-02
X-M-MSG: 
Original-Received: from sausexedgep02.amd.com (sausexedgep02-ext.amd.com
 [163.181.249.73])	(using TLSv1 with cipher AES128-SHA (128/128 bits))	(No
 client certificate requested)	by ausb3twp01.amd.com (Axway MailGate 3.8.1)
 with ESMTP id 2C1D81028100;	Thu, 12 Apr 2012 11:34:36 -0500 (CDT)
Original-Received: from SAUSEXDAG02.amd.com (163.181.55.2) by sausexedgep02.amd.com
 (163.181.36.59) with Microsoft SMTP Server (TLS) id 8.3.192.1; Thu, 12 Apr
 2012 11:34:51 -0500
Original-Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag02.amd.com
 (163.181.55.2) with Microsoft SMTP Server (TLS) id 14.1.323.3; Thu, 12 Apr
 2012 11:34:36 -0500
Original-Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com
 (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Thu, 12 Apr 2012
 12:34:35 -0400
Original-Received: from aftab (aftab.osrc.amd.com [165.204.15.109])	by gwo.osrc.amd.com
 (Postfix) with ESMTP id D8E4C49C58B;	Thu, 12 Apr 2012 17:34:33 +0100 (BST)
Content-Disposition: inline
In-Reply-To: <20120412162351.GJ24549@aftab>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-OriginatorOrg: amd.com
Original-Sender: linux-kernel-owner@vger.kernel.org
Precedence: bulk
List-ID: <linux-kernel.vger.kernel.org>
X-Mailing-List: linux-kernel@vger.kernel.org
Xref: news.gmane.org gmane.linux.kernel:1281050
Archived-At: <http://permalink.gmane.org/gmane.linux.kernel/1281050>

From: Andreas Herrmann <andreas.herrmann3@amd.com>
Date: Thu, 12 Apr 2012 16:51:57 +0200
Subject: [PATCH 2/2] x86, microcode: Ensure that module is only loaded for supported AMD CPUs

Exit early when there's no support for a particular CPU family. Also,
fixup the "no support for this CPU vendor" to be issued only when the
driver is attempted to be loaded on an unsupported vendor.

Cc: stable@vger.kernel.org
Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
Cc: Borislav Petkov <borislav.petkov@amd.com>
[Boris: added a commit msg because Andreas is lazy]
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
 arch/x86/kernel/microcode_amd.c  |   12 +++++++-----
 arch/x86/kernel/microcode_core.c |    6 +++---
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c
index 73465aa..8a2ce8f 100644
--- a/arch/x86/kernel/microcode_amd.c
+++ b/arch/x86/kernel/microcode_amd.c
@@ -82,11 +82,6 @@ static int collect_cpu_info_amd(int cpu, struct cpu_signature *csig)
 {
 	struct cpuinfo_x86 *c = &cpu_data(cpu);
 
-	if (c->x86_vendor != X86_VENDOR_AMD || c->x86 < 0x10) {
-		pr_warning("CPU%d: family %d not supported\n", cpu, c->x86);
-		return -1;
-	}
-
 	csig->rev = c->microcode;
 	pr_info("CPU%d: patch_level=0x%08x\n", cpu, csig->rev);
 
@@ -380,6 +375,13 @@ static struct microcode_ops microcode_amd_ops = {
 
 struct microcode_ops * __init init_amd_microcode(void)
 {
+	struct cpuinfo_x86 *c = &cpu_data(0);
+
+	if (c->x86_vendor != X86_VENDOR_AMD || c->x86 < 0x10) {
+		pr_warning("AMD CPU family 0x%x not supported\n", c->x86);
+		return NULL;
+	}
+
 	patch = (void *)get_zeroed_page(GFP_KERNEL);
 	if (!patch)
 		return NULL;
diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c
index d389e74..c9bda6d 100644
--- a/arch/x86/kernel/microcode_core.c
+++ b/arch/x86/kernel/microcode_core.c
@@ -526,11 +526,11 @@ static int __init microcode_init(void)
 		microcode_ops = init_intel_microcode();
 	else if (c->x86_vendor == X86_VENDOR_AMD)
 		microcode_ops = init_amd_microcode();
-
-	if (!microcode_ops) {
+	else
 		pr_err("no support for this CPU vendor\n");
+
+	if (!microcode_ops)
 		return -ENODEV;
-	}
 
 	microcode_pdev = platform_device_register_simple("microcode", -1,
 							 NULL, 0);
-- 
1.7.8.4

-- 
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
GM: Alberto Bozzo
Reg: Dornach, Landkreis Muenchen
HRB Nr. 43632 WEEE Registernr: 129 19551