From 77840239fc4f12606273c3bb4af021d3ac2f0570 Mon Sep 17 00:00:00 2001 From: Jesse Brandeburg Date: Wed, 25 Mar 2009 22:05:41 +0000 Subject: [PATCH] --- yaml --- r: 135551 b: refs/heads/master c: a3c69fef7a7775b0bcfbb8249845a25598cfe951 h: refs/heads/master i: 135549: 1e6e400b2067a1e70085be90be82bd8b1bb25efb 135547: f91b5e0ce227d3b49d0e30cfc2d9060c71e5e9c8 135543: e4ef605ef7bd86e5c9265157235d6ff1eb0673b4 135535: 3df465c06f7d907ede874fd01a3df5a1e94ed00b 135519: 52c33fdeb661d993308ed94f37ded236710e680c 135487: d1ecd8f65f5a3e873bfd8885ab9d7540c9764bea 135423: e6f456c41d3d44c8aa65b6649317af4eff4a52b3 v: v3 --- [refs] | 2 +- trunk/drivers/net/e1000e/netdev.c | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 08029b32bfa6..338d87de27c2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a72d2b2cc63994cb8d592a004bf5331be6905814 +refs/heads/master: a3c69fef7a7775b0bcfbb8249845a25598cfe951 diff --git a/trunk/drivers/net/e1000e/netdev.c b/trunk/drivers/net/e1000e/netdev.c index 17974121912d..b4ae0465121a 100644 --- a/trunk/drivers/net/e1000e/netdev.c +++ b/trunk/drivers/net/e1000e/netdev.c @@ -1261,7 +1261,8 @@ static irqreturn_t e1000_msix_other(int irq, void *data) u32 icr = er32(ICR); if (!(icr & E1000_ICR_INT_ASSERTED)) { - ew32(IMS, E1000_IMS_OTHER); + if (!test_bit(__E1000_DOWN, &adapter->state)) + ew32(IMS, E1000_IMS_OTHER); return IRQ_NONE; } @@ -1278,7 +1279,8 @@ static irqreturn_t e1000_msix_other(int irq, void *data) } no_link_interrupt: - ew32(IMS, E1000_IMS_LSC | E1000_IMS_OTHER); + if (!test_bit(__E1000_DOWN, &adapter->state)) + ew32(IMS, E1000_IMS_LSC | E1000_IMS_OTHER); return IRQ_HANDLED; } @@ -2015,10 +2017,12 @@ static int e1000_clean(struct napi_struct *napi, int budget) if (adapter->itr_setting & 3) e1000_set_itr(adapter); napi_complete(napi); - if (adapter->msix_entries) - ew32(IMS, adapter->rx_ring->ims_val); - else - e1000_irq_enable(adapter); + if (!test_bit(__E1000_DOWN, &adapter->state)) { + if (adapter->msix_entries) + ew32(IMS, adapter->rx_ring->ims_val); + else + e1000_irq_enable(adapter); + } } return work_done;