Messages in this thread Patches in this message | | | Date | Thu, 24 Nov 2005 15:27:01 -0500 | From | Mark Lord <> | Subject | Re: [PATCH 2.6.15-rc2] b44: missing netif_wake_queue() in b44_open() |
| |
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 <lkml@rtr.ca>
--- 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; } --- 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; } | |