Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 194792
b: refs/heads/master
c: 0825959
h: refs/heads/master
v: v3
  • Loading branch information
Greg Rose authored and David S. Miller committed May 6, 2010
1 parent 8dbceed commit 7dfbd65
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8a07a22d856f37e580557c1a13c8eb8662f9cc11
refs/heads/master: 08259594e047170923ef11d1482648642bfe606f
16 changes: 16 additions & 0 deletions trunk/drivers/net/ixgbevf/ixgbevf_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -961,12 +961,28 @@ static irqreturn_t ixgbevf_msix_mbx(int irq, void *data)
eicr = IXGBE_READ_REG(hw, IXGBE_VTEICS);
IXGBE_WRITE_REG(hw, IXGBE_VTEICR, eicr);

if (!hw->mbx.ops.check_for_ack(hw)) {
/*
* checking for the ack clears the PFACK bit. Place
* it back in the v2p_mailbox cache so that anyone
* polling for an ack will not miss it. Also
* avoid the read below because the code to read
* the mailbox will also clear the ack bit. This was
* causing lost acks. Just cache the bit and exit
* the IRQ handler.
*/
hw->mbx.v2p_mailbox |= IXGBE_VFMAILBOX_PFACK;
goto out;
}

/* Not an ack interrupt, go ahead and read the message */
hw->mbx.ops.read(hw, &msg, 1);

if ((msg & IXGBE_MBVFICR_VFREQ_MASK) == IXGBE_PF_CONTROL_MSG)
mod_timer(&adapter->watchdog_timer,
round_jiffies(jiffies + 1));

out:
return IRQ_HANDLED;
}

Expand Down

0 comments on commit 7dfbd65

Please sign in to comment.