Lines Matching refs:mc

103 int intel_find_matching_signature(void *mc, unsigned int csig, int cpf)  in intel_find_matching_signature()  argument
105 struct microcode_header_intel *mc_hdr = mc; in intel_find_matching_signature()
117 ext_hdr = mc + intel_microcode_get_datasize(mc_hdr) + MC_HEADER_SIZE; in intel_find_matching_signature()
143 int intel_microcode_sanity_check(void *mc, bool print_err, int hdr_type) in intel_microcode_sanity_check() argument
146 struct microcode_header_intel *mc_header = mc; in intel_microcode_sanity_check()
179 ext_header = mc + MC_HEADER_SIZE + data_size; in intel_microcode_sanity_check()
213 orig_sum += ((u32 *)mc)[i]; in intel_microcode_sanity_check()
246 static int has_newer_microcode(void *mc, unsigned int csig, int cpf, int new_rev) in has_newer_microcode() argument
248 struct microcode_header_intel *mc_hdr = mc; in has_newer_microcode()
253 return intel_find_matching_signature(mc, csig, cpf); in has_newer_microcode()
481 struct microcode_intel *mc; in apply_microcode_early() local
484 mc = uci->mc; in apply_microcode_early()
485 if (!mc) in apply_microcode_early()
494 if (rev >= mc->hdr.rev) { in apply_microcode_early()
508 native_wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); in apply_microcode_early()
511 if (rev != mc->hdr.rev) in apply_microcode_early()
517 print_ucode(old_rev, uci->cpu_sig.rev, mc->hdr.date); in apply_microcode_early()
519 print_ucode_info(old_rev, uci->cpu_sig.rev, mc->hdr.date); in apply_microcode_early()
587 uci.mc = patch; in load_ucode_intel_bsp()
610 uci.mc = *iup; in load_ucode_intel_ap()
648 uci.mc = p; in reload_ucode_intel()
678 struct microcode_intel *mc; in apply_microcode_intel() local
688 mc = find_patch(uci); in apply_microcode_intel()
689 if (!mc) { in apply_microcode_intel()
690 mc = uci->mc; in apply_microcode_intel()
691 if (!mc) in apply_microcode_intel()
701 if (rev >= mc->hdr.rev) { in apply_microcode_intel()
713 wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); in apply_microcode_intel()
717 if (rev != mc->hdr.rev) { in apply_microcode_intel()
719 cpu, mc->hdr.rev); in apply_microcode_intel()
726 mc->hdr.date & 0xffff, in apply_microcode_intel()
727 mc->hdr.date >> 24, in apply_microcode_intel()
728 (mc->hdr.date >> 16) & 0xff); in apply_microcode_intel()
751 u8 *new_mc = NULL, *mc = NULL; in generic_load_microcode() local
776 if (!mc || mc_size > curr_mc_size) { in generic_load_microcode()
777 vfree(mc); in generic_load_microcode()
778 mc = vmalloc(mc_size); in generic_load_microcode()
779 if (!mc) in generic_load_microcode()
784 memcpy(mc, &mc_header, sizeof(mc_header)); in generic_load_microcode()
785 data = mc + sizeof(mc_header); in generic_load_microcode()
787 intel_microcode_sanity_check(mc, true, MC_HEADER_TYPE_MICROCODE) < 0) { in generic_load_microcode()
793 if (has_newer_microcode(mc, csig, cpf, new_rev)) { in generic_load_microcode()
796 new_mc = mc; in generic_load_microcode()
798 mc = NULL; /* trigger new vmalloc */ in generic_load_microcode()
803 vfree(mc); in generic_load_microcode()
813 vfree(uci->mc); in generic_load_microcode()
814 uci->mc = (struct microcode_intel *)new_mc; in generic_load_microcode()