|
@@ -413,10 +413,15 @@ static int qlcnic_nic_add_mac(struct qlcnic_adapter *adapter, u8 *addr)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
}
|
|
}
|
|
memcpy(cur->mac_addr, addr, ETH_ALEN);
|
|
memcpy(cur->mac_addr, addr, ETH_ALEN);
|
|
- list_add_tail(&cur->list, &adapter->mac_list);
|
|
|
|
|
|
|
|
- return qlcnic_sre_macaddr_change(adapter,
|
|
|
|
- cur->mac_addr, QLCNIC_MAC_ADD);
|
|
|
|
|
|
+ if (qlcnic_sre_macaddr_change(adapter,
|
|
|
|
+ cur->mac_addr, QLCNIC_MAC_ADD)) {
|
|
|
|
+ kfree(cur);
|
|
|
|
+ return -EIO;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ list_add_tail(&cur->list, &adapter->mac_list);
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
|
|
|
|
void qlcnic_set_multi(struct net_device *netdev)
|
|
void qlcnic_set_multi(struct net_device *netdev)
|