net: dev: Add extack argument to dev_set_mac_address()
A follow-up patch will add a notifier type NETDEV_PRE_CHANGEADDR, which allows vetoing of MAC address changes. One prominent path to that notification is through dev_set_mac_address(). Therefore give this function an extack argument, so that it can be packed together with the notification. Thus a textual reason for rejection (or a warning) can be communicated back to the user. Signed-off-by: Petr Machata <petrm@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Reviewed-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Este cometimento está contido em:

cometido por
David S. Miller

ascendente
95302c394c
cometimento
3a37a9636c
@@ -1031,7 +1031,7 @@ static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[],
|
||||
*/
|
||||
memcpy(ss.__data, addr, len);
|
||||
ss.ss_family = dev->type;
|
||||
if (dev_set_mac_address(dev, (struct sockaddr *)&ss)) {
|
||||
if (dev_set_mac_address(dev, (struct sockaddr *)&ss, NULL)) {
|
||||
netdev_err(slave->bond->dev, "dev_set_mac_address of dev %s failed! ALB mode requires that the base driver support setting the hw address also when the network device's interface is open\n",
|
||||
dev->name);
|
||||
return -EOPNOTSUPP;
|
||||
@@ -1250,7 +1250,7 @@ static int alb_set_mac_address(struct bonding *bond, void *addr)
|
||||
bond_hw_addr_copy(tmp_addr, slave->dev->dev_addr,
|
||||
slave->dev->addr_len);
|
||||
|
||||
res = dev_set_mac_address(slave->dev, addr);
|
||||
res = dev_set_mac_address(slave->dev, addr, NULL);
|
||||
|
||||
/* restore net_device's hw address */
|
||||
bond_hw_addr_copy(slave->dev->dev_addr, tmp_addr,
|
||||
@@ -1273,7 +1273,7 @@ unwind:
|
||||
bond_hw_addr_copy(tmp_addr, rollback_slave->dev->dev_addr,
|
||||
rollback_slave->dev->addr_len);
|
||||
dev_set_mac_address(rollback_slave->dev,
|
||||
(struct sockaddr *)&ss);
|
||||
(struct sockaddr *)&ss, NULL);
|
||||
bond_hw_addr_copy(rollback_slave->dev->dev_addr, tmp_addr,
|
||||
rollback_slave->dev->addr_len);
|
||||
}
|
||||
@@ -1732,7 +1732,8 @@ void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave
|
||||
bond->dev->addr_len);
|
||||
ss.ss_family = bond->dev->type;
|
||||
/* we don't care if it can't change its mac, best effort */
|
||||
dev_set_mac_address(new_slave->dev, (struct sockaddr *)&ss);
|
||||
dev_set_mac_address(new_slave->dev, (struct sockaddr *)&ss,
|
||||
NULL);
|
||||
|
||||
bond_hw_addr_copy(new_slave->dev->dev_addr, tmp_addr,
|
||||
new_slave->dev->addr_len);
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador