Re: [PATCH 2/2] [sky2] Fix for interrupt handler
From: Jonathan Nieder <hidden>
Date: 2012-10-25 22:36:55
Hi, Mirko Lindner wrote:
Re-enable interrupts if it is not our interrupt Signed-off-by: Mirko Lindner <redacted>
Julian (cc-ed) is experiencing tx stalls[1] on a 3.2.y-based kernel: WARNING: at [...]/linux-3.2.21/net/sched/sch_generic.c:255 dev_watchdog+0xe9/0x148() Hardware name: Inspiron 1545 NETDEV WATCHDOG: eth0 (sky2): transmit queue 0 timed out Cherry-picking v3.6-rc1~125^2~264 (sky2: Fix for interrupt handler, 2012-07-03) fixes it. Tested-by: Julian Gilbey <redacted> Dave, would this be a candidate for stable? Patch left unsnipped for reference. Thanks, Jonathan [1] http://bugs.debian.org/681280 [2] http://patchwork.ozlabs.org/bundle/davem/stable/?state=*
quoted hunk ↗ jump to hunk
--- drivers/net/ethernet/marvell/sky2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c index f1163b2..2b0748d 100644 --- a/drivers/net/ethernet/marvell/sky2.c +++ b/drivers/net/ethernet/marvell/sky2.c@@ -3080,8 +3080,10 @@ static irqreturn_t sky2_intr(int irq, void *dev_id) /* Reading this mask interrupts as side effect */ status = sky2_read32(hw, B0_Y2_SP_ISRC2); - if (status == 0 || status == ~0) + if (status == 0 || status == ~0) { + sky2_write32(hw, B0_Y2_SP_ICR, 2); return IRQ_NONE; + } prefetch(&hw->st_le[hw->st_idx]);-- 1.7.10.4