aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/enic
diff options
context:
space:
mode:
authorVasanthy Kolluri <vkolluri@cisco.com>2011-02-04 11:17:10 -0500
committerDavid S. Miller <davem@davemloft.net>2011-02-07 14:49:03 -0500
commit115d56f723c45088ddf46fac1ebba7c333039150 (patch)
treef2ebd0b484fcc8b9ce69035bab42c9b2f0782767 /drivers/net/enic
parent519874619f642afaf61530b0f4df3cd1e9a319e4 (diff)
enic: Bug Fix: Fix return values of enic_add/del_station_addr routines
Fix enic_add/del_station_addr routines to return appropriate error code when an invalid address is added or deleted. Signed-off-by: Christian Benvenuti <benve@cisco.com> Signed-off-by: Vasanthy Kolluri <vkolluri@cisco.com> Signed-off-by: Roopa Prabhu <roprabhu@cisco.com> Signed-off-by: David Wang <dwang2@cisco.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/enic')
-rw-r--r--drivers/net/enic/enic.h2
-rw-r--r--drivers/net/enic/enic_dev.c26
2 files changed, 15 insertions, 13 deletions
diff --git a/drivers/net/enic/enic.h b/drivers/net/enic/enic.h
index 1385a609ed49..f38ad634989c 100644
--- a/drivers/net/enic/enic.h
+++ b/drivers/net/enic/enic.h
@@ -32,7 +32,7 @@
32 32
33#define DRV_NAME "enic" 33#define DRV_NAME "enic"
34#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver" 34#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver"
35#define DRV_VERSION "2.1.1.3" 35#define DRV_VERSION "2.1.1.4"
36#define DRV_COPYRIGHT "Copyright 2008-2011 Cisco Systems, Inc" 36#define DRV_COPYRIGHT "Copyright 2008-2011 Cisco Systems, Inc"
37 37
38#define ENIC_BARS_MAX 6 38#define ENIC_BARS_MAX 6
diff --git a/drivers/net/enic/enic_dev.c b/drivers/net/enic/enic_dev.c
index a52dbd2b3c63..382626628b1b 100644
--- a/drivers/net/enic/enic_dev.c
+++ b/drivers/net/enic/enic_dev.c
@@ -49,26 +49,28 @@ int enic_dev_stats_dump(struct enic *enic, struct vnic_stats **vstats)
49 49
50int enic_dev_add_station_addr(struct enic *enic) 50int enic_dev_add_station_addr(struct enic *enic)
51{ 51{
52 int err = 0; 52 int err;
53
54 if (!is_valid_ether_addr(enic->netdev->dev_addr))
55 return -EADDRNOTAVAIL;
53 56
54 if (is_valid_ether_addr(enic->netdev->dev_addr)) { 57 spin_lock(&enic->devcmd_lock);
55 spin_lock(&enic->devcmd_lock); 58 err = vnic_dev_add_addr(enic->vdev, enic->netdev->dev_addr);
56 err = vnic_dev_add_addr(enic->vdev, enic->netdev->dev_addr); 59 spin_unlock(&enic->devcmd_lock);
57 spin_unlock(&enic->devcmd_lock);
58 }
59 60
60 return err; 61 return err;
61} 62}
62 63
63int enic_dev_del_station_addr(struct enic *enic) 64int enic_dev_del_station_addr(struct enic *enic)
64{ 65{
65 int err = 0; 66 int err;
67
68 if (!is_valid_ether_addr(enic->netdev->dev_addr))
69 return -EADDRNOTAVAIL;
66 70
67 if (is_valid_ether_addr(enic->netdev->dev_addr)) { 71 spin_lock(&enic->devcmd_lock);
68 spin_lock(&enic->devcmd_lock); 72 err = vnic_dev_del_addr(enic->vdev, enic->netdev->dev_addr);
69 err = vnic_dev_del_addr(enic->vdev, enic->netdev->dev_addr); 73 spin_unlock(&enic->devcmd_lock);
70 spin_unlock(&enic->devcmd_lock);
71 }
72 74
73 return err; 75 return err;
74} 76}