On Sat, Sep 09, 2017 at 07:23:52PM +0200, Markus Trippelsdorf wrote:
> Hmm, the output is exactly the same as before your patch.

Bah, that patch doesn't account for the fact that we're rereading the
status field again in do_machine_check().

Ok, let's force MCi_ADDR out. Ontop:

---
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index c63c7ef326c7..e5580da2c491 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -240,8 +240,7 @@ static void __print_mce(struct mce *m)
        }
 
        pr_emerg(HW_ERR "TSC %llx ", m->tsc);
-       if (m->addr)
-               pr_cont("ADDR %llx ", m->addr);
+       pr_cont("ADDR %llx ", m->addr);
        if (m->misc)
                pr_cont("MISC %llx ", m->misc);
 
@@ -636,8 +635,9 @@ static void mce_read_aux(struct mce *m, int i)
        if (m->status & MCI_STATUS_MISCV)
                m->misc = mce_rdmsrl(msr_ops.misc(i));
 
+       m->addr = mce_rdmsrl(msr_ops.addr(i));
+
        if (m->status & MCI_STATUS_ADDRV) {
-               m->addr = mce_rdmsrl(msr_ops.addr(i));
 
                /*
                 * Mask the reported address by the reported granularity.

---
Thanks.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

Reply via email to