Messages in this thread | | | Date | Mon, 8 Sep 2003 17:09:02 -0700 | From | Andrew Morton <> | Subject | Re: possibly bug in 8139cp? (WAS Re: BUG: 2.4.23-pre3 + ifconfig) |
| |
Jeff Garzik <jgarzik@pobox.com> wrote: > > Andrew Morton wrote: > > diff -puN include/linux/netdevice.h~ifdown-lockup-fix include/linux/netdevice.h > > --- 25/include/linux/netdevice.h~ifdown-lockup-fix Mon Sep 8 13:20:28 2003 > > +++ 25-akpm/include/linux/netdevice.h Mon Sep 8 13:20:34 2003 > > @@ -854,7 +854,7 @@ static inline void netif_rx_complete(str > > > > static inline void netif_poll_disable(struct net_device *dev) > > { > > - while (test_and_set_bit(__LINK_STATE_RX_SCHED, &dev->state)) { > > + while (test_bit(__LINK_STATE_RX_SCHED, &dev->state)) { > > /* No hurry. */ > > current->state = TASK_INTERRUPTIBLE; > > schedule_timeout(1); > > > > > no that breaks other things. >
The only thing it can break is tg3, which appears to be placing a competing interpretation upon the handling of this flag.
Given that tg3_netif_stop() will set __LINK_STATE_RX_SCHED and dev_close() will then loop on it getting cleared again there appears to be a risk that a dev_close() against tg3 will lock up.
It's all very unclear. And uncommented, but that is experientially the same thing :(
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |