[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen master] x86/mm: replace bogus assertion in paging_log_dirty_op()



commit 0956aa2219745a198bb6a0a99e2108a3c09b280e
Author:     Jan Beulich <jbeulich@xxxxxxxx>
AuthorDate: Wed May 3 13:38:30 2023 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed May 3 13:38:30 2023 +0200

    x86/mm: replace bogus assertion in paging_log_dirty_op()
    
    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@xxxxxxxx>
    Acked-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
---
 xen/arch/x86/mm/paging.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
index b1d6bfe10e..34d833251b 100644
--- 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 domain *d,
               d->arch.paging.preempt.op != sc->op )
     {
         paging_unlock(d);
-        ASSERT(!resuming);
-        domain_unpause(d);
+        if ( !resuming )
+            domain_unpause(d);
         return -EBUSY;
     }
 
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.