]> xenbits.xensource.com Git - xen.git/commitdiff
x86/mm: replace bogus assertion in paging_log_dirty_op()
authorJan Beulich <jbeulich@suse.com>
Wed, 3 May 2023 11:38:30 +0000 (13:38 +0200)
committerJan Beulich <jbeulich@suse.com>
Wed, 3 May 2023 11:38:30 +0000 (13:38 +0200)
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 <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
xen/arch/x86/mm/paging.c

index b1d6bfe10efa9381d372c1ca518bde154254ab5a..34d833251b786d120942d636f880308216621e04 100644 (file)
@@ -431,8 +431,8 @@ static int paging_log_dirty_op(struct domain *d,
               d->arch.paging.preempt.op != sc->op )
     {
         paging_unlock(d);
-        ASSERT(!resuming);
-        domain_unpause(d);
+        if ( !resuming )
+            domain_unpause(d);
         return -EBUSY;
     }