Also, this does not work I think, because there isAh, sorry. I really was a bit quick on this one. I agree nothing would ever call
add_wait_queue()/remove_wait_queue() pair. Adding it is not easy
because KVM is using a struct rcuwait here instead of a wait_queue_t.
woken_wake_function, hence my patch doesn't make sense. Looking at the rcuwait
code I don't see something similar to wait_woken.
Do you see some other way we could avoid the pattern susceptible to the nested
sleeping problem?