aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/via/via-rhine.c
diff options
context:
space:
mode:
authorJiri Pirko <jpirko@redhat.com>2011-12-08 19:52:37 -0500
committerDavid S. Miller <davem@davemloft.net>2011-12-08 19:52:37 -0500
commit8e586137e6b63af1e881b328466ab5ffbe562510 (patch)
treeda0767e1b1361aa24bd32f485453079e31854c0c /drivers/net/ethernet/via/via-rhine.c
parent7da82c06ded105bf601bfa0eafc92e84eb0ceeed (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/ethernet/via/via-rhine.c')
-rw-r--r--drivers/net/ethernet/via/via-rhine.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
index 5587ecdf32e3..bcdbdc72b558 100644
--- a/drivers/net/ethernet/via/via-rhine.c
+++ b/drivers/net/ethernet/via/via-rhine.c
@@ -488,8 +488,8 @@ static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
488static const struct ethtool_ops netdev_ethtool_ops; 488static const struct ethtool_ops netdev_ethtool_ops;
489static int rhine_close(struct net_device *dev); 489static int rhine_close(struct net_device *dev);
490static void rhine_shutdown (struct pci_dev *pdev); 490static void rhine_shutdown (struct pci_dev *pdev);
491static void rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid); 491static int rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid);
492static void rhine_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid); 492static int rhine_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid);
493static void rhine_set_cam(void __iomem *ioaddr, int idx, u8 *addr); 493static void rhine_set_cam(void __iomem *ioaddr, int idx, u8 *addr);
494static void rhine_set_vlan_cam(void __iomem *ioaddr, int idx, u8 *addr); 494static void rhine_set_vlan_cam(void __iomem *ioaddr, int idx, u8 *addr);
495static void rhine_set_cam_mask(void __iomem *ioaddr, u32 mask); 495static void rhine_set_cam_mask(void __iomem *ioaddr, u32 mask);
@@ -1261,7 +1261,7 @@ static void rhine_update_vcam(struct net_device *dev)
1261 rhine_set_vlan_cam_mask(ioaddr, vCAMmask); 1261 rhine_set_vlan_cam_mask(ioaddr, vCAMmask);
1262} 1262}
1263 1263
1264static void rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid) 1264static int rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
1265{ 1265{
1266 struct rhine_private *rp = netdev_priv(dev); 1266 struct rhine_private *rp = netdev_priv(dev);
1267 1267
@@ -1269,9 +1269,10 @@ static void rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
1269 set_bit(vid, rp->active_vlans); 1269 set_bit(vid, rp->active_vlans);
1270 rhine_update_vcam(dev); 1270 rhine_update_vcam(dev);
1271 spin_unlock_irq(&rp->lock); 1271 spin_unlock_irq(&rp->lock);
1272 return 0;
1272} 1273}
1273 1274
1274static void rhine_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid) 1275static int rhine_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
1275{ 1276{
1276 struct rhine_private *rp = netdev_priv(dev); 1277 struct rhine_private *rp = netdev_priv(dev);
1277 1278
@@ -1279,6 +1280,7 @@ static void rhine_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
1279 clear_bit(vid, rp->active_vlans); 1280 clear_bit(vid, rp->active_vlans);
1280 rhine_update_vcam(dev); 1281 rhine_update_vcam(dev);
1281 spin_unlock_irq(&rp->lock); 1282 spin_unlock_irq(&rp->lock);
1283 return 0;
1282} 1284}
1283 1285
1284static void init_registers(struct net_device *dev) 1286static void init_registers(struct net_device *dev)