On June 20, 2025 4:21:38 PM PDT, Dave Hansen <dave.hansen@xxxxxxxxx> wrote: >On 6/20/25 16:08, Andrew Cooper wrote: >>> But, the resulting code is wonky. It needs to do something more like this: >>> >>> if ((error_code & (X86_PF_WRITE | X86_PF_USER)) != X86_PF_USER) >>> return false; >>> >>> if (error_code & X86_PF_INSTR)) >>> return __emulate_vsyscall(regs, address); >> To do this, LASS needs a proper interlink against NX || SMEP. >> >> If neither NX nor SMEP are active, the CPU does not report X86_PF_INSTR, >> meaning that fetches are reported as plain reads. >Interesting point. > >I think the easiest way to do this is just make a cpuid_deps[] entry for >LASS and NX. If there's a CPU where LASS is available but where NX isn't >available, we have much bigger problems on our hands. Indeed. There is exactly zero reason to support this case.