> > Something like this: > > ENTRY(debug) > > testl $0x3, 4(%esp) > > jz handle_kernel_mode_debug > > > > This check is insufficient, it can go the wrong way if the interrupted > taks is in vm 86 mode (and open a big security hole, I believe). Right. This test from ret_from_intr could be used instead: push %es push %ds push %eax movl 8(%esp), %eax movb 4(%esp), %al testl $(VM_MASK | 3), %eax jz handle_kernel_mode There is however a potential register stall for the eax read after the al write. BTW, vm86 has the VM flag set so the comment in ret_from_intr is wrong. The code seems to be right though.