On Fri, 8 Dec 2017, Andy Lutomirski wrote: > Can we take a step back here? I think there are four vaguely sane > ways to make the LDT work: > > 1. The way it is right now -- in vmalloc space. The only real > downside is that it requires exposing that part of vmalloc space in > the user tables, which is a bit gross. > > 2. In some fixmap-like space, which is what my patch does, albeit > buggily. This requires a PGD that we treat as per-mm, not per-cpu, > but that's not so bad. > > 3. In one of the user PGDs but above TASK_SIZE_MAX. This is > functionally almost identical to #2, except that there's more concern > about exploits that write past TASK_SIZE_MAX. > > 4. In an actual vma. I don't see the benefit of doing this at all -- > it's just like #2 except way more error prone. Hell, you have to make > sure that you can't munmap or mremap it, which isn't a consideration > at all with the other choices.
Why? You can unmap vdso or uprobe or whatever VMAs and you will simply die. You get what you asked for. Thanks, tglx