[PATCH/REPOST] net/mpc5200: Fix locking on fec_mpc52xx driver

David Miller davem at davemloft.net
Wed Dec 9 15:28:38 EST 2009

From: Grant Likely <grant.likely at secretlab.ca>
Date: Fri, 04 Dec 2009 21:33:13 -0700

> Fix the locking scheme on the fec_mpc52xx driver.  This device can
> receive IRQs from three sources; the FEC itself, the tx DMA, and the
> rx DMA.  Mutual exclusion was handled by taking a spin_lock() in the
> critical regions, but because the handlers are run with IRQs enabled,
> spin_lock() is insufficient and the driver can end up interrupting
> a critical region anyway from another IRQ.
> Asier Llano discovered that this occurs when an error IRQ is raised
> in the middle of handling rx irqs which resulted in an sk_buff memory
> leak.

I'll apply this fix.

But, longer term, it's a thousand times easier and more efficient to
move the processing of these interrupts into softirq context.

More information about the Linuxppc-dev mailing list