IB/core: Update GID entries for netdevice whose mac address changes
Update all GID table entries of the netdevice whose MAC address changed. Signed-off-by: Parav Pandit <parav@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
committed by
Jason Gunthorpe
parent
464b79b45a
commit
d12e2eed27
@@ -291,7 +291,7 @@ static void update_gid_ip(enum gid_op_type gid_op,
|
|||||||
static void bond_delete_netdev_default_gids(struct ib_device *ib_dev,
|
static void bond_delete_netdev_default_gids(struct ib_device *ib_dev,
|
||||||
u8 port,
|
u8 port,
|
||||||
struct net_device *rdma_ndev,
|
struct net_device *rdma_ndev,
|
||||||
void *event_ndev)
|
struct net_device *event_ndev)
|
||||||
{
|
{
|
||||||
struct net_device *real_dev = rdma_vlan_dev_real_dev(event_ndev);
|
struct net_device *real_dev = rdma_vlan_dev_real_dev(event_ndev);
|
||||||
unsigned long gid_type_mask;
|
unsigned long gid_type_mask;
|
||||||
@@ -727,9 +727,9 @@ static int netdevice_event(struct notifier_block *this, unsigned long event,
|
|||||||
static const struct netdev_event_work_cmd bonding_default_del_cmd_join = {
|
static const struct netdev_event_work_cmd bonding_default_del_cmd_join = {
|
||||||
.cb = del_netdev_default_ips_join, .filter = is_eth_port_inactive_slave};
|
.cb = del_netdev_default_ips_join, .filter = is_eth_port_inactive_slave};
|
||||||
static const struct netdev_event_work_cmd
|
static const struct netdev_event_work_cmd
|
||||||
default_del_cmd = {
|
netdev_del_cmd = {
|
||||||
.cb = bond_delete_netdev_default_gids,
|
.cb = del_netdev_ips,
|
||||||
.filter = pass_all_filter
|
.filter = is_eth_port_of_netdev
|
||||||
};
|
};
|
||||||
static const struct netdev_event_work_cmd bonding_event_ips_del_cmd = {
|
static const struct netdev_event_work_cmd bonding_event_ips_del_cmd = {
|
||||||
.cb = del_netdev_upper_ips, .filter = upper_device_filter};
|
.cb = del_netdev_upper_ips, .filter = upper_device_filter};
|
||||||
@@ -755,8 +755,9 @@ static int netdevice_event(struct notifier_block *this, unsigned long event,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case NETDEV_CHANGEADDR:
|
case NETDEV_CHANGEADDR:
|
||||||
cmds[0] = default_del_cmd;
|
cmds[0] = netdev_del_cmd;
|
||||||
cmds[1] = add_cmd;
|
cmds[1] = add_default_gid_cmd;
|
||||||
|
cmds[2] = add_cmd;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case NETDEV_CHANGEUPPER:
|
case NETDEV_CHANGEUPPER:
|
||||||
|
|||||||
Reference in New Issue
Block a user