All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Borislav Petkov <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: luto@kernel.org, hpa@zytor.com, bp@alien8.de, brgerst@gmail.com,
	jpoimboe@redhat.com, dvlasenk@redhat.com,
	torvalds@linux-foundation.org, tglx@linutronix.de,
	mingo@kernel.org, peterz@infradead.org, bp@suse.de,
	linux-kernel@vger.kernel.org
Subject: [tip:x86/microcode] x86/microcode: Export the microcode cache linked list
Date: Tue, 25 Oct 2016 09:29:45 -0700	[thread overview]
Message-ID: <tip-058dc49803171f37b25f053182835f2969d1c43f@git.kernel.org> (raw)
In-Reply-To: <20161025095522.11964-6-bp@alien8.de>

Commit-ID:  058dc49803171f37b25f053182835f2969d1c43f
Gitweb:     http://git.kernel.org/tip/058dc49803171f37b25f053182835f2969d1c43f
Author:     Borislav Petkov <bp@suse.de>
AuthorDate: Tue, 25 Oct 2016 11:55:15 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 25 Oct 2016 12:28:58 +0200

x86/microcode: Export the microcode cache linked list

It will be used by both drivers so move it to core.c.

No functionality change.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20161025095522.11964-6-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/include/asm/microcode.h     |  9 +++++++++
 arch/x86/kernel/cpu/microcode/amd.c  | 23 +++++++----------------
 arch/x86/kernel/cpu/microcode/core.c |  2 ++
 3 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index 05e56d0..91595ec 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -20,6 +20,15 @@ do {							\
 			 (u32)((u64)(val)),		\
 			 (u32)((u64)(val) >> 32))
 
+struct ucode_patch {
+	struct list_head plist;
+	void *data;		/* Intel uses only this one */
+	u32 patch_id;
+	u16 equiv_cpu;
+};
+
+extern struct list_head microcode_cache;
+
 struct cpu_signature {
 	unsigned int sig;
 	unsigned int pf;
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 6b3929e..8cb20e3 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -39,15 +39,6 @@
 
 static struct equiv_cpu_entry *equiv_cpu_table;
 
-struct ucode_patch {
-	struct list_head plist;
-	void *data;
-	u32 patch_id;
-	u16 equiv_cpu;
-};
-
-static LIST_HEAD(pcache);
-
 /*
  * This points to the current valid container of microcode patches which we will
  * save from the initrd before jettisoning its contents.
@@ -312,9 +303,9 @@ void __init load_ucode_amd_bsp(unsigned int family)
 #ifdef CONFIG_X86_32
 /*
  * On 32-bit, since AP's early load occurs before paging is turned on, we
- * cannot traverse cpu_equiv_table and pcache in kernel heap memory. So during
- * cold boot, AP will apply_ucode_in_initrd() just like the BSP. During
- * save_microcode_in_initrd_amd() BSP's patch is copied to amd_ucode_patch,
+ * cannot traverse cpu_equiv_table and microcode_cache in kernel heap memory.
+ * So during cold boot, AP will apply_ucode_in_initrd() just like the BSP.
+ * In save_microcode_in_initrd_amd() BSP's patch is copied to amd_ucode_patch,
  * which is used upon resume from suspend.
  */
 void load_ucode_amd_ap(void)
@@ -508,7 +499,7 @@ static struct ucode_patch *cache_find_patch(u16 equiv_cpu)
 {
 	struct ucode_patch *p;
 
-	list_for_each_entry(p, &pcache, plist)
+	list_for_each_entry(p, &microcode_cache, plist)
 		if (p->equiv_cpu == equiv_cpu)
 			return p;
 	return NULL;
@@ -518,7 +509,7 @@ static void update_cache(struct ucode_patch *new_patch)
 {
 	struct ucode_patch *p;
 
-	list_for_each_entry(p, &pcache, plist) {
+	list_for_each_entry(p, &microcode_cache, plist) {
 		if (p->equiv_cpu == new_patch->equiv_cpu) {
 			if (p->patch_id >= new_patch->patch_id)
 				/* we already have the latest patch */
@@ -531,14 +522,14 @@ static void update_cache(struct ucode_patch *new_patch)
 		}
 	}
 	/* no patch found, add it */
-	list_add_tail(&new_patch->plist, &pcache);
+	list_add_tail(&new_patch->plist, &microcode_cache);
 }
 
 static void free_cache(void)
 {
 	struct ucode_patch *p, *tmp;
 
-	list_for_each_entry_safe(p, tmp, &pcache, plist) {
+	list_for_each_entry_safe(p, tmp, &microcode_cache, plist) {
 		__list_del(p->plist.prev, p->plist.next);
 		kfree(p->data);
 		kfree(p);
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index d0d1a0f..55a2b24 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -45,6 +45,8 @@
 static struct microcode_ops	*microcode_ops;
 static bool dis_ucode_ldr;
 
+LIST_HEAD(microcode_cache);
+
 /*
  * Synchronization.
  *

  reply	other threads:[~2016-10-25 16:30 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-25  9:55 [PATCH 00/12] x86/microcode: Rework microcode loading Borislav Petkov
2016-10-25  9:55 ` [PATCH 01/12] x86/microcode: Run the AP-loading routine only on the application processors Borislav Petkov
2016-10-25 16:27   ` [tip:x86/microcode] " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 02/12] x86/microcode: Move driver authors to CREDITS Borislav Petkov
2016-10-25 16:28   ` [tip:x86/microcode] " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 03/12] x86/microcode/intel: Simplify generic_load_microcode() Borislav Petkov
2016-10-25 16:28   ` [tip:x86/microcode] " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 04/12] x86/microcode: Remove one ifdef clause Borislav Petkov
2016-10-25 16:29   ` [tip:x86/microcode] x86/microcode: Remove one #ifdef clause tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 05/12] x86/microcode: Export the microcode cache linked list Borislav Petkov
2016-10-25 16:29   ` tip-bot for Borislav Petkov [this message]
2016-10-25  9:55 ` [PATCH 06/12] x86/microcode/AMD: Hand down the CPU family Borislav Petkov
2016-10-25 16:30   ` [tip:x86/microcode] x86/microcode/amd: " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 07/12] x86/microcode: Issue the debug printk on resume only on success Borislav Petkov
2016-10-25 16:30   ` [tip:x86/microcode] " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 08/12] x86/microcode: Collect CPU info on resume Borislav Petkov
2016-10-25 16:31   ` [tip:x86/microcode] " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 09/12] x86/microcode/AMD: Retract functions Borislav Petkov
2016-10-25 16:31   ` [tip:x86/microcode] x86/microcode/amd: Move private inlines to .c and mark local functions static tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 10/12] x86/microcode/intel: Remove intel_lib.c Borislav Petkov
2016-10-25 16:32   ` [tip:x86/microcode] " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 11/12] x86/microcode: Rework microcode loading Borislav Petkov
2016-10-25 16:32   ` [tip:x86/microcode] " tip-bot for Borislav Petkov
2016-10-25  9:55 ` [PATCH 12/12] x86/microcode: Bump driver version, update copyrights Borislav Petkov
2016-10-25 16:33   ` [tip:x86/microcode] " tip-bot for Borislav Petkov

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=tip-058dc49803171f37b25f053182835f2969d1c43f@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=bp@alien8.de \
    --cc=bp@suse.de \
    --cc=brgerst@gmail.com \
    --cc=dvlasenk@redhat.com \
    --cc=hpa@zytor.com \
    --cc=jpoimboe@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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.