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

Commit f194d132 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
  ACPI: suspend: old debugging hacks sneaked back
  Freezer: Fix JFFS2 garbage collector freezing issue (rev. 2)
  HWMON: coretemp, suspend fix
  Freezer: Fix APM emulation breakage
  Freezer: Fix s2disk resume from initrd
parents 09f3eca2 982286d1
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -35,10 +35,6 @@ wakeup_code:
	wakeup_code_start = .
	.code16

 	movw	$0xb800, %ax
	movw	%ax,%fs
	movw	$0x0e00 + 'L', %fs:(0x10)

	cli
	cld

+8 −7
Original line number Diff line number Diff line
@@ -295,7 +295,6 @@ 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)
@@ -331,10 +330,16 @@ 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.
			 */
			flags = current->flags;
			freezer_do_not_count();

			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);
@@ -362,14 +367,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.
			 */
			flags = current->flags;

			wait_event_interruptible(apm_suspend_waitqueue,
			wait_event_freezable(apm_suspend_waitqueue,
					 as->suspend_state == SUSPEND_DONE);
		}

		current->flags = flags;

		mutex_lock(&state_lock);
		err = as->suspend_result;
		as->suspend_state = SUSPEND_NONE;
+2 −3
Original line number Diff line number Diff line
@@ -337,11 +337,10 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,

	switch (action) {
	case CPU_ONLINE:
	case CPU_ONLINE_FROZEN:
	case CPU_DOWN_FAILED:
		coretemp_device_add(cpu);
		break;
	case CPU_DEAD:
	case CPU_DEAD_FROZEN:
	case CPU_DOWN_PREPARE:
		coretemp_device_remove(cpu);
		break;
	}
+1 −1
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ static int jffs2_garbage_collect_thread(void *_c)

		/* Put_super will send a SIGKILL and then wait on the sem.
		 */
		while (signal_pending(current)) {
		while (signal_pending(current) || freezing(current)) {
			siginfo_t info;
			unsigned long signr;

+9 −3
Original line number Diff line number Diff line
@@ -55,12 +55,18 @@ static void __init handle_initrd(void)
	sys_mount(".", "/", NULL, MS_MOVE, NULL);
	sys_chroot(".");

	/*
	 * In case that a resume from disk is carried out by linuxrc or one of
	 * its children, we need to tell the freezer not to wait for us.
	 */
	current->flags |= PF_FREEZER_SKIP;

	pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
	if (pid > 0)
		while (pid != sys_wait4(-1, NULL, 0, NULL)) {
			try_to_freeze();
		while (pid != sys_wait4(-1, NULL, 0, NULL))
			yield();
		}

	current->flags &= ~PF_FREEZER_SKIP;

	/* move initrd to rootfs' /old */
	sys_fchdir(old_fd);