]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Revert "Freezer: Fix APM emulation breakage"
authorGreg Kroah-Hartman <gregkh@suse.de>
Sat, 15 Dec 2007 03:29:43 +0000 (19:29 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 15 Dec 2007 03:29:43 +0000 (19:29 -0800)
This reverts commit a6eda373a0fe1c4d169d0ec081518d68323428ab.

It causes a build breakage.

Thanks to Chuck Ebbert <cebbert@redhat.com> for pointing it out.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/char/apm-emulation.c

index 72183bd1b3fcc9380862975218385f4ae36c3eca..ec116df919d97c043b45ed89637e73624d59810f 100644 (file)
@@ -295,6 +295,7 @@ static int
 apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
 {
        struct apm_user *as = filp->private_data;
+       unsigned long flags;
        int err = -EINVAL;
 
        if (!as->suser || !as->writer)
@@ -330,16 +331,10 @@ apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
                         * Wait for the suspend/resume to complete.  If there
                         * are pending acknowledges, we wait here for them.
                         */
-                       freezer_do_not_count();
+                       flags = current->flags;
 
                        wait_event(apm_suspend_waitqueue,
                                   as->suspend_state == SUSPEND_DONE);
-
-                       /*
-                        * Since we are waiting until the suspend is done, the
-                        * try_to_freeze() in freezer_count() will not trigger
-                        */
-                       freezer_count();
                } else {
                        as->suspend_state = SUSPEND_WAIT;
                        mutex_unlock(&state_lock);
@@ -367,10 +362,14 @@ apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
                         * Wait for the suspend/resume to complete.  If there
                         * are pending acknowledges, we wait here for them.
                         */
-                       wait_event_freezable(apm_suspend_waitqueue,
+                       flags = current->flags;
+
+                       wait_event_interruptible(apm_suspend_waitqueue,
                                         as->suspend_state == SUSPEND_DONE);
                }
 
+               current->flags = flags;
+
                mutex_lock(&state_lock);
                err = as->suspend_result;
                as->suspend_state = SUSPEND_NONE;