lguest: move process freezing before pending signals check
[~shefty/rdma-dev.git] / drivers / lguest / core.c
index 5c13e93898f91f8502c911642fa91075aefcbf79..b5fdcb78a75b8620e61288c5717f450b2c588592 100644 (file)
@@ -232,6 +232,13 @@ int run_guest(struct lg_cpu *cpu, unsigned long __user *user)
                        }
                }
 
+               /*
+                * All long-lived kernel loops need to check with this horrible
+                * thing called the freezer.  If the Host is trying to suspend,
+                * it stops us.
+                */
+               try_to_freeze();
+
                /* Check for signals */
                if (signal_pending(current))
                        return -ERESTARTSYS;
@@ -245,13 +252,6 @@ int run_guest(struct lg_cpu *cpu, unsigned long __user *user)
                if (irq < LGUEST_IRQS)
                        try_deliver_interrupt(cpu, irq, more);
 
-               /*
-                * All long-lived kernel loops need to check with this horrible
-                * thing called the freezer.  If the Host is trying to suspend,
-                * it stops us.
-                */
-               try_to_freeze();
-
                /*
                 * Just make absolutely sure the Guest is still alive.  One of
                 * those hypercalls could have been fatal, for example.