Lines Matching full:mc

97 bool intel_find_matching_signature(void *mc, struct cpu_signature *sig)  in intel_find_matching_signature()  argument
99 struct microcode_header_intel *mc_hdr = mc; in intel_find_matching_signature()
111 ext_hdr = mc + intel_microcode_get_datasize(mc_hdr) + MC_HEADER_SIZE; in intel_find_matching_signature()
125 * @mc: Pointer to the microcode file contents.
137 int intel_microcode_sanity_check(void *mc, bool print_err, int hdr_type) in intel_microcode_sanity_check() argument
140 struct microcode_header_intel *mc_header = mc; in intel_microcode_sanity_check()
173 ext_header = mc + MC_HEADER_SIZE + data_size; in intel_microcode_sanity_check()
207 orig_sum += ((u32 *)mc)[i]; in intel_microcode_sanity_check()
237 static void update_ucode_pointer(struct microcode_intel *mc) in update_ucode_pointer() argument
245 ucode_patch_va = mc; in update_ucode_pointer()
251 struct microcode_intel *mc; in save_microcode_patch() local
253 mc = kvmemdup(patch, size, GFP_KERNEL); in save_microcode_patch()
254 if (mc) in save_microcode_patch()
255 update_ucode_pointer(mc); in save_microcode_patch()
303 struct microcode_intel *mc, in __apply_microcode() argument
308 if (!mc) in __apply_microcode()
317 if (*cur_rev >= mc->hdr.rev) { in __apply_microcode()
323 native_wrmsrl(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits); in __apply_microcode()
326 if (rev != mc->hdr.rev) in __apply_microcode()
335 struct microcode_intel *mc = uci->mc; in apply_microcode_early() local
338 return __apply_microcode(uci, mc, &cur_rev); in apply_microcode_early()
395 uci.mc = get_microcode_blob(&uci, true); in save_builtin_microcode()
396 if (uci.mc) in save_builtin_microcode()
397 save_microcode_patch(uci.mc); in save_builtin_microcode()
407 uci.mc = get_microcode_blob(&uci, false); in load_ucode_intel_bsp()
410 if (uci.mc && apply_microcode_early(&uci) == UCODE_UPDATED) { in load_ucode_intel_bsp()
420 uci.mc = ucode_patch_va; in load_ucode_intel_ap()
421 if (uci.mc) in load_ucode_intel_ap()
428 struct ucode_cpu_info uci = { .mc = ucode_patch_va, }; in reload_ucode_intel()
430 if (uci.mc) in reload_ucode_intel()
443 struct microcode_intel *mc = ucode_patch_late; in apply_microcode_late() local
450 ret = __apply_microcode(uci, mc, &cur_rev); in apply_microcode_late()
493 u8 *new_mc = NULL, *mc = NULL; in parse_microcode_blobs() local
516 /* For performance reasons, reuse mc area when possible */ in parse_microcode_blobs()
517 if (!mc || mc_size > curr_mc_size) { in parse_microcode_blobs()
518 kvfree(mc); in parse_microcode_blobs()
519 mc = kvmalloc(mc_size, GFP_KERNEL); in parse_microcode_blobs()
520 if (!mc) in parse_microcode_blobs()
525 memcpy(mc, &mc_header, sizeof(mc_header)); in parse_microcode_blobs()
526 data = mc + sizeof(mc_header); in parse_microcode_blobs()
528 intel_microcode_sanity_check(mc, true, MC_HEADER_TYPE_MICROCODE) < 0) in parse_microcode_blobs()
534 if (!intel_find_matching_signature(mc, &uci->cpu_sig)) in parse_microcode_blobs()
543 new_mc = mc; in parse_microcode_blobs()
545 mc = NULL; in parse_microcode_blobs()
551 kvfree(mc); in parse_microcode_blobs()
559 kvfree(mc); in parse_microcode_blobs()