aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2009-04-20 00:49:28 -0400
committerDavid S. Miller <davem@davemloft.net>2009-04-21 05:00:51 -0400
commitb1b67dd45a6b629eb41553856805aaa1614fbb83 (patch)
tree23d2b8dc59223b649f466564dac338c899595a7c /drivers/net
parent4510d7cb8b4e7d389652b8a4f89fad469a5ecc92 (diff)
net: factor out ethtool invocation of vlan/macvlan drivers
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/macvlan.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
index 214a8cf2b708..329cd50d0e29 100644
--- a/drivers/net/macvlan.c
+++ b/drivers/net/macvlan.c
@@ -374,36 +374,20 @@ static void macvlan_ethtool_get_drvinfo(struct net_device *dev,
374static u32 macvlan_ethtool_get_rx_csum(struct net_device *dev) 374static u32 macvlan_ethtool_get_rx_csum(struct net_device *dev)
375{ 375{
376 const struct macvlan_dev *vlan = netdev_priv(dev); 376 const struct macvlan_dev *vlan = netdev_priv(dev);
377 struct net_device *lowerdev = vlan->lowerdev; 377 return dev_ethtool_get_rx_csum(vlan->lowerdev);
378
379 if (lowerdev->ethtool_ops == NULL ||
380 lowerdev->ethtool_ops->get_rx_csum == NULL)
381 return 0;
382 return lowerdev->ethtool_ops->get_rx_csum(lowerdev);
383} 378}
384 379
385static int macvlan_ethtool_get_settings(struct net_device *dev, 380static int macvlan_ethtool_get_settings(struct net_device *dev,
386 struct ethtool_cmd *cmd) 381 struct ethtool_cmd *cmd)
387{ 382{
388 const struct macvlan_dev *vlan = netdev_priv(dev); 383 const struct macvlan_dev *vlan = netdev_priv(dev);
389 struct net_device *lowerdev = vlan->lowerdev; 384 return dev_ethtool_get_settings(vlan->lowerdev, cmd);
390
391 if (!lowerdev->ethtool_ops ||
392 !lowerdev->ethtool_ops->get_settings)
393 return -EOPNOTSUPP;
394
395 return lowerdev->ethtool_ops->get_settings(lowerdev, cmd);
396} 385}
397 386
398static u32 macvlan_ethtool_get_flags(struct net_device *dev) 387static u32 macvlan_ethtool_get_flags(struct net_device *dev)
399{ 388{
400 const struct macvlan_dev *vlan = netdev_priv(dev); 389 const struct macvlan_dev *vlan = netdev_priv(dev);
401 struct net_device *lowerdev = vlan->lowerdev; 390 return dev_ethtool_get_flags(vlan->lowerdev);
402
403 if (!lowerdev->ethtool_ops ||
404 !lowerdev->ethtool_ops->get_flags)
405 return 0;
406 return lowerdev->ethtool_ops->get_flags(lowerdev);
407} 391}
408 392
409static const struct ethtool_ops macvlan_ethtool_ops = { 393static const struct ethtool_ops macvlan_ethtool_ops = {