Blob Blame History Raw
From: Parav Pandit <parav@mellanox.com>
Date: Tue, 14 Aug 2018 10:36:20 +0300
Subject: IB/core: Update GID entries for netdevice whose mac address changes
Patch-mainline: v4.19-rc1
Git-commit: d12e2eed2743856b4493aeda4f6ed1bb0fa47e57
References: bsc#1103992 FATE#326009

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>
Acked-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/infiniband/core/roce_gid_mgmt.c |   13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

--- a/drivers/infiniband/core/roce_gid_mgmt.c
+++ b/drivers/infiniband/core/roce_gid_mgmt.c
@@ -291,7 +291,7 @@ static void update_gid_ip(enum gid_op_ty
 static void bond_delete_netdev_default_gids(struct ib_device *ib_dev,
 					    u8 port,
 					    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);
 	unsigned long gid_type_mask;
@@ -725,9 +725,9 @@ static int netdevice_event(struct notifi
 	static const struct netdev_event_work_cmd bonding_default_del_cmd_join = {
 		.cb = del_netdev_default_ips_join, .filter = is_eth_port_inactive_slave};
 	static const struct netdev_event_work_cmd
-			default_del_cmd = {
-				.cb	= bond_delete_netdev_default_gids,
-				.filter = pass_all_filter
+			netdev_del_cmd = {
+				.cb	= del_netdev_ips,
+				.filter = is_eth_port_of_netdev
 			};
 	static const struct netdev_event_work_cmd bonding_event_ips_del_cmd = {
 		.cb = del_netdev_upper_ips, .filter = upper_device_filter};
@@ -753,8 +753,9 @@ static int netdevice_event(struct notifi
 		break;
 
 	case NETDEV_CHANGEADDR:
-		cmds[0] = default_del_cmd;
-		cmds[1] = add_cmd;
+		cmds[0] = netdev_del_cmd;
+		cmds[1] = add_default_gid_cmd;
+		cmds[2] = add_cmd;
 		break;
 
 	case NETDEV_CHANGEUPPER: