diff options
author | Vasanthy Kolluri <vkolluri@cisco.com> | 2011-02-04 11:17:10 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-02-07 14:49:03 -0500 |
commit | 115d56f723c45088ddf46fac1ebba7c333039150 (patch) | |
tree | f2ebd0b484fcc8b9ce69035bab42c9b2f0782767 | |
parent | 519874619f642afaf61530b0f4df3cd1e9a319e4 (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>
-rw-r--r-- | drivers/net/enic/enic.h | 2 | ||||
-rw-r--r-- | drivers/net/enic/enic_dev.c | 26 |
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 | ||
50 | int enic_dev_add_station_addr(struct enic *enic) | 50 | int 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 | ||
63 | int enic_dev_del_station_addr(struct enic *enic) | 64 | int 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 | } |