David Miller wrote: > From: Robert Olsson <[EMAIL PROTECTED]> > Date: Fri, 18 Jan 2008 14:00:57 +0100 > >> I don't understand the idea with semaphore for enabling/disabling >> irq's either the overall logic must safer/better without it. > > They must have had code paths where they didn't know if IRQs were > enabled or not already, so they tried to create something which > approximates the: > > local_irq_save(flags); > local_irq_restore(flags); > > constructs we have for CPU interrupts, so they could go: > > e1000_irq_disable(); > /* ... */ > e1000_irq_enable(); > > and this would work even if the caller was running > with e1000 interrupts disabled already. > > Or, something like that... it is indeed confusing. > > Anyways, yes it's totally bogus and should be removed.
I agree, bogus, and in fact I've already removed it from our development version of ixgbe. Right now I wanted to report I can't remove e1000 at all on 2.6.24-rc8+git I continually get the kernel: unregister_netdevice: waiting for eth2 to become free. Usage count = 1 Where 2.6.24-rc5 e1000 is okay still. Seems like maybe we are still missing a netif_rx_complete or a napi_disable somewhere. I don't think this problem has anything to do with the irq_sem right now. Something is still badly broken. I am just using the interface regularly (no heavy load) and I can't unload the module. Jesse -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html