Messages in this thread | | | From | Andy Lutomirski <> | Date | Thu, 30 Jul 2015 14:22:06 -0700 | Subject | Re: Dealing with the NMI mess |
| |
On Thu, Jul 30, 2015 at 8:41 AM, Paolo Bonzini <pbonzini@redhat.com> wrote: > > > On 24/07/2015 23:08, Andy Lutomirski wrote: >> user_icebp is set if int $0x01 happens, except it isn't because user >> code can't actually do that -- it'll cause #GP instead. >> >> user_icebp is also set if the user has a bloody in-circuit emulator, >> given the name. But who on Earth has one of those on a system new >> enough to run Linux and, even if they have one, why on Earth are they >> using it to send SIGTRAP. > > You do not need either "int $0x01" or an ICE to set user_icebp = 1. You > can use the 0xf1 opcode, which is kinda like 0xcc but generates #DB > instead of #BP.
Great. There's an opcode that invokes an interrupt gate that's not marked as allowing unprivileged access, and that opcode doesn't appear in the SDM. It appears in the APM opcode map with no explanation at all.
Thanks, CPU vendors.
--Andy
| |