|
@@ -223,19 +223,16 @@ static int __init extlog_init(void)
|
|
|
u64 cap;
|
|
|
int rc;
|
|
|
|
|
|
+ rdmsrl(MSR_IA32_MCG_CAP, cap);
|
|
|
+
|
|
|
+ if (!(cap & MCG_ELOG_P) || !extlog_get_l1addr())
|
|
|
+ return -ENODEV;
|
|
|
+
|
|
|
if (get_edac_report_status() == EDAC_REPORTING_FORCE) {
|
|
|
pr_warn("Not loading eMCA, error reporting force-enabled through EDAC.\n");
|
|
|
return -EPERM;
|
|
|
}
|
|
|
|
|
|
- rc = -ENODEV;
|
|
|
- rdmsrl(MSR_IA32_MCG_CAP, cap);
|
|
|
- if (!(cap & MCG_ELOG_P))
|
|
|
- return rc;
|
|
|
-
|
|
|
- if (!extlog_get_l1addr())
|
|
|
- return rc;
|
|
|
-
|
|
|
rc = -EINVAL;
|
|
|
/* get L1 header to fetch necessary information */
|
|
|
l1_hdr_size = sizeof(struct extlog_l1_head);
|