Jeff Garzik wrote: > Nope. There's no need to wake the queue. > > 1) Use netif_start_queue() rather than netif_wake_queue(), in b44_open() > > 2) OTOH, netif_wake_queue() appears to be missing from the end of > b44_resume(), which has highly similar code. Ah. Thanks, Jeff! I guess the e100.c driver was a bad example to copy here. Fixed, tested, still works fine. Patch now updated. >>> This patch fixes a problem plaguing Dell notebooks with >>> built-in b44 ethernet: The driver refuses to transmit packets >>> of any kind until after the first 5-second tx_timeout occurs. >>> This bug causes DHCP negotiation to fail (timeout) during >>> installation of Ubuntu Linux. >>> >>> One-liner fix. Please review (and apply if you like it). Signed-off-by: Mark Lord --- linux-2.6.15-rc2/drivers/net/b44.c 2005-11-19 22:25:03.000000000 -0500 +++ linux/drivers/net/b44.c 2005-11-24 15:20:47.000000000 -0500 @@ -1417,6 +1417,7 @@ add_timer(&bp->timer); b44_enable_ints(bp); + netif_start_queue(dev); /* prevent the initial tx_timeout() we otherwise see */ out: return err; } @@ -2113,6 +2114,7 @@ add_timer(&bp->timer); b44_enable_ints(bp); + netif_wake_queue(dev); return 0; }