Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/ixgbe/if_ix.c
Show First 20 Lines • Show All 4,409 Lines • ▼ Show 20 Lines | ixgbe_sysctl_eee_state(SYSCTL_HANDLER_ARGS) | ||||
/* Not supported */ | /* Not supported */ | ||||
if (!(adapter->feat_cap & IXGBE_FEATURE_EEE)) | if (!(adapter->feat_cap & IXGBE_FEATURE_EEE)) | ||||
return (EINVAL); | return (EINVAL); | ||||
/* Bounds checking */ | /* Bounds checking */ | ||||
if ((new_eee < 0) || (new_eee > 1)) | if ((new_eee < 0) || (new_eee > 1)) | ||||
return (EINVAL); | return (EINVAL); | ||||
retval = adapter->hw.mac.ops.setup_eee(&adapter->hw, new_eee); | retval = ixgbe_setup_eee(&adapter->hw, new_eee); | ||||
erj: If you replace this call with "ixgbe_setup_eee", that would also help prevent a kernel panic if… | |||||
if (retval) { | if (retval) { | ||||
device_printf(dev, "Error in EEE setup: 0x%08X\n", retval); | device_printf(dev, "Error in EEE setup: 0x%08X\n", retval); | ||||
return (EINVAL); | return (EINVAL); | ||||
} | } | ||||
/* Restart auto-neg */ | /* Restart auto-neg */ | ||||
ifp->if_init(ifp); | ifp->if_init(ifp); | ||||
Show All 36 Lines | ixgbe_init_device_features(struct adapter *adapter) | ||||
case ixgbe_mac_X550: | case ixgbe_mac_X550: | ||||
adapter->feat_cap |= IXGBE_FEATURE_TEMP_SENSOR; | adapter->feat_cap |= IXGBE_FEATURE_TEMP_SENSOR; | ||||
adapter->feat_cap |= IXGBE_FEATURE_SRIOV; | adapter->feat_cap |= IXGBE_FEATURE_SRIOV; | ||||
adapter->feat_cap |= IXGBE_FEATURE_FDIR; | adapter->feat_cap |= IXGBE_FEATURE_FDIR; | ||||
break; | break; | ||||
case ixgbe_mac_X550EM_x: | case ixgbe_mac_X550EM_x: | ||||
adapter->feat_cap |= IXGBE_FEATURE_SRIOV; | adapter->feat_cap |= IXGBE_FEATURE_SRIOV; | ||||
adapter->feat_cap |= IXGBE_FEATURE_FDIR; | adapter->feat_cap |= IXGBE_FEATURE_FDIR; | ||||
if (adapter->hw.device_id == IXGBE_DEV_ID_X550EM_X_KR) | |||||
adapter->feat_cap |= IXGBE_FEATURE_EEE; | |||||
break; | break; | ||||
case ixgbe_mac_X550EM_a: | case ixgbe_mac_X550EM_a: | ||||
adapter->feat_cap |= IXGBE_FEATURE_SRIOV; | adapter->feat_cap |= IXGBE_FEATURE_SRIOV; | ||||
adapter->feat_cap |= IXGBE_FEATURE_FDIR; | adapter->feat_cap |= IXGBE_FEATURE_FDIR; | ||||
adapter->feat_cap &= ~IXGBE_FEATURE_LEGACY_IRQ; | adapter->feat_cap &= ~IXGBE_FEATURE_LEGACY_IRQ; | ||||
if ((adapter->hw.device_id == IXGBE_DEV_ID_X550EM_A_1G_T) || | if ((adapter->hw.device_id == IXGBE_DEV_ID_X550EM_A_1G_T) || | ||||
(adapter->hw.device_id == IXGBE_DEV_ID_X550EM_A_1G_T_L)) { | (adapter->hw.device_id == IXGBE_DEV_ID_X550EM_A_1G_T_L)) { | ||||
adapter->feat_cap |= IXGBE_FEATURE_TEMP_SENSOR; | adapter->feat_cap |= IXGBE_FEATURE_TEMP_SENSOR; | ||||
▲ Show 20 Lines • Show All 72 Lines • Show Last 20 Lines |
If you replace this call with "ixgbe_setup_eee", that would also help prevent a kernel panic if this sysctl somehow gets called without adapter->hw.mac.ops.setup_eee() from being set.