netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* netif_poll_disable() hangs
@ 2003-09-08  6:21 Andrew Morton
  2003-09-08  7:17 ` Jeff Garzik
  2003-09-08 22:16 ` Jeff Garzik
  0 siblings, 2 replies; 4+ messages in thread
From: Andrew Morton @ 2003-09-08  6:21 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev


Very simple:

	ifup eth0
	ifdown eth0
	ifup eth0
	ifdown eth0	<- hangs in dev_close -> netif_poll_disable()


Because the first close sets __LINK_STATE_RX_SCHED and nothing ever clears
it.  

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: netif_poll_disable() hangs
  2003-09-08  6:21 netif_poll_disable() hangs Andrew Morton
@ 2003-09-08  7:17 ` Jeff Garzik
  2003-09-08  7:29   ` Andrew Morton
  2003-09-08 22:16 ` Jeff Garzik
  1 sibling, 1 reply; 4+ messages in thread
From: Jeff Garzik @ 2003-09-08  7:17 UTC (permalink / raw)
  To: Andrew Morton; +Cc: David S. Miller, netdev

Andrew Morton wrote:
> Very simple:
> 
> 	ifup eth0
> 	ifdown eth0
> 	ifup eth0
> 	ifdown eth0	<- hangs in dev_close -> netif_poll_disable()
> 
> 
> Because the first close sets __LINK_STATE_RX_SCHED and nothing ever clears
> it.  


Weird.  Looking at older 2.4 and 2.6, the bit has always been set that way.

process_backlog() has always been the only site that ever clears that 
bit...  maybe process_backlog() is called when interface is up'd, which 
is why it worked before (and should be working now)?

	Jeff

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: netif_poll_disable() hangs
  2003-09-08  7:17 ` Jeff Garzik
@ 2003-09-08  7:29   ` Andrew Morton
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2003-09-08  7:29 UTC (permalink / raw)
  To: Jeff Garzik; +Cc: davem, netdev

Jeff Garzik <jgarzik@pobox.com> wrote:
>
> Andrew Morton wrote:
> > Very simple:
> > 
> > 	ifup eth0
> > 	ifdown eth0
> > 	ifup eth0
> > 	ifdown eth0	<- hangs in dev_close -> netif_poll_disable()
> > 
> > 
> > Because the first close sets __LINK_STATE_RX_SCHED and nothing ever clears
> > it.  
> 
> 
> Weird.  Looking at older 2.4 and 2.6, the bit has always been set that way.

2.4 does test_bit, 2.6 does test_and_set_bit.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: netif_poll_disable() hangs
  2003-09-08  6:21 netif_poll_disable() hangs Andrew Morton
  2003-09-08  7:17 ` Jeff Garzik
@ 2003-09-08 22:16 ` Jeff Garzik
  1 sibling, 0 replies; 4+ messages in thread
From: Jeff Garzik @ 2003-09-08 22:16 UTC (permalink / raw)
  To: Andrew Morton; +Cc: David S. Miller, netdev

Andrew Morton wrote:
> Very simple:
> 
> 	ifup eth0
> 	ifdown eth0
> 	ifup eth0
> 	ifdown eth0	<- hangs in dev_close -> netif_poll_disable()
> 
> 
> Because the first close sets __LINK_STATE_RX_SCHED and nothing ever clears
> it.  


Thanks, fix patch just sent.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2003-09-08 22:16 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-08  6:21 netif_poll_disable() hangs Andrew Morton
2003-09-08  7:17 ` Jeff Garzik
2003-09-08  7:29   ` Andrew Morton
2003-09-08 22:16 ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).