Other than apparently commonly assumed, the bound instruction does not require the corresponding IDT entry to have DPL 3. From: Jan Beulich --- 2.6.14/arch/x86_64/kernel/traps.c 2005-10-28 02:02:08.000000000 +0200 +++ 2.6.14-x86_64-bound/arch/x86_64/kernel/traps.c 2005-11-07 09:33:53.000000000 +0100 @@ -917,8 +917,8 @@ void __init trap_init(void) set_intr_gate_ist(1,&debug,DEBUG_STACK); set_intr_gate_ist(2,&nmi,NMI_STACK); set_system_gate(3,&int3); - set_system_gate(4,&overflow); /* int4-5 can be called from all */ - set_system_gate(5,&bounds); + set_system_gate(4,&overflow); /* int4 can be called from all */ + set_intr_gate(5,&bounds); set_intr_gate(6,&invalid_op); set_intr_gate(7,&device_not_available); set_intr_gate_ist(8,&double_fault, DOUBLEFAULT_STACK);