Loading arch/x86/kernel/microcode_amd.c +23 −22 Original line number Original line Diff line number Diff line Loading @@ -47,28 +47,29 @@ MODULE_LICENSE("GPL v2"); #define UCODE_UCODE_TYPE 0x00000001 #define UCODE_UCODE_TYPE 0x00000001 struct equiv_cpu_entry { struct equiv_cpu_entry { unsigned int installed_cpu; u32 installed_cpu; unsigned int fixed_errata_mask; u32 fixed_errata_mask; unsigned int fixed_errata_compare; u32 fixed_errata_compare; unsigned int equiv_cpu; u16 equiv_cpu; }; u16 res; } __attribute__((packed)); struct microcode_header_amd { struct microcode_header_amd { unsigned int data_code; u32 data_code; unsigned int patch_id; u32 patch_id; unsigned char mc_patch_data_id[2]; u16 mc_patch_data_id; unsigned char mc_patch_data_len; u8 mc_patch_data_len; unsigned char init_flag; u8 init_flag; unsigned int mc_patch_data_checksum; u32 mc_patch_data_checksum; unsigned int nb_dev_id; u32 nb_dev_id; unsigned int sb_dev_id; u32 sb_dev_id; u16 processor_rev_id; u16 processor_rev_id; unsigned char nb_rev_id; u8 nb_rev_id; unsigned char sb_rev_id; u8 sb_rev_id; unsigned char bios_api_rev; u8 bios_api_rev; unsigned char reserved1[3]; u8 reserved1[3]; unsigned int match_reg[8]; u32 match_reg[8]; }; } __attribute__((packed)); struct microcode_amd { struct microcode_amd { struct microcode_header_amd hdr; struct microcode_header_amd hdr; Loading Loading @@ -109,7 +110,7 @@ static int get_matching_microcode(int cpu, void *mc, int rev) { { struct microcode_header_amd *mc_header = mc; struct microcode_header_amd *mc_header = mc; unsigned int current_cpu_id; unsigned int current_cpu_id; unsigned int equiv_cpu_id = 0x00; u16 equiv_cpu_id = 0; unsigned int i = 0; unsigned int i = 0; BUG_ON(equiv_cpu_table == NULL); BUG_ON(equiv_cpu_table == NULL); Loading @@ -117,7 +118,7 @@ static int get_matching_microcode(int cpu, void *mc, int rev) while (equiv_cpu_table[i].installed_cpu != 0) { while (equiv_cpu_table[i].installed_cpu != 0) { if (current_cpu_id == equiv_cpu_table[i].installed_cpu) { if (current_cpu_id == equiv_cpu_table[i].installed_cpu) { equiv_cpu_id = equiv_cpu_table[i].equiv_cpu & 0xffff; equiv_cpu_id = equiv_cpu_table[i].equiv_cpu; break; break; } } i++; i++; Loading Loading
arch/x86/kernel/microcode_amd.c +23 −22 Original line number Original line Diff line number Diff line Loading @@ -47,28 +47,29 @@ MODULE_LICENSE("GPL v2"); #define UCODE_UCODE_TYPE 0x00000001 #define UCODE_UCODE_TYPE 0x00000001 struct equiv_cpu_entry { struct equiv_cpu_entry { unsigned int installed_cpu; u32 installed_cpu; unsigned int fixed_errata_mask; u32 fixed_errata_mask; unsigned int fixed_errata_compare; u32 fixed_errata_compare; unsigned int equiv_cpu; u16 equiv_cpu; }; u16 res; } __attribute__((packed)); struct microcode_header_amd { struct microcode_header_amd { unsigned int data_code; u32 data_code; unsigned int patch_id; u32 patch_id; unsigned char mc_patch_data_id[2]; u16 mc_patch_data_id; unsigned char mc_patch_data_len; u8 mc_patch_data_len; unsigned char init_flag; u8 init_flag; unsigned int mc_patch_data_checksum; u32 mc_patch_data_checksum; unsigned int nb_dev_id; u32 nb_dev_id; unsigned int sb_dev_id; u32 sb_dev_id; u16 processor_rev_id; u16 processor_rev_id; unsigned char nb_rev_id; u8 nb_rev_id; unsigned char sb_rev_id; u8 sb_rev_id; unsigned char bios_api_rev; u8 bios_api_rev; unsigned char reserved1[3]; u8 reserved1[3]; unsigned int match_reg[8]; u32 match_reg[8]; }; } __attribute__((packed)); struct microcode_amd { struct microcode_amd { struct microcode_header_amd hdr; struct microcode_header_amd hdr; Loading Loading @@ -109,7 +110,7 @@ static int get_matching_microcode(int cpu, void *mc, int rev) { { struct microcode_header_amd *mc_header = mc; struct microcode_header_amd *mc_header = mc; unsigned int current_cpu_id; unsigned int current_cpu_id; unsigned int equiv_cpu_id = 0x00; u16 equiv_cpu_id = 0; unsigned int i = 0; unsigned int i = 0; BUG_ON(equiv_cpu_table == NULL); BUG_ON(equiv_cpu_table == NULL); Loading @@ -117,7 +118,7 @@ static int get_matching_microcode(int cpu, void *mc, int rev) while (equiv_cpu_table[i].installed_cpu != 0) { while (equiv_cpu_table[i].installed_cpu != 0) { if (current_cpu_id == equiv_cpu_table[i].installed_cpu) { if (current_cpu_id == equiv_cpu_table[i].installed_cpu) { equiv_cpu_id = equiv_cpu_table[i].equiv_cpu & 0xffff; equiv_cpu_id = equiv_cpu_table[i].equiv_cpu; break; break; } } i++; i++; Loading