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

From: Andy Lutomirski
Date: Mon Mar 14 2016 - 14:49:19 EST


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.

--Andy