aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/microcode_amd.c
diff options
context:
space:
mode:
authorJames Morris <james.l.morris@oracle.com>2012-09-28 13:37:32 +1000
committerJames Morris <james.l.morris@oracle.com>2012-09-28 13:37:32 +1000
commitbf5308344527d015ac9a6d2bda4ad4d40fd7d943 (patch)
tree566e61e2cfc648c374d15cfc8c661b73e1a471f8 /arch/x86/kernel/microcode_amd.c
parent3585e96cd1049682b8a19a0b699422156e9d735b (diff)
parent979570e02981d4a8fc20b3cc8fd651856c98ee9d (diff)
downloadkernel_replicant_linux-bf5308344527d015ac9a6d2bda4ad4d40fd7d943.tar.gz
kernel_replicant_linux-bf5308344527d015ac9a6d2bda4ad4d40fd7d943.tar.bz2
kernel_replicant_linux-bf5308344527d015ac9a6d2bda4ad4d40fd7d943.zip
Merge tag 'v3.6-rc7' into next
Linux 3.6-rc7 Requested by David Howells so he can merge his key susbsystem work into my tree with requisite -linus changesets.
Diffstat (limited to 'arch/x86/kernel/microcode_amd.c')
-rw-r--r--arch/x86/kernel/microcode_amd.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c
index 8a2ce8fd41c0..82746f942cd8 100644
--- a/arch/x86/kernel/microcode_amd.c
+++ b/arch/x86/kernel/microcode_amd.c
@@ -143,11 +143,12 @@ static int get_matching_microcode(int cpu, const u8 *ucode_ptr,
unsigned int *current_size)
{
struct microcode_header_amd *mc_hdr;
- unsigned int actual_size;
+ unsigned int actual_size, patch_size;
u16 equiv_cpu_id;
/* size of the current patch we're staring at */
- *current_size = *(u32 *)(ucode_ptr + 4) + SECTION_HDR_SIZE;
+ patch_size = *(u32 *)(ucode_ptr + 4);
+ *current_size = patch_size + SECTION_HDR_SIZE;
equiv_cpu_id = find_equiv_id();
if (!equiv_cpu_id)
@@ -174,7 +175,7 @@ static int get_matching_microcode(int cpu, const u8 *ucode_ptr,
/*
* now that the header looks sane, verify its size
*/
- actual_size = verify_ucode_size(cpu, *current_size, leftover_size);
+ actual_size = verify_ucode_size(cpu, patch_size, leftover_size);
if (!actual_size)
return 0;