aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorGreg Rose <gregory.v.rose@intel.com>2010-01-22 22:47:00 +0000
committerDavid S. Miller <davem@davemloft.net>2010-01-23 01:13:55 -0800
commita9ee25a2b87c8077042ce23d3231f67f026719b0 (patch)
tree694507f13457ad07efaeb830b06ab175b1579e4c /drivers
parent767081adbd920ce93e3f1cbe797d0631637f92b3 (diff)
downloadkernel_samsung_smdk4412-a9ee25a2b87c8077042ce23d3231f67f026719b0.zip
kernel_samsung_smdk4412-a9ee25a2b87c8077042ce23d3231f67f026719b0.tar.gz
kernel_samsung_smdk4412-a9ee25a2b87c8077042ce23d3231f67f026719b0.tar.bz2
ixgbevf: Take action when the PF notifies the VF it is resetting.
When the VF driver gets a control message from the PF that indicates the PF is about to reset or go down we schedule the watchdog timer so that it will detect the PF has gone offline and take appropriate action. Signed-off-by: Greg Rose <gregory.v.rose@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ixgbevf/ixgbevf_main.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ixgbevf/ixgbevf_main.c b/drivers/net/ixgbevf/ixgbevf_main.c
index 39544af..bd2fd46 100644
--- a/drivers/net/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ixgbevf/ixgbevf_main.c
@@ -956,10 +956,17 @@ static irqreturn_t ixgbevf_msix_mbx(int irq, void *data)
struct ixgbevf_adapter *adapter = netdev_priv(netdev);
struct ixgbe_hw *hw = &adapter->hw;
u32 eicr;
+ u32 msg;
eicr = IXGBE_READ_REG(hw, IXGBE_VTEICS);
IXGBE_WRITE_REG(hw, IXGBE_VTEICR, eicr);
+ 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 + 10));
+
return IRQ_HANDLED;
}