|
@@ -319,7 +319,8 @@ int dev_addr_del(struct net_device *dev, const unsigned char *addr,
|
|
|
*/
|
|
|
ha = list_first_entry(&dev->dev_addrs.list,
|
|
|
struct netdev_hw_addr, list);
|
|
|
- if (ha->addr == dev->dev_addr && ha->refcount == 1)
|
|
|
+ if (!memcmp(ha->addr, addr, dev->addr_len) &&
|
|
|
+ ha->type == addr_type && ha->refcount == 1)
|
|
|
return -ENOENT;
|
|
|
|
|
|
err = __hw_addr_del(&dev->dev_addrs, addr, dev->addr_len,
|