Re: 2.6.18-rc4-mm1: eth0: trigger_send() called with the transmitter busy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Monday 14 August 2006 22:06, Laurent Riffard wrote:
> Le 14.08.2006 19:47, Laurent Riffard a écrit :
> > Le 14.08.2006 18:50, Andrew Morton a écrit :
> >> On Mon, 14 Aug 2006 16:38:47 +0200
> >> Laurent Riffard <[email protected]> wrote:
> >>
> >>> Le 13.08.2006 10:24, Andrew Morton a __crit :
> >>>> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.18-rc4/2.6.18-rc4-mm1/
> >>> Hello,
> >>>
> >>> This morning, while trying to suspend to disk, my box started to loop 
> >>> displaying the following message:
> >>> eth0: trigger_send() called with the transmitter busy.
> >>>
> >>> Here is the scenario. I booted 2.6.18-rc4-mm1 with this command line:
> >>> root=/dev/vglinux1/lvroot video=vesafb:ywrap,mtrr splash=silent resume=/dev/hdb7 [email protected]/,@192.168.0.1/00:0E:9B:91:ED:72 init 1
> >>>
> >>> Then I issued:
> >>> # echo 6 > /proc/sys/kernel/printk
> >>> # echo disk > /sys/power/state
> >> ne2k isn't <ahem> the most actively-maintained driver.
> >>
> >> But most (I think all) net drivers have problems during suspend when
> >> netconsole is active.  Does disabling netconsole help?
> > 
> > Yes it does. 
> >  
> >> Did this operation work OK in earlier kernels, with netconsole enabled?
> > 
> > It's the first time I see such a message. I can't speak for 2.6.18-rc3-mm2 
> > because it could not suspend at all (did hang right after 
> > "echo disk > /sys/power/state"), but it worked in earlier kernels.
> > 
> > I'll try with plain 2.6.18-rc4.
> 
> Same problem with 2.6.18-rc4.

I think something like this will help (untested):

 kernel/power/disk.c |    7 +++++++
 1 files changed, 7 insertions(+)

Index: linux-2.6.18-rc4-mm1/kernel/power/disk.c
===================================================================
--- linux-2.6.18-rc4-mm1.orig/kernel/power/disk.c
+++ linux-2.6.18-rc4-mm1/kernel/power/disk.c
@@ -119,8 +119,10 @@ int pm_suspend_disk(void)
 	if (error)
 		return error;
 
+	suspend_console();
 	error = device_suspend(PMSG_FREEZE);
 	if (error) {
+		resume_console();
 		printk("Some devices failed to suspend\n");
 		unprepare_processes();
 		return error;
@@ -133,6 +135,7 @@ int pm_suspend_disk(void)
 
 	if (in_suspend) {
 		device_resume();
+		resume_console();
 		pr_debug("PM: writing image.\n");
 		error = swsusp_write();
 		if (!error)
@@ -148,6 +151,7 @@ int pm_suspend_disk(void)
 	swsusp_free();
  Done:
 	device_resume();
+	resume_console();
 	unprepare_processes();
 	return error;
 }
@@ -212,7 +216,9 @@ static int software_resume(void)
 
 	pr_debug("PM: Preparing devices for restore.\n");
 
+	suspend_console();
 	if ((error = device_suspend(PMSG_PRETHAW))) {
+		resume_console();
 		printk("Some devices failed to suspend\n");
 		swsusp_free();
 		goto Thaw;
@@ -224,6 +230,7 @@ static int software_resume(void)
 	swsusp_resume();
 	pr_debug("PM: Restore failed, recovering.n");
 	device_resume();
+	resume_console();
  Thaw:
 	unprepare_processes();
  Done:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux