38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
diff --git a/src/netdev.c b/src/netdev.c
|
|
index 73b0f9a..aef1bc2 100644
|
|
--- a/src/netdev.c
|
|
+++ b/src/netdev.c
|
|
@@ -6724,19 +6724,12 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
|
|
int max_frame = new_mtu + VLAN_ETH_HLEN + ETH_FCS_LEN;
|
|
|
|
/* Jumbo frame support */
|
|
- if ((max_frame > (VLAN_ETH_FRAME_LEN + ETH_FCS_LEN)) &&
|
|
+ if ((new_mtu > ETH_DATA_LEN) &&
|
|
!(adapter->flags & FLAG_HAS_JUMBO_FRAMES)) {
|
|
e_err("Jumbo Frames not supported.\n");
|
|
return -EINVAL;
|
|
}
|
|
|
|
- /* Supported frame sizes */
|
|
- if ((new_mtu < (VLAN_ETH_ZLEN + ETH_FCS_LEN)) ||
|
|
- (max_frame > adapter->max_hw_frame_size)) {
|
|
- e_err("Unsupported MTU setting\n");
|
|
- return -EINVAL;
|
|
- }
|
|
-
|
|
/* Jumbo frame workaround on 82579 and newer requires CRC be stripped */
|
|
if ((adapter->hw.mac.type >= e1000_pch2lan) &&
|
|
!(adapter->flags2 & FLAG2_CRC_STRIPPING) &&
|
|
@@ -8262,6 +8255,11 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
|
#endif /* HAVE_NETDEV_VLAN_FEATURES */
|
|
}
|
|
|
|
+ /* MTU range: 68 - max_hw_frame_size */
|
|
+ netdev->min_mtu = ETH_MIN_MTU;
|
|
+ netdev->max_mtu = adapter->max_hw_frame_size -
|
|
+ (VLAN_ETH_HLEN + ETH_FCS_LEN);
|
|
+
|
|
if (e1000e_enable_mng_pass_thru(&adapter->hw))
|
|
adapter->flags |= FLAG_MNG_PT_ENABLED;
|
|
|