Re: [patch V2 05/17] x86/traps: Make interrupt enable/disable symmetric in C code

From: Josh Poimboeuf
Date: Wed Oct 23 2019 - 18:01:22 EST


On Wed, Oct 23, 2019 at 02:27:10PM +0200, Thomas Gleixner wrote:
> --- a/arch/x86/mm/fault.c
> +++ b/arch/x86/mm/fault.c
> @@ -1500,10 +1500,13 @@ static noinline void
> return;
>
> /* Was the fault on kernel-controlled part of the address space? */
> - if (unlikely(fault_in_kernel_space(address)))
> + if (unlikely(fault_in_kernel_space(address))) {
> do_kern_addr_fault(regs, hw_error_code, address);
> - else
> + } else {
> do_user_addr_fault(regs, hw_error_code, address);
> + if (regs->flags & X86_EFLAGS_IF)
> + local_irq_disable();
> + }

The corresponding irq enable is in do_user_addr_fault(), why not do the
disable there?

--
Josh