summaryrefslogtreecommitdiffstats
path: root/sys/dev/ixgbe/ixgbe_mbx.c
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2011-01-19 19:36:27 +0000
committerjfv <jfv@FreeBSD.org>2011-01-19 19:36:27 +0000
commitfbad453baa003b4d621ee5bdd3e60426e1f4d6de (patch)
tree8121d62517c7a3ec2d150a2a6c3a5891193a1ae2 /sys/dev/ixgbe/ixgbe_mbx.c
parent647f1a160ffbda332197f078042645ea4af181c2 (diff)
downloadFreeBSD-src-fbad453baa003b4d621ee5bdd3e60426e1f4d6de.zip
FreeBSD-src-fbad453baa003b4d621ee5bdd3e60426e1f4d6de.tar.gz
Update driver to version 2.3.8:
CRITICAL FIX - with stats changes the older 82598 will panic and trash the stack on driver load, FCOE registers ONLY exist in 82599 and must not be read otherwise. kern/153951 - to correct incorrect media type on adapters with pluggable modules I have eliminated the old static table in favor of a new dynamic shared code routine. This also has the benefit of detecting changes when a different module is inserted. Performance/enhancement to the Flow Director code from my linux coworker (the developer of the code). Fixes from Michael Tuexen - a data corruption problem on the 82599 (CRITICAL), fix so the buf size correctly adjusts as the cluster changes, and max descriptors are set properly. Also added 16K clusters for those REALLY big jumbos :) In the RX path, the RX LOCK was not being released, and this causes LOR problems. Add the code that igb already has. Sync with in house shared code, this was necessary for the Flow Director fix. MFC in 2 days
Diffstat (limited to 'sys/dev/ixgbe/ixgbe_mbx.c')
-rw-r--r--sys/dev/ixgbe/ixgbe_mbx.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/ixgbe/ixgbe_mbx.c b/sys/dev/ixgbe/ixgbe_mbx.c
index fbc951d..0e08ea5 100644
--- a/sys/dev/ixgbe/ixgbe_mbx.c
+++ b/sys/dev/ixgbe/ixgbe_mbx.c
@@ -592,8 +592,14 @@ static s32 ixgbe_check_for_rst_pf(struct ixgbe_hw *hw, u16 vf_number)
DEBUGFUNC("ixgbe_check_for_rst_pf");
- if (hw->mac.type == ixgbe_mac_82599EB)
+ switch (hw->mac.type) {
+ case ixgbe_mac_82599EB:
vflre = IXGBE_READ_REG(hw, IXGBE_VFLRE(reg_offset));
+ break;
+ default:
+ goto out;
+ break;
+ }
if (vflre & (1 << vf_shift)) {
ret_val = IXGBE_SUCCESS;
@@ -601,6 +607,7 @@ static s32 ixgbe_check_for_rst_pf(struct ixgbe_hw *hw, u16 vf_number)
hw->mbx.stats.rsts++;
}
+out:
return ret_val;
}
OpenPOWER on IntegriCloud