On Sat, May 4, 2019 at 1:12 PM Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote: > > As an aside, is it even *possible* to get #BP from v8086 mode? On a quick SDM read, the INT3 instruction causes #GP if VM=1 and IOPL<3. And, if we allow vm86() to have IOPL=3, we should just remove that ability. It’s nuts. We've definitely historically allowed IOPL=3 with the whole "iopl()" system call. And yes, afaik it works together with the vm86 system call too. I think we copy the unsafe bits from the original eflags, so if you do iopl(3) followed by vm86(), you will be running in vm86 mode with iopl 3. > (We should maybe consider a config option for iopl() that defaults off. We’ve supported ioperm() for a long, long time.) It's entirely possible that nobody uses iopl() and we should make it a config option that defaults to off. But we've already done that with the VM86 support entirely, and I'm not sure modern distros even enable it. And obviously vm86 mode isn't available at all with a 64-bit kernel, so this is all slowly becoming more or less moot. Linus