diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-12-08 19:52:37 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-12-08 19:52:37 -0500 |
commit | 8e586137e6b63af1e881b328466ab5ffbe562510 (patch) | |
tree | da0767e1b1361aa24bd32f485453079e31854c0c /drivers/net/macvlan.c | |
parent | 7da82c06ded105bf601bfa0eafc92e84eb0ceeed (diff) |
net: make vlan ndo_vlan_rx_[add/kill]_vid return error value
Let caller know the result of adding/removing vlan id to/from vlan
filter.
In some drivers I make those functions to just return 0. But in those
where there is able to see if hw setup went correctly, return value is
set appropriately.
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/macvlan.c')
-rw-r--r-- | drivers/net/macvlan.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 74134970b709..2511bc5c34f3 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c | |||
@@ -520,7 +520,7 @@ static struct rtnl_link_stats64 *macvlan_dev_get_stats64(struct net_device *dev, | |||
520 | return stats; | 520 | return stats; |
521 | } | 521 | } |
522 | 522 | ||
523 | static void macvlan_vlan_rx_add_vid(struct net_device *dev, | 523 | static int macvlan_vlan_rx_add_vid(struct net_device *dev, |
524 | unsigned short vid) | 524 | unsigned short vid) |
525 | { | 525 | { |
526 | struct macvlan_dev *vlan = netdev_priv(dev); | 526 | struct macvlan_dev *vlan = netdev_priv(dev); |
@@ -528,10 +528,11 @@ static void macvlan_vlan_rx_add_vid(struct net_device *dev, | |||
528 | const struct net_device_ops *ops = lowerdev->netdev_ops; | 528 | const struct net_device_ops *ops = lowerdev->netdev_ops; |
529 | 529 | ||
530 | if (ops->ndo_vlan_rx_add_vid) | 530 | if (ops->ndo_vlan_rx_add_vid) |
531 | ops->ndo_vlan_rx_add_vid(lowerdev, vid); | 531 | return ops->ndo_vlan_rx_add_vid(lowerdev, vid); |
532 | return 0; | ||
532 | } | 533 | } |
533 | 534 | ||
534 | static void macvlan_vlan_rx_kill_vid(struct net_device *dev, | 535 | static int macvlan_vlan_rx_kill_vid(struct net_device *dev, |
535 | unsigned short vid) | 536 | unsigned short vid) |
536 | { | 537 | { |
537 | struct macvlan_dev *vlan = netdev_priv(dev); | 538 | struct macvlan_dev *vlan = netdev_priv(dev); |
@@ -539,7 +540,8 @@ static void macvlan_vlan_rx_kill_vid(struct net_device *dev, | |||
539 | const struct net_device_ops *ops = lowerdev->netdev_ops; | 540 | const struct net_device_ops *ops = lowerdev->netdev_ops; |
540 | 541 | ||
541 | if (ops->ndo_vlan_rx_kill_vid) | 542 | if (ops->ndo_vlan_rx_kill_vid) |
542 | ops->ndo_vlan_rx_kill_vid(lowerdev, vid); | 543 | return ops->ndo_vlan_rx_kill_vid(lowerdev, vid); |
544 | return 0; | ||
543 | } | 545 | } |
544 | 546 | ||
545 | static void macvlan_ethtool_get_drvinfo(struct net_device *dev, | 547 | static void macvlan_ethtool_get_drvinfo(struct net_device *dev, |