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 <ye.jin@oracle.com>
Signed-off-by: Pradeep Gopanapalli <pradeep.gopanapalli@oracle.com>
Reviewed-by: sajid zia <szia@oracle.com>
Signed-off-by: Qing Huang <qing.huang@oracle.com>
xscore-y := xscore_impl.o xs_ud.o xscore_api.o xsmp.o \
xscore_stats.o xscore_uadm.o
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
vhba_attr.o vhba_wq.o vhba_proc.o vhba_stats.o vhba_ib.o \
vhba_scsi_intf.o vhba_align.o
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
obj-$(CONFIG_INFINIBAND_XSVNIC) := xsvnic.o
xsvnic-y := xsvnic_main.o xsvnic_stats.o
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
xve-y := xve_main.o xve_verbs.o xve_multicast.o xve_ib.o xve_tables.o \
xve_ethtool.o xve_cm.o xve_stats.o
-ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8014\"
+ccflags-y += -DXSIGO_LOCAL_VERSION=\"6.0.r8016\"
ccflags-y += -DRDMA_PORT_LINK_LAYER_CHANGES -DHAS_SKB_ACCESS_FUNCTIONS
ccflags-y += -DSCSI_STRUCT_CHANGES -DSCSI_TIMEOUT_CHANGES -DLLE
ccflags-y += -DXG_FRAG_SIZE_PRESENT -DXG_FRAG_PAGE_PRESENT
xve_flush_paths(priv->netdev);
spin_lock_irqsave(&priv->lock, flags);
- xve_set_oper_down(priv);
+ /* Disjoin from multicast Group */
set_bit(XVE_HBEAT_LOST, &priv->state);
spin_unlock_irqrestore(&priv->lock, flags);
+ xve_queue_work(priv, XVE_WQ_START_FLUSHNORMAL);
}
priv->counters[XVE_STATE_MACHINE_UP]++;
if (!test_bit(XVE_OPER_REP_SENT, &priv->state))
tmp_buf[0] = 0;
print_mgid_buf(tmp_buf, local_gid_token);
+ seq_printf(m, "Type:\t\t\t\t%s\n", (vp->vnic_type) ? "EDR" : "Legacy");
seq_printf(m, "Local gid:\t\t\t%s\n", tmp_buf);
seq_printf(m, "MAC addr:\t\t\t0x%Lx\n", vp->mac);
seq_printf(m, "VID:\t\t\t\t0x%Lx\n", vp->resource_id);