---

 25-akpm/kernel/power/swsusp.c |    4 ++++
 1 files changed, 4 insertions(+)

diff -puN kernel/power/swsusp.c~swsusp-stop-DMA-on-resume-fix kernel/power/swsusp.c
--- 25/kernel/power/swsusp.c~swsusp-stop-DMA-on-resume-fix	Tue Jan 20 16:04:44 2004
+++ 25-akpm/kernel/power/swsusp.c	Tue Jan 20 16:05:27 2004
@@ -59,6 +59,7 @@
 #include <linux/buffer_head.h>
 #include <linux/swapops.h>
 #include <linux/bootmem.h>
+#include <linux/console.h>
 
 #include <asm/uaccess.h>
 #include <asm/mmu_context.h>
@@ -607,7 +608,10 @@ void do_magic_resume_2(void)
 	device_power_up();
 	spin_unlock_irq(&suspend_pagedir_lock);
 	device_resume();
+
+	acquire_console_sem();
 	update_screen(fg_console);	/* Hmm, is this the problem? */
+	release_console_sem();
 
 	PRINTK( "Fixing swap signatures... " );
 	mark_swapfiles(((swp_entry_t) {0}), MARK_SWAP_RESUME);

_