Lines Matching full:mci
567 struct mem_ctl_info *mci; in skx_register_mci() local
579 mci = edac_mc_alloc(imc->mc, ARRAY_SIZE(layers), layers, in skx_register_mci()
582 if (unlikely(!mci)) in skx_register_mci()
585 edac_dbg(0, "MC#%d: mci = %p\n", imc->mc, mci); in skx_register_mci()
587 /* Associate skx_dev and mci for future usage */ in skx_register_mci()
588 imc->mci = mci; in skx_register_mci()
589 pvt = mci->pvt_info; in skx_register_mci()
592 mci->ctl_name = kasprintf(GFP_KERNEL, "%s#%d IMC#%d", ctl_name, in skx_register_mci()
594 if (!mci->ctl_name) { in skx_register_mci()
599 mci->mtype_cap = MEM_FLAG_DDR4 | MEM_FLAG_NVDIMM; in skx_register_mci()
601 mci->mtype_cap |= MEM_FLAG_DDR5; in skx_register_mci()
602 mci->edac_ctl_cap = EDAC_FLAG_NONE; in skx_register_mci()
603 mci->edac_cap = EDAC_FLAG_NONE; in skx_register_mci()
604 mci->mod_name = mod_str; in skx_register_mci()
605 mci->dev_name = dev_name; in skx_register_mci()
606 mci->ctl_page_to_phys = NULL; in skx_register_mci()
608 rc = get_dimm_config(mci, cfg); in skx_register_mci()
613 mci->pdev = dev; in skx_register_mci()
616 if (unlikely(edac_mc_add_mc(mci))) { in skx_register_mci()
625 kfree(mci->ctl_name); in skx_register_mci()
627 edac_mc_free(mci); in skx_register_mci()
628 imc->mci = NULL; in skx_register_mci()
635 struct mem_ctl_info *mci = imc->mci; in skx_unregister_mci() local
637 if (!mci) in skx_unregister_mci()
640 edac_dbg(0, "MC%d: mci = %p\n", imc->mc, mci); in skx_unregister_mci()
643 edac_mc_del_mc(mci->pdev); in skx_unregister_mci()
645 edac_dbg(1, "%s: free mci struct\n", mci->ctl_name); in skx_unregister_mci()
646 kfree(mci->ctl_name); in skx_unregister_mci()
647 edac_mc_free(mci); in skx_unregister_mci()
650 static void skx_mce_output_error(struct mem_ctl_info *mci, in skx_mce_output_error() argument
723 edac_mc_handle_error(tp_event, mci, core_err_cnt, in skx_mce_output_error()
751 struct mem_ctl_info *mci; in skx_mce_check_error() local
778 mci = res.dev->imc[res.imc].mci; in skx_mce_check_error()
780 if (!mci) in skx_mce_check_error()
788 skx_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n"); in skx_mce_check_error()
790 skx_mc_printk(mci, KERN_DEBUG, "CPU %d: Machine Check %s: 0x%llx " in skx_mce_check_error()
793 skx_mc_printk(mci, KERN_DEBUG, "TSC 0x%llx ", mce->tsc); in skx_mce_check_error()
794 skx_mc_printk(mci, KERN_DEBUG, "ADDR 0x%llx ", mce->addr); in skx_mce_check_error()
795 skx_mc_printk(mci, KERN_DEBUG, "MISC 0x%llx ", mce->misc); in skx_mce_check_error()
797 skx_mc_printk(mci, KERN_DEBUG, "PROCESSOR %u:0x%x TIME %llu SOCKET " in skx_mce_check_error()
801 skx_mce_output_error(mci, mce, &res); in skx_mce_check_error()
818 if (d->imc[i].mci) in skx_remove()