Lines Matching refs:mc

184 bool intel_find_matching_signature(void *mc, struct cpu_signature *sig)  in intel_find_matching_signature()  argument
186 struct microcode_header_intel *mc_hdr = mc; in intel_find_matching_signature()
198 ext_hdr = mc + intel_microcode_get_datasize(mc_hdr) + MC_HEADER_SIZE; in intel_find_matching_signature()
224 int intel_microcode_sanity_check(void *mc, bool print_err, int hdr_type) in intel_microcode_sanity_check() argument
227 struct microcode_header_intel *mc_header = mc; in intel_microcode_sanity_check()
260 ext_header = mc + MC_HEADER_SIZE + data_size; in intel_microcode_sanity_check()
294 orig_sum += ((u32 *)mc)[i]; in intel_microcode_sanity_check()
324 static void update_ucode_pointer(struct microcode_intel *mc) in update_ucode_pointer() argument
332 ucode_patch_va = mc; in update_ucode_pointer()
338 struct microcode_intel *mc; in save_microcode_patch() local
340 mc = kvmemdup(patch, size, GFP_KERNEL); in save_microcode_patch()
341 if (mc) in save_microcode_patch()
342 update_ucode_pointer(mc); in save_microcode_patch()
682 struct microcode_intel *mc, in __apply_microcode() argument
687 if (!mc) in __apply_microcode()
696 if (*cur_rev >= mc->hdr.rev) { in __apply_microcode()
702 native_wrmsrq(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); in __apply_microcode()
705 if (rev != mc->hdr.rev) in __apply_microcode()
714 struct microcode_intel *mc = uci->mc; in apply_microcode_early() local
717 return __apply_microcode(uci, mc, &cur_rev); in apply_microcode_early()
774 uci.mc = get_microcode_blob(&uci, true); in save_builtin_microcode()
775 if (uci.mc) in save_builtin_microcode()
776 save_microcode_patch(uci.mc); in save_builtin_microcode()
786 uci.mc = get_microcode_blob(&uci, false); in load_ucode_intel_bsp()
789 if (uci.mc && apply_microcode_early(&uci) == UCODE_UPDATED) { in load_ucode_intel_bsp()
799 uci.mc = ucode_patch_va; in load_ucode_intel_ap()
800 if (uci.mc) in load_ucode_intel_ap()
807 struct ucode_cpu_info uci = { .mc = ucode_patch_va, }; in reload_ucode_intel()
809 if (uci.mc) in reload_ucode_intel()
822 struct microcode_intel *mc = ucode_patch_late; in apply_microcode_late() local
829 ret = __apply_microcode(uci, mc, &cur_rev); in apply_microcode_late()
872 u8 *new_mc = NULL, *mc = NULL; in parse_microcode_blobs() local
896 if (!mc || mc_size > curr_mc_size) { in parse_microcode_blobs()
897 kvfree(mc); in parse_microcode_blobs()
898 mc = kvmalloc(mc_size, GFP_KERNEL); in parse_microcode_blobs()
899 if (!mc) in parse_microcode_blobs()
904 memcpy(mc, &mc_header, sizeof(mc_header)); in parse_microcode_blobs()
905 data = mc + sizeof(mc_header); in parse_microcode_blobs()
907 intel_microcode_sanity_check(mc, true, MC_HEADER_TYPE_MICROCODE) < 0) in parse_microcode_blobs()
913 if (!intel_find_matching_signature(mc, &uci->cpu_sig)) in parse_microcode_blobs()
922 new_mc = mc; in parse_microcode_blobs()
924 mc = NULL; in parse_microcode_blobs()
930 kvfree(mc); in parse_microcode_blobs()
938 kvfree(mc); in parse_microcode_blobs()