All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hal Rosenstock <hal-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
To: Line Holen <line.holen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Cc: "linux-rdma
	(linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org)"
	<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: [PATCH opensm] osm_sa_guidinfo_record.c: False duplicate GUID error messages
Date: Thu, 05 Sep 2013 10:18:38 -0400	[thread overview]
Message-ID: <522892BE.7070002@dev.mellanox.co.il> (raw)


If the same request is received twice then the second one will cause
error messages indicating duplicate alias GUIDs. In this case this is
a false warning. The second request should be treated as a void and
return success to the requester.

Signed-off-by: Line Holen <Line.Holen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Hal Rosenstock <hal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
diff --git a/opensm/osm_sa_guidinfo_record.c b/opensm/osm_sa_guidinfo_record.c
index 8323b38..28f6c0f 100644
--- a/opensm/osm_sa_guidinfo_record.c
+++ b/opensm/osm_sa_guidinfo_record.c
@@ -653,15 +653,21 @@ add_alias_guid:
 							    p_alias_guid->alias_guid,
 							    &p_alias_guid->map_item);
 		if (p_alias_guid_check != p_alias_guid) {
-			/* alias GUID is a duplicate */
-			OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 5108: "
-				"Duplicate alias port GUID 0x%" PRIx64
-				" index %d base port GUID 0x%" PRIx64 "\n",
-				cl_ntoh64(p_alias_guid->alias_guid), i,
-				cl_ntoh64(p_alias_guid->p_base_port->guid));
-			osm_alias_guid_delete(&p_alias_guid);
-			/* clear response guid at index to indicate duplicate */
-			p_rcvd_rec->guid_info.guid[i % 8] = 0;
+			/* alias GUID is a duplicate if it exists on another port or on the same port but at another index */
+			if (p_alias_guid_check->p_base_port != p_port ||
+			    (*p_port->p_physp->p_guids)[i] != set_alias_guid) {
+				OSM_LOG(sa->p_log, OSM_LOG_ERROR, "ERR 5108: "
+					"Duplicate alias port GUID 0x%" PRIx64
+					" index %d base port GUID 0x%" PRIx64
+					", alias GUID already assigned to "
+					"base port GUID 0x%" PRIx64 "\n",
+					cl_ntoh64(p_alias_guid->alias_guid), i,
+					cl_ntoh64(p_alias_guid->p_base_port->guid),
+					cl_ntoh64(p_alias_guid_check->p_base_port->guid));
+				osm_alias_guid_delete(&p_alias_guid);
+				/* clear response guid at index to indicate duplicate */
+				p_rcvd_rec->guid_info.guid[i % 8] = 0;
+			}
 		} else {
 			del_alias_guid = (*p_port->p_physp->p_guids)[i];
 			if (del_alias_guid) {
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2013-09-05 14:18 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-05 14:18 Hal Rosenstock [this message]
     [not found] ` <522892BE.7070002-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2013-09-05 19:15   ` [PATCH opensm] osm_sa_guidinfo_record.c: False duplicate GUID error messages Line Holen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=522892BE.7070002@dev.mellanox.co.il \
    --to=hal-ldsdmyg8hgv8yrgs2mwiifqbs+8scbdb@public.gmane.org \
    --cc=line.holen-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
    --cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.