components/open-fabrics/libibmad/patches/004-libibmad-ignore_status_no_records_for_rmpp.patch
author shruthi.rr@oracle.com <shruthi.rr@oracle.com>
Sun, 16 Apr 2017 23:02:27 -0700
branchs11u3-sru
changeset 7874 97b612ab3f39
permissions -rw-r--r--
25253258 SUPERCLUSTER : Unexpected reboot of a CELL server causes session spike

# This patch was developed both in-house and from outside. We plan to submit it
# upstream, but do not yet have a target date for doing so
#
# HG changeset patch
# Parent  843ca3437b9195b6288f704dac8da953589aab51
25253258 SUPERCLUSTER : Unexpected reboot of a CELL server causes session spike

diff -r 843ca3437b91 src/rpc.c
--- a/src/rpc.c	Mon Feb 13 10:57:32 2017 -0800
+++ b/src/rpc.c	Mon Feb 13 11:07:47 2017 -0800
@@ -310,10 +310,18 @@
 
 	mad = umad_get_mad(rcvbuf);
 
+
+#define LIBIBMAD_SA_MAD_STATUS_NO_RECORDS 0x0300U
 	if ((status = mad_get_field(mad, 0, IB_MAD_STATUS_F)) != 0) {
-		ERRS("MAD completed with error status 0x%x; dport (%s)",
-		     status, portid2str(dport));
-		errno = EIO;
+		if (!rmpp &&
+		    status == (int)LIBIBMAD_SA_MAD_STATUS_NO_RECORDS) {
+			IBWARN("MAD completed with error status NO_RECORDS - skip setting errno; dport (%s)",
+			     portid2str(dport));
+		} else {
+			ERRS("MAD completed with error status 0x%x; dport (%s)",
+			     status, portid2str(dport));
+			errno = EIO;
+		}
 		return NULL;
 	}