aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/benet/be_main.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c
index e24f498f37cd..10262fab686b 100644
--- a/drivers/net/benet/be_main.c
+++ b/drivers/net/benet/be_main.c
@@ -125,6 +125,9 @@ static int be_mac_addr_set(struct net_device *netdev, void *p)
125 struct sockaddr *addr = p; 125 struct sockaddr *addr = p;
126 int status = 0; 126 int status = 0;
127 127
128 if (!is_valid_ether_addr(addr->sa_data))
129 return -EADDRNOTAVAIL;
130
128 status = be_cmd_pmac_del(adapter, adapter->if_handle, adapter->pmac_id); 131 status = be_cmd_pmac_del(adapter, adapter->if_handle, adapter->pmac_id);
129 if (status) 132 if (status)
130 return status; 133 return status;
@@ -2146,6 +2149,10 @@ static int be_get_config(struct be_adapter *adapter)
2146 MAC_ADDRESS_TYPE_NETWORK, true /*permanent */, 0); 2149 MAC_ADDRESS_TYPE_NETWORK, true /*permanent */, 0);
2147 if (status) 2150 if (status)
2148 return status; 2151 return status;
2152
2153 if (!is_valid_ether_addr(mac))
2154 return -EADDRNOTAVAIL;
2155
2149 memcpy(adapter->netdev->dev_addr, mac, ETH_ALEN); 2156 memcpy(adapter->netdev->dev_addr, mac, ETH_ALEN);
2150 memcpy(adapter->netdev->perm_addr, mac, ETH_ALEN); 2157 memcpy(adapter->netdev->perm_addr, mac, ETH_ALEN);
2151 2158