Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 172180
b: refs/heads/master
c: 9b47144
h: refs/heads/master
v: v3
  • Loading branch information
Jesse Brandeburg authored and David S. Miller committed Dec 3, 2009
1 parent 839b190 commit 86ff528
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 7ca3bc582cd24c2e6c0693a2ba2c71f3c2419c8b
refs/heads/master: 9b471446cb376e2d1a4ceb4695059acfc3437f32
25 changes: 19 additions & 6 deletions trunk/drivers/net/ixgbe/ixgbe_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1329,8 +1329,7 @@ static irqreturn_t ixgbe_msix_clean_tx(int irq, void *data)
r_idx + 1);
}

/* disable interrupts on this vector only */
ixgbe_irq_disable_queues(adapter, ((u64)1 << q_vector->v_idx));
/* EIAM disabled interrupts (on this vector) for us */
napi_schedule(&q_vector->napi);

return IRQ_HANDLED;
Expand Down Expand Up @@ -1362,7 +1361,7 @@ static irqreturn_t ixgbe_msix_clean_rx(int irq, void *data)
return IRQ_HANDLED;

/* disable interrupts on this vector only */
ixgbe_irq_disable_queues(adapter, ((u64)1 << q_vector->v_idx));
/* EIAM disabled interrupts (on this vector) for us */
napi_schedule(&q_vector->napi);

return IRQ_HANDLED;
Expand Down Expand Up @@ -1397,8 +1396,7 @@ static irqreturn_t ixgbe_msix_clean_many(int irq, void *data)
r_idx + 1);
}

/* disable interrupts on this vector only */
ixgbe_irq_disable_queues(adapter, ((u64)1 << q_vector->v_idx));
/* EIAM disabled interrupts (on this vector) for us */
napi_schedule(&q_vector->napi);

return IRQ_HANDLED;
Expand Down Expand Up @@ -2716,7 +2714,22 @@ static int ixgbe_up_complete(struct ixgbe_adapter *adapter)
IXGBE_WRITE_REG(hw, IXGBE_GPIE, gpie);
}

if (!(adapter->flags & IXGBE_FLAG_MSIX_ENABLED)) {
if (adapter->flags & IXGBE_FLAG_MSIX_ENABLED) {
/*
* use EIAM to auto-mask when MSI-X interrupt is asserted
* this saves a register write for every interrupt
*/
switch (hw->mac.type) {
case ixgbe_mac_82598EB:
IXGBE_WRITE_REG(hw, IXGBE_EIAM, IXGBE_EICS_RTX_QUEUE);
break;
default:
case ixgbe_mac_82599EB:
IXGBE_WRITE_REG(hw, IXGBE_EIAM_EX(0), 0xFFFFFFFF);
IXGBE_WRITE_REG(hw, IXGBE_EIAM_EX(1), 0xFFFFFFFF);
break;
}
} else {
/* legacy interrupts, use EIAM to auto-mask when reading EICR,
* specifically only auto mask tx and rx interrupts */
IXGBE_WRITE_REG(hw, IXGBE_EIAM, IXGBE_EICS_RTX_QUEUE);
Expand Down

0 comments on commit 86ff528

Please sign in to comment.