While I was the one to introduce it, I don't think it is correct: A bogus continuation call issued by a tool stack domain may find another continuation in progress. IOW we've been asserting caller controlled state (which is reachable only via a domctl), and the early (lock-less) check in paging_domctl() helps in a limited way only.
Signed-off-by: Jan Beulich <[email protected]> --- a/xen/arch/x86/mm/paging.c +++ b/xen/arch/x86/mm/paging.c @@ -431,8 +431,8 @@ static int paging_log_dirty_op(struct do d->arch.paging.preempt.op != sc->op ) { paging_unlock(d); - ASSERT(!resuming); - domain_unpause(d); + if ( !resuming ) + domain_unpause(d); return -EBUSY; }
