diff mbox

[2/4] opensm/osm_pkey_mgr.c: Detect pkey table overflow in pkey_mgr_update_port

Message ID 4DDBEA01.8010701@dev.mellanox.co.il (mailing list archive)
State New, archived
Delegated to: Alex Netes
Headers show

Commit Message

Hal Rosenstock May 24, 2011, 5:25 p.m. UTC
Signed-off-by: Hal Rosenstock <hal@mellanox.com>
---
 opensm/osm_pkey_mgr.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)
diff mbox

Patch

diff --git a/opensm/osm_pkey_mgr.c b/opensm/osm_pkey_mgr.c
index 4c92c05..70471b0 100644
--- a/opensm/osm_pkey_mgr.c
+++ b/opensm/osm_pkey_mgr.c
@@ -343,17 +343,16 @@  static int pkey_mgr_update_port(osm_log_t * p_log, osm_sm_t * sm,
 				if (pkey_index >= IB_NUM_PKEY_ELEMENTS_IN_BLOCK) {
 					block_index++;
 					pkey_index -= IB_NUM_PKEY_ELEMENTS_IN_BLOCK;
-					if (block_index * IB_NUM_PKEY_ELEMENTS_IN_BLOCK + pkey_index >= pkey_mgr_get_physp_max_pkeys(p_physp)) {
-						OSM_LOG(p_log, OSM_LOG_ERROR,
-							"ERR 0512: "
-							"Failed to set PKey 0x%04x since Pkey table is full "
-							"for node 0x%016" PRIx64 " port %u (%s)\n",
-
-							cl_ntoh16(p_pending->pkey),
-							cl_ntoh64(osm_node_get_node_guid(p_node)),
-							osm_physp_get_port_num(p_physp),
-							p_physp->p_node->print_desc);
-					}
+				}
+				if (block_index * IB_NUM_PKEY_ELEMENTS_IN_BLOCK + pkey_index >= pkey_mgr_get_physp_max_pkeys(p_physp)) {
+					OSM_LOG(p_log, OSM_LOG_ERROR,
+						"ERR 0512: "
+						"Failed to set PKey 0x%04x because Pkey table is full "
+						"for node 0x%016" PRIx64 " port %u (%s)\n",
+						cl_ntoh16(p_pending->pkey),
+						cl_ntoh64(osm_node_get_node_guid(p_node)),
+						osm_physp_get_port_num(p_physp),
+						p_physp->p_node->print_desc);
 				} else
 					found = TRUE;
 			}