svn commit: r333217 - stable/11/contrib/ofed/libibumad
Slava Shwartsman
slavash at FreeBSD.org
Thu May 3 16:19:47 UTC 2018
Author: slavash
Date: Thu May 3 16:19:47 2018
New Revision: 333217
URL: https://svnweb.freebsd.org/changeset/base/333217
Log:
MFC r333115:
libibumad/umad.c: In get_port, ignore sysctl get rate errors
This can cause ibpanic in ibstat when width is not set properly
as can occur when Ethernet port is connected to InfiniBand fabric.
ibpanic: [8167] main: stat of IB device 'mlx5_0' failed: m
With this change, Rate is displayed as 0 with ibstat for
this scenario.
Approved by: hselasky (mentor), kib (mentor)
Sponsored by: Mellanox Technologies
Modified:
stable/11/contrib/ofed/libibumad/umad.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/contrib/ofed/libibumad/umad.c
==============================================================================
--- stable/11/contrib/ofed/libibumad/umad.c Thu May 3 15:47:49 2018 (r333216)
+++ stable/11/contrib/ofed/libibumad/umad.c Thu May 3 16:19:47 2018 (r333217)
@@ -138,6 +138,7 @@ static int get_port(const char *ca_name, const char *d
strncpy(port->ca_name, ca_name, sizeof port->ca_name - 1);
port->portnum = portnum;
port->pkeys = NULL;
+ port->rate = 0;
len = snprintf(port_dir, sizeof(port_dir), "%s/%d", dir, portnum);
if (len < 0 || len > sizeof(port_dir))
@@ -155,8 +156,12 @@ static int get_port(const char *ca_name, const char *d
goto clean;
if (sys_read_uint(port_dir, SYS_PORT_PHY_STATE, &port->phys_state) < 0)
goto clean;
- if (sys_read_uint(port_dir, SYS_PORT_RATE, &port->rate) < 0)
- goto clean;
+ /*
+ * If width was not set properly this read may fail.
+ * Instead of failing everything, we will just skip the check
+ * and it will be set to 0.
+ */
+ sys_read_uint(port_dir, SYS_PORT_RATE, &port->rate);
if (sys_read_uint(port_dir, SYS_PORT_CAPMASK, &capmask) < 0)
goto clean;
More information about the svn-src-stable
mailing list