Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df58d035 authored by Russell King's avatar Russell King Committed by Russell King
Browse files

[ARM] Fix "apm -s" command hang



Fix an apparant hang with the "apm -s" command.  We omitted to wake up
this process once resume had completed.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent b729c09a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -340,6 +340,7 @@ apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
			wait_event(apm_suspend_waitqueue,
				   as->suspend_state == SUSPEND_DONE);
		} else {
			as->suspend_state = SUSPEND_WAIT;
			up(&state_lock);

			/*
@@ -349,8 +350,14 @@ apm_ioctl(struct inode * inode, struct file *filp, u_int cmd, u_long arg)
			 * acknowledged.
			 */
			err = queue_suspend_event(APM_USER_SUSPEND, as);
			if (err < 0)
			if (err < 0) {
				/*
				 * Avoid taking the lock here - this
				 * should be fine.
				 */
				as->suspend_state = SUSPEND_NONE;
				break;
			}

			if (err > 0)
				apm_suspend();