On 25/10/2021 11:59, Peter Zijlstra wrote: > On Thu, Oct 21, 2021 at 05:21:10AM -0700, Nadav Amit wrote: >> From: Nadav Amit <namit@xxxxxxxxxx> >> Add a check to prevent access_error() from returning mistakenly that >> page-faults due to instruction fetch are not allowed. Intel SDM does not >> indicate whether "instruction fetch" and "write" in the hardware error >> code are mutual exclusive, so check both before returning whether the >> access is allowed. > Dave, can we get that clarified? It seems a bit naf and leads to > confusing code IMO. There is no such thing as an instruction fetch (a read) causing a modification to the mapping. From this point of view, you'd never expect to see them both set. However, be aware that INSTR is only reported for NX || SMEP. Without either, instruction vs data accesses are distinguished internally (can be demonstrated with SMAP) but not visible in the pagefault error code. ~Andrew