summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/microcode/amd.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/cpu/microcode/amd.c')
-rw-r--r--arch/x86/kernel/cpu/microcode/amd.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 1691f41..4e22383 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -42,11 +42,15 @@ static struct equiv_cpu_entry *equiv_cpu_table;
/*
* This points to the current valid container of microcode patches which we will
- * save from the initrd/builtin before jettisoning its contents.
+ * save from the initrd/builtin before jettisoning its contents. @mc is the
+ * microcode patch we found to match.
*/
-struct container {
- u8 *data;
- size_t size;
+static struct cont_desc {
+ struct microcode_amd *mc;
+ u32 psize;
+ u16 eq_id;
+ u8 *data;
+ size_t size;
} cont;
static u32 ucode_new_rev;
@@ -113,9 +117,9 @@ static u16 find_equiv_id(struct equiv_cpu_entry *equiv_table, u32 sig)
* table or 0 if none found.
*/
static u16
-find_proper_container(u8 *ucode, size_t size, struct container *ret_cont)
+find_proper_container(u8 *ucode, size_t size, struct cont_desc *desc)
{
- struct container ret = { NULL, 0 };
+ struct cont_desc ret = { 0 };
u32 eax, ebx, ecx, edx;
struct equiv_cpu_entry *eq;
int offset, left;
@@ -158,7 +162,7 @@ find_proper_container(u8 *ucode, size_t size, struct container *ret_cont)
*/
left = ret.size - offset;
- *ret_cont = ret;
+ *desc = ret;
return eq_id;
}
@@ -213,11 +217,11 @@ static int __apply_microcode_amd(struct microcode_amd *mc)
* Returns true if container found (sets @ret_cont), false otherwise.
*/
static bool apply_microcode_early_amd(void *ucode, size_t size, bool save_patch,
- struct container *ret_cont)
+ struct cont_desc *desc)
{
u8 (*patch)[PATCH_MAX_SIZE];
u32 rev, *header, *new_rev;
- struct container ret;
+ struct cont_desc ret;
int offset, left;
u16 eq_id = 0;
u8 *data;
@@ -270,8 +274,8 @@ static bool apply_microcode_early_amd(void *ucode, size_t size, bool save_patch,
left -= offset;
}
- if (ret_cont)
- *ret_cont = ret;
+ if (desc)
+ *desc = ret;
return true;
}
OpenPOWER on IntegriCloud