RE: [REGRESSION] 2.6.24-rc7: e1000: Detected Tx Unit Hang

From: Brandeburg, Jesse
Date: Sun Jan 20 2008 - 04:20:55 EST


David Miller wrote:
> From: Robert Olsson <Robert.Olsson@xxxxxxxxxxx>
> 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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/