|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Issue with waitqueues and Intel CET-SS
Hi,
I was reviewing xen/common/wait.c:__prepare_to_wait() and I think I've
identified an incompatibility with shadow stacks like Intel CET-SS.
The inline asm does:
"call 1f;"
"1: addq $2f-1b,(%%rsp);"
"sub %%esp,%%ecx;"
"cmp %3,%%ecx;"
"ja 3f;"
"mov %%rsp,%%rsi;"
/* check_wakeup_from_wait() longjmp()'s to this point. */
"2: rep movsb;"
"mov %%rsp,%%rsi;"
"3: pop %%rax;"
`call 1f` gets the address of the code, but the address is popped off
without ret. This will leave the shadow stack out-of-sync which will
trigger the protection. Is my analysis correct?
Regards,
Jason
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |