Skip to content

Commit 67d47b9

Browse files
sebastianbasierskikuba-moo
authored andcommitted
e1000e: Disable TSO on i219-LM card to increase speed
While using i219-LM card currently it was only possible to achieve about 60% of maximum speed due to regression introduced in Linux 5.8. This was caused by TSO not being disabled by default despite commit f298010 ("e1000e: Disable TSO for buffer overrun workaround"). Fix that by disabling TSO during driver probe. Fixes: f298010 ("e1000e: Disable TSO for buffer overrun workaround") Signed-off-by: Sebastian Basierski <[email protected]> Signed-off-by: Mateusz Palczewski <[email protected]> Tested-by: Naama Meir <[email protected]> Signed-off-by: Tony Nguyen <[email protected]> Reviewed-by: Simon Horman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 8c154d2 commit 67d47b9

File tree

1 file changed

+26
-25
lines changed
  • drivers/net/ethernet/intel/e1000e

1 file changed

+26
-25
lines changed

drivers/net/ethernet/intel/e1000e/netdev.c

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5288,31 +5288,6 @@ static void e1000_watchdog_task(struct work_struct *work)
52885288
ew32(TARC(0), tarc0);
52895289
}
52905290

5291-
/* disable TSO for pcie and 10/100 speeds, to avoid
5292-
* some hardware issues
5293-
*/
5294-
if (!(adapter->flags & FLAG_TSO_FORCE)) {
5295-
switch (adapter->link_speed) {
5296-
case SPEED_10:
5297-
case SPEED_100:
5298-
e_info("10/100 speed: disabling TSO\n");
5299-
netdev->features &= ~NETIF_F_TSO;
5300-
netdev->features &= ~NETIF_F_TSO6;
5301-
break;
5302-
case SPEED_1000:
5303-
netdev->features |= NETIF_F_TSO;
5304-
netdev->features |= NETIF_F_TSO6;
5305-
break;
5306-
default:
5307-
/* oops */
5308-
break;
5309-
}
5310-
if (hw->mac.type == e1000_pch_spt) {
5311-
netdev->features &= ~NETIF_F_TSO;
5312-
netdev->features &= ~NETIF_F_TSO6;
5313-
}
5314-
}
5315-
53165291
/* enable transmits in the hardware, need to do this
53175292
* after setting TARC(0)
53185293
*/
@@ -7526,6 +7501,32 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
75267501
NETIF_F_RXCSUM |
75277502
NETIF_F_HW_CSUM);
75287503

7504+
/* disable TSO for pcie and 10/100 speeds to avoid
7505+
* some hardware issues and for i219 to fix transfer
7506+
* speed being capped at 60%
7507+
*/
7508+
if (!(adapter->flags & FLAG_TSO_FORCE)) {
7509+
switch (adapter->link_speed) {
7510+
case SPEED_10:
7511+
case SPEED_100:
7512+
e_info("10/100 speed: disabling TSO\n");
7513+
netdev->features &= ~NETIF_F_TSO;
7514+
netdev->features &= ~NETIF_F_TSO6;
7515+
break;
7516+
case SPEED_1000:
7517+
netdev->features |= NETIF_F_TSO;
7518+
netdev->features |= NETIF_F_TSO6;
7519+
break;
7520+
default:
7521+
/* oops */
7522+
break;
7523+
}
7524+
if (hw->mac.type == e1000_pch_spt) {
7525+
netdev->features &= ~NETIF_F_TSO;
7526+
netdev->features &= ~NETIF_F_TSO6;
7527+
}
7528+
}
7529+
75297530
/* Set user-changeable features (subset of all device features) */
75307531
netdev->hw_features = netdev->features;
75317532
netdev->hw_features |= NETIF_F_RXFCS;

0 commit comments

Comments
 (0)