Skip to content

Commit 6863387

Browse files
Pradeep GopanapalliLinuxMinion
authored andcommitted
Fixed vnic issue after saturn reset
After saturn reboots uVnic will not recover The issue happens When a host connected to NM3 via infiniband switch. The fact here is xve driver sets OPER_DOWN when it losses HEART_BEAT and there is no way for it set this state back . Fixing this by disjoining Multicast group once HeartBeat is lost and joining back once saturn comes back Orabug: 22862488 Reported-by: Ye Jin <[email protected]> Signed-off-by: Pradeep Gopanapalli <[email protected]> Reviewed-by: sajid zia <[email protected]> Signed-off-by: Qing Huang <[email protected]>
1 parent 3f1710e commit 6863387

File tree

6 files changed

+7
-5
lines changed

6 files changed

+7
-5
lines changed

drivers/infiniband/ulp/xsigo/xscore/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ obj-$(CONFIG_INFINIBAND_XSCORE) := xscore.o
22
xscore-y := xscore_impl.o xs_ud.o xscore_api.o xsmp.o \
33
xscore_stats.o xscore_uadm.o
44

5-
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
5+
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
66
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
77
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
88
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT

drivers/infiniband/ulp/xsigo/xsvhba/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ xsvhba-y := vhba_main.o vhba_xsmp.o vhba_create.o vhba_init.o vhba_delete.o \
33
vhba_attr.o vhba_wq.o vhba_proc.o vhba_stats.o vhba_ib.o \
44
vhba_scsi_intf.o vhba_align.o
55

6-
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
6+
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
77
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
88
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
99
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT

drivers/infiniband/ulp/xsigo/xsvnic/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
obj-$(CONFIG_INFINIBAND_XSVNIC) := xsvnic.o
22
xsvnic-y := xsvnic_main.o xsvnic_stats.o
33

4-
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
4+
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
55
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
66
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
77
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT

drivers/infiniband/ulp/xsigo/xve/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ obj-$(CONFIG_INFINIBAND_XVE) := xve.o
22
xve-y := xve_main.o xve_verbs.o xve_multicast.o xve_ib.o xve_tables.o \
33
xve_ethtool.o xve_cm.o xve_stats.o
44

5-
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
5+
ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
66
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
77
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
88
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT

drivers/infiniband/ulp/xsigo/xve/xve_main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1605,9 +1605,10 @@ static int xve_state_machine(struct xve_dev_priv *priv)
16051605

16061606
xve_flush_paths(priv->netdev);
16071607
spin_lock_irqsave(&priv->lock, flags);
1608-
xve_set_oper_down(priv);
1608+
/* Disjoin from multicast Group */
16091609
set_bit(XVE_HBEAT_LOST, &priv->state);
16101610
spin_unlock_irqrestore(&priv->lock, flags);
1611+
xve_queue_work(priv, XVE_WQ_START_FLUSHNORMAL);
16111612
}
16121613
priv->counters[XVE_STATE_MACHINE_UP]++;
16131614
if (!test_bit(XVE_OPER_REP_SENT, &priv->state))

drivers/infiniband/ulp/xsigo/xve/xve_stats.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,7 @@ static int xve_proc_read_device(struct seq_file *m, void *data)
449449
tmp_buf[0] = 0;
450450
print_mgid_buf(tmp_buf, local_gid_token);
451451

452+
seq_printf(m, "Type:\t\t\t\t%s\n", (vp->vnic_type) ? "EDR" : "Legacy");
452453
seq_printf(m, "Local gid:\t\t\t%s\n", tmp_buf);
453454
seq_printf(m, "MAC addr:\t\t\t0x%Lx\n", vp->mac);
454455
seq_printf(m, "VID:\t\t\t\t0x%Lx\n", vp->resource_id);

0 commit comments

Comments
 (0)