diff options
-rw-r--r-- | drivers/net/benet/be_main.c | 7 |
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 | ||