Re: [PATCH v4 2/5] x86/msr: Carry on after a non-"safe" MSR access fails without !panic_on_oops

From: Ingo Molnar
Date: Tue Mar 15 2016 - 06:22:54 EST



* Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:

> On Mon, Mar 14, 2016 at 11:40 AM, Linus Torvalds
> <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
> > On Mon, Mar 14, 2016 at 11:24 AM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
> >>
> >> The code in my queue is, literally:
> >>
> >> bool ex_handler_rdmsr_unsafe(const struct exception_table_entry *fixup,
> >> struct pt_regs *regs, int trapnr)
> >> {
> >> WARN_ONCE(1, "unchecked MSR access error: RDMSR from 0x%x",
> >> (unsigned int)regs->cx);
> >>
> >> /* Pretend that the read succeeded and returned 0. */
> >> regs->ip = ex_fixup_addr(fixup);
> >> regs->ax = 0;
> >> regs->dx = 0;
> >> return true;
> >> }
> >> EXPORT_SYMBOL(ex_handler_rdmsr_unsafe);
> >
> > I guess I can live with this, as long as we also extend the
> > early-fault handling to work with the special exception handlers.
>
> OK, will do. I need to rewrork the early IDT code a bit so it
> generates a real pt_regs layout, but that's arguably a cleanup anyway.

Ok, with that's I'm pretty happy about it as well.

Thanks,

Ingo