[PATCH 0/8] [v2] x86/mm: page fault handling cleanups

From: Dave Hansen
Date: Fri Sep 28 2018 - 12:09:31 EST


Changes from v1:
* Take "space_" out of do_kern/user_addr_fault()
* Make "bad fault" comment in do_kern_addr_fault() less scary
* Add clarifying comment for the conditions under which
do_kern_addr_fault() is called.
* Remove mention of hw_error_code in search_exception_tables()
comment.
* Clarify that the exception tables spell out individual
instructions, not larger sections of code.
* Use PAGE_MASK in is_vsyscall_vaddr()
* Add some additional reasoning behind the code move when
moving the vsyscall handling to user address space handler
* Remove hard-coded ~0xfff and replace with PAGE_MASK

---

I went trying to clean up the spurious protection key checks.
But, I got distracted by some other warts in the code. I hope this
makes things more comprehendable with some improved structure,
commenting and naming.

We come out the other side of it with a new warning in for pkey
faults in the kernel portion of the address space, and removal
of some dead pkeys code, but no other functional changes.

There is a potential impact from moving the vsyscall emulation.
But, this does pass the x86 selftests without any fuss.

Cc: Sean Christopherson <sean.j.christopherson@xxxxxxxxx>
Cc: "Peter Zijlstra (Intel)" <peterz@xxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Jann Horn <jannh@xxxxxxxxxx>
Cc: x86@xxxxxxxxxx