On 8/22/22 00:06, Michal Luczaj wrote: > Note that doing this the ASM_TRY() way would require extending > setup_idt() (to handle #DB) and introducing another ASM_TRY() variant > (one without the initial `movl $0, %%gs:4`). Replying to self as I was wrong regarding the need for another ASM_TRY() variant. Once setup_idt() is told to handle #DB, test can be simplified to something like asm volatile("push %[ss]\n\t" __ASM_TRY(KVM_FEP "pop %%ss", "1f") "ex_blocked: mov $1, %[success]\n\t" "1:" : [success] "+g" (success) : [ss] "r" (read_ss()) : "memory"); Should I resend the patch? Sorry for the noise, Michal