Re: [PATCH 17/30] x86, kaiser: map debug IDT tables

From: Thomas Gleixner
Date: Mon Nov 20 2017 - 15:54:19 EST


On Mon, 20 Nov 2017, Andy Lutomirski wrote:

> On Fri, Nov 10, 2017 at 11:31 AM, Dave Hansen
> <dave.hansen@xxxxxxxxxxxxxxx> wrote:
> >
> > From: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
> >
> > The IDT is another structure which the CPU references via a
> > virtual address. It also obviously needs these to handle an
> > interrupt in userspace, so these need to be mapped into the user
> > copy of the page tables.
>
> Why would the debug IDT ever be used in user mode? IIRC it's a total
> turd related to avoiding crap nesting inside NMI. Or am I wrong?

No. It's called from the TRACE_IRQS macros in the ASM entry code and from
do_nmi().

> If it *is* used in user mode, then we have a bug and it should be in
> the IDT to avoid address leaks just like the normal IDT.

It's not so this can go away. Good catch.

Thanks,

tglx