* [PATCH 1/2] x86, microcode: Do Intel microcode revision check signed v2
@ 2013-12-12 23:57 Andi Kleen
2013-12-12 23:57 ` [PATCH 2/2] x86, microcode: Add option to allow downgrading of microcode Andi Kleen
0 siblings, 1 reply; 3+ messages in thread
From: Andi Kleen @ 2013-12-12 23:57 UTC (permalink / raw)
To: x86; +Cc: linux-kernel, Andi Kleen
From: Andi Kleen <ak@linux.intel.com>
The Intel SDM Vol 3 9.11.1 Microcode update states that
the update revision field is signed. However we do the comparison
unsigned, as the comparison gets promoted. Change the field
to be signed, so that comparision is really signed.
v2: Change field.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
arch/x86/include/asm/microcode_intel.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h
index 9067166..ed1884b 100644
--- a/arch/x86/include/asm/microcode_intel.h
+++ b/arch/x86/include/asm/microcode_intel.h
@@ -5,7 +5,7 @@
struct microcode_header_intel {
unsigned int hdrver;
- unsigned int rev;
+ int rev;
unsigned int date;
unsigned int sig;
unsigned int cksum;
--
1.8.3.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 2/2] x86, microcode: Add option to allow downgrading of microcode
2013-12-12 23:57 [PATCH 1/2] x86, microcode: Do Intel microcode revision check signed v2 Andi Kleen
@ 2013-12-12 23:57 ` Andi Kleen
0 siblings, 0 replies; 3+ messages in thread
From: Andi Kleen @ 2013-12-12 23:57 UTC (permalink / raw)
To: x86; +Cc: linux-kernel, Andi Kleen
From: Andi Kleen <ak@linux.intel.com>
For testing purposes it can be useful to downgrade microcode.
Normally the driver only allows upgrading.
Add a module_param (default off) that allows downgrading.
Note the module_param can currently not be set for early
ucode update, only for late.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
arch/x86/kernel/microcode_intel_lib.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/x86/kernel/microcode_intel_lib.c b/arch/x86/kernel/microcode_intel_lib.c
index ce69320..18d5325 100644
--- a/arch/x86/kernel/microcode_intel_lib.c
+++ b/arch/x86/kernel/microcode_intel_lib.c
@@ -26,11 +26,16 @@
#include <linux/uaccess.h>
#include <linux/kernel.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <asm/microcode_intel.h>
#include <asm/processor.h>
#include <asm/msr.h>
+static bool allow_downgrade;
+module_param(allow_downgrade, bool, 0644);
+MODULE_PARM_DESC(allow_downgrade, "Allow downgrading microcode");
+
static inline int
update_match_cpu(unsigned int csig, unsigned int cpf,
unsigned int sig, unsigned int pf)
@@ -41,6 +46,8 @@ update_match_cpu(unsigned int csig, unsigned int cpf,
int
update_match_revision(struct microcode_header_intel *mc_header, int rev)
{
+ if (allow_downgrade)
+ return 1;
return (mc_header->rev <= rev) ? 0 : 1;
}
--
1.8.3.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] x86, microcode: Do Intel microcode revision check signed v2
@ 2014-01-24 21:18 Andi Kleen
0 siblings, 0 replies; 3+ messages in thread
From: Andi Kleen @ 2014-01-24 21:18 UTC (permalink / raw)
To: x86; +Cc: linux-kernel, Andi Kleen
From: Andi Kleen <ak@linux.intel.com>
The Intel SDM Vol 3 9.11.1 Microcode update states that
the update revision field is signed. However we do the comparison
unsigned, as the comparison gets promoted. Change the field
to be signed, so that comparision is really signed.
v2: Change field.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
---
arch/x86/include/asm/microcode_intel.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/include/asm/microcode_intel.h b/arch/x86/include/asm/microcode_intel.h
index 9067166..ed1884b 100644
--- a/arch/x86/include/asm/microcode_intel.h
+++ b/arch/x86/include/asm/microcode_intel.h
@@ -5,7 +5,7 @@
struct microcode_header_intel {
unsigned int hdrver;
- unsigned int rev;
+ int rev;
unsigned int date;
unsigned int sig;
unsigned int cksum;
--
1.8.3.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-01-24 21:19 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-12 23:57 [PATCH 1/2] x86, microcode: Do Intel microcode revision check signed v2 Andi Kleen
2013-12-12 23:57 ` [PATCH 2/2] x86, microcode: Add option to allow downgrading of microcode Andi Kleen
2014-01-24 21:18 [PATCH 1/2] x86, microcode: Do Intel microcode revision check signed v2 Andi Kleen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®