aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/forcedeth.c
diff options
context:
space:
mode:
authorJeff Garzik <jeff@garzik.org>2006-06-08 15:24:46 -0400
committerJeff Garzik <jeff@garzik.org>2006-06-08 15:24:46 -0400
commitd15a88fc21ef225768ce31be16edfc9c6e2e02e3 (patch)
treed4cb0a1bc97973bb947e2667ae56bc4bc2256e9d /drivers/net/forcedeth.c
parentb53471711f21ba0e151075f0e1d6d531eb50f1b1 (diff)
parent1def630a6a49dda5bc89dfbd86656293640456f0 (diff)
Merge branch 'master' into upstream
Diffstat (limited to 'drivers/net/forcedeth.c')
-rw-r--r--drivers/net/forcedeth.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 66ea5fc5c2e2..5669b95162b3 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -2675,6 +2675,18 @@ static int nv_nway_reset(struct net_device *dev)
2675 return ret; 2675 return ret;
2676} 2676}
2677 2677
2678#ifdef NETIF_F_TSO
2679static int nv_set_tso(struct net_device *dev, u32 value)
2680{
2681 struct fe_priv *np = netdev_priv(dev);
2682
2683 if ((np->driver_data & DEV_HAS_CHECKSUM))
2684 return ethtool_op_set_tso(dev, value);
2685 else
2686 return value ? -EOPNOTSUPP : 0;
2687}
2688#endif
2689
2678static struct ethtool_ops ops = { 2690static struct ethtool_ops ops = {
2679 .get_drvinfo = nv_get_drvinfo, 2691 .get_drvinfo = nv_get_drvinfo,
2680 .get_link = ethtool_op_get_link, 2692 .get_link = ethtool_op_get_link,
@@ -2686,6 +2698,10 @@ static struct ethtool_ops ops = {
2686 .get_regs = nv_get_regs, 2698 .get_regs = nv_get_regs,
2687 .nway_reset = nv_nway_reset, 2699 .nway_reset = nv_nway_reset,
2688 .get_perm_addr = ethtool_op_get_perm_addr, 2700 .get_perm_addr = ethtool_op_get_perm_addr,
2701#ifdef NETIF_F_TSO
2702 .get_tso = ethtool_op_get_tso,
2703 .set_tso = nv_set_tso
2704#endif
2689}; 2705};
2690 2706
2691static void nv_vlan_rx_register(struct net_device *dev, struct vlan_group *grp) 2707static void nv_vlan_rx_register(struct net_device *dev, struct vlan_group *grp)