Lines Matching full:mc

65 static int find_matching_signature(void *mc, unsigned int csig, int cpf)  in find_matching_signature()  argument
67 struct microcode_header_intel *mc_hdr = mc; in find_matching_signature()
79 ext_hdr = mc + get_datasize(mc_hdr) + MC_HEADER_SIZE; in find_matching_signature()
93 static int has_newer_microcode(void *mc, unsigned int csig, int cpf, int new_rev) in has_newer_microcode() argument
95 struct microcode_header_intel *mc_hdr = mc; in has_newer_microcode()
100 return find_matching_signature(mc, csig, cpf); in has_newer_microcode()
180 static int microcode_sanity_check(void *mc, int print_err) in microcode_sanity_check() argument
183 struct microcode_header_intel *mc_header = mc; in microcode_sanity_check()
215 ext_header = mc + MC_HEADER_SIZE + data_size; in microcode_sanity_check()
249 orig_sum += ((u32 *)mc)[i]; in microcode_sanity_check()
443 static void save_mc_for_early(struct ucode_cpu_info *uci, u8 *mc, unsigned int size) in save_mc_for_early() argument
450 save_microcode_patch(uci, mc, size); in save_mc_for_early()
510 struct microcode_intel *mc; in print_ucode() local
514 mc = uci->mc; in print_ucode()
515 if (!mc) in print_ucode()
522 *current_mc_date_p = mc->hdr.date; in print_ucode()
528 struct microcode_intel *mc; in print_ucode() local
530 mc = uci->mc; in print_ucode()
531 if (!mc) in print_ucode()
534 print_ucode_info(uci, mc->hdr.date); in print_ucode()
540 struct microcode_intel *mc; in apply_microcode_early() local
543 mc = uci->mc; in apply_microcode_early()
544 if (!mc) in apply_microcode_early()
553 if (rev >= mc->hdr.rev) { in apply_microcode_early()
565 native_wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); in apply_microcode_early()
568 if (rev != mc->hdr.rev) in apply_microcode_early()
576 print_ucode_info(uci, mc->hdr.date); in apply_microcode_early()
647 uci.mc = patch; in load_ucode_intel_bsp()
671 uci.mc = *iup; in load_ucode_intel_ap()
714 uci.mc = p; in reload_ucode_intel()
752 struct microcode_intel *mc; in apply_microcode_intel() local
762 mc = find_patch(uci); in apply_microcode_intel()
763 if (!mc) { in apply_microcode_intel()
764 mc = uci->mc; in apply_microcode_intel()
765 if (!mc) in apply_microcode_intel()
775 if (rev >= mc->hdr.rev) { in apply_microcode_intel()
787 wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); in apply_microcode_intel()
791 if (rev != mc->hdr.rev) { in apply_microcode_intel()
793 cpu, mc->hdr.rev); in apply_microcode_intel()
800 mc->hdr.date & 0xffff, in apply_microcode_intel()
801 mc->hdr.date >> 24, in apply_microcode_intel()
802 (mc->hdr.date >> 16) & 0xff); in apply_microcode_intel()
825 u8 *new_mc = NULL, *mc = NULL; in generic_load_microcode() local
849 /* For performance reasons, reuse mc area when possible */ in generic_load_microcode()
850 if (!mc || mc_size > curr_mc_size) { in generic_load_microcode()
851 vfree(mc); in generic_load_microcode()
852 mc = vmalloc(mc_size); in generic_load_microcode()
853 if (!mc) in generic_load_microcode()
858 memcpy(mc, &mc_header, sizeof(mc_header)); in generic_load_microcode()
859 data = mc + sizeof(mc_header); in generic_load_microcode()
861 microcode_sanity_check(mc, 1) < 0) { in generic_load_microcode()
867 if (has_newer_microcode(mc, csig, cpf, new_rev)) { in generic_load_microcode()
870 new_mc = mc; in generic_load_microcode()
872 mc = NULL; /* trigger new vmalloc */ in generic_load_microcode()
877 vfree(mc); in generic_load_microcode()
887 vfree(uci->mc); in generic_load_microcode()
888 uci->mc = (struct microcode_intel *)new_mc; in generic_load_microcode()
891 * If early loading microcode is supported, save this mc into in generic_load_microcode()