summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/sun/ldmvsw.c
diff options
context:
space:
mode:
authorShannon Nelson <shannon.nelson@oracle.com>2017-02-13 21:57:04 +0300
committerDavid S. Miller <davem@davemloft.net>2017-02-14 21:04:11 +0300
commitbc221a34ac473b444a7cfdd0c152b4c71f79326b (patch)
tree643462b1418d273be640b32bfe08885124872a58 /drivers/net/ethernet/sun/ldmvsw.c
parent7602011f59cc32ebc3a5f9058d6ba11b096c8c50 (diff)
downloadlinux-bc221a34ac473b444a7cfdd0c152b4c71f79326b.tar.xz
ldmvsw: disable tso and gso for bridge operations
The ldmvsw driver is specifically for supporting the ldom virtual networking by running in the primary ldom and using the LDC to connect the remaining ldoms to the outside world via a bridge. With TSO and GSO supported while connected the bridge, things tend to misbehave as seen in our case by delayed packets, enough to begin triggering retransmits and affecting overall throughput. By turning off advertised support for TSO and GSO we restore stable traffic flow through the bridge. Orabug: 23293104 Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/sun/ldmvsw.c')
-rw-r--r--drivers/net/ethernet/sun/ldmvsw.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/ethernet/sun/ldmvsw.c b/drivers/net/ethernet/sun/ldmvsw.c
index f0fe6cf57cda..89952deae47f 100644
--- a/drivers/net/ethernet/sun/ldmvsw.c
+++ b/drivers/net/ethernet/sun/ldmvsw.c
@@ -234,8 +234,7 @@ static struct net_device *vsw_alloc_netdev(u8 hwaddr[],
dev->ethtool_ops = &vsw_ethtool_ops;
dev->watchdog_timeo = VSW_TX_TIMEOUT;
- dev->hw_features = NETIF_F_TSO | NETIF_F_GSO | NETIF_F_GSO_SOFTWARE |
- NETIF_F_HW_CSUM | NETIF_F_SG;
+ dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG;
dev->features = dev->hw_features;
/* MTU range: 68 - 65535 */
@@ -320,7 +319,7 @@ static int vsw_port_probe(struct vio_dev *vdev, const struct vio_device_id *id)
port->vp = vp;
port->dev = dev;
port->switch_port = 1;
- port->tso = true;
+ port->tso = false; /* no tso in vsw, misbehaves in bridge */
port->tsolen = 0;
/* Mark the port as belonging to ldmvsw which directs the