osm_node_get_physp_ptr() will return only pointer to initialized
osm_physp_t or NULL otherwise. This simplifies many flows in OpenSM.

Signed-off-by: Sasha Khapyorsky <[EMAIL PROTECTED]>
---
 opensm/include/opensm/osm_node.h        |   10 +++---
 opensm/include/opensm/osm_port.h        |    2 +-
 opensm/opensm/osm_console.c             |    2 +-
 opensm/opensm/osm_drop_mgr.c            |    6 ++--
 opensm/opensm/osm_dump.c                |    9 +++---
 opensm/opensm/osm_lid_mgr.c             |    8 ++---
 opensm/opensm/osm_link_mgr.c            |    8 +----
 opensm/opensm/osm_mcast_mgr.c           |   23 +--------------
 opensm/opensm/osm_node.c                |    9 +++---
 opensm/opensm/osm_perfmgr.c             |    4 +-
 opensm/opensm/osm_pkey_mgr.c            |    8 +++---
 opensm/opensm/osm_pkey_rcv.c            |    2 +-
 opensm/opensm/osm_port.c                |   23 +++++++---------
 opensm/opensm/osm_port_info_rcv.c       |    9 +++---
 opensm/opensm/osm_qos.c                 |    4 +-
 opensm/opensm/osm_qos_parser.y          |    5 +--
 opensm/opensm/osm_sa_guidinfo_record.c  |    7 ++---
 opensm/opensm/osm_sa_link_record.c      |   44 +++++++-----------------------
 opensm/opensm/osm_sa_multipath_record.c |    3 --
 opensm/opensm/osm_sa_node_record.c      |    7 ++---
 opensm/opensm/osm_sa_path_record.c      |    3 --
 opensm/opensm/osm_sa_pkey_record.c      |    4 +-
 opensm/opensm/osm_sa_portinfo_record.c  |    8 +++---
 opensm/opensm/osm_sa_slvl_record.c      |    4 +-
 opensm/opensm/osm_sa_vlarb_record.c     |    4 +-
 opensm/opensm/osm_slvl_map_rcv.c        |    4 +--
 opensm/opensm/osm_state_mgr.c           |    5 +--
 opensm/opensm/osm_sw_info_rcv.c         |    6 ----
 opensm/opensm/osm_switch.c              |    6 +---
 opensm/opensm/osm_trap_rcv.c            |   27 ++++++++----------
 opensm/opensm/osm_ucast_ftree.c         |   22 +++------------
 opensm/opensm/osm_ucast_lash.c          |   14 +++------
 opensm/opensm/osm_ucast_updn.c          |    7 +---
 opensm/opensm/osm_vl_arb_rcv.c          |    4 +--
 34 files changed, 107 insertions(+), 204 deletions(-)

diff --git a/opensm/include/opensm/osm_node.h b/opensm/include/opensm/osm_node.h
index a900e03..56e4dbb 100644
--- a/opensm/include/opensm/osm_node.h
+++ b/opensm/include/opensm/osm_node.h
@@ -213,13 +213,13 @@ osm_node_t *osm_node_new(IN const osm_madw_t * const 
p_madw);
 *
 * SYNOPSIS
 */
-static inline osm_physp_t *osm_node_get_physp_ptr(IN const osm_node_t *
-                                                 const p_node,
+static inline osm_physp_t *osm_node_get_physp_ptr(IN osm_node_t * const p_node,
                                                  IN const uint32_t port_num)
 {
 
        CL_ASSERT(port_num < p_node->physp_tbl_size);
-       return ((osm_physp_t *) & p_node->physp_table[port_num]);
+       return osm_physp_is_valid(&p_node->physp_table[port_num]) ?
+               &p_node->physp_table[port_num] : NULL;
 }
 
 /*
@@ -383,7 +383,7 @@ static inline uint8_t osm_node_get_num_physp(IN const 
osm_node_t * const p_node)
 *
 * SYNOPSIS
 */
-osm_node_t *osm_node_get_remote_node(IN const osm_node_t * const p_node,
+osm_node_t *osm_node_get_remote_node(IN osm_node_t * const p_node,
                                     IN const uint8_t port_num,
                                     OUT uint8_t * p_remote_port_num);
 /*
@@ -457,7 +457,7 @@ osm_node_get_base_lid(IN const osm_node_t * const p_node,
 * SYNOPSIS
 */
 ib_net16_t
-osm_node_get_remote_base_lid(IN const osm_node_t * const p_node,
+osm_node_get_remote_base_lid(IN osm_node_t * const p_node,
                             IN const uint32_t port_num);
 /*
 * PARAMETERS
diff --git a/opensm/include/opensm/osm_port.h b/opensm/include/opensm/osm_port.h
index 1bf737c..963e13b 100644
--- a/opensm/include/opensm/osm_port.h
+++ b/opensm/include/opensm/osm_port.h
@@ -1252,7 +1252,7 @@ void osm_port_delete(IN OUT osm_port_t ** const pp_port);
 * SYNOPSIS
 */
 osm_port_t *osm_port_new(IN const ib_node_info_t * p_ni,
-                        IN const struct _osm_node *const p_parent_node);
+                        IN struct _osm_node *const p_parent_node);
 /*
 * PARAMETERS
 *      p_ni
diff --git a/opensm/opensm/osm_console.c b/opensm/opensm/osm_console.c
index ced02e3..c0e7886 100644
--- a/opensm/opensm/osm_console.c
+++ b/opensm/opensm/osm_console.c
@@ -630,7 +630,7 @@ static void __get_stats(cl_map_item_t * const p_map_item, 
void *context)
                uint8_t port_state = ib_port_info_get_port_state(pi);
                uint8_t port_phys_state = ib_port_info_get_port_phys_state(pi);
 
-               if (!osm_physp_is_valid(phys))
+               if (!phys)
                        continue;
 
                if ((enabled_width ^ active_width) > active_width) {
diff --git a/opensm/opensm/osm_drop_mgr.c b/opensm/opensm/osm_drop_mgr.c
index 39ceaa1..2b8966c 100644
--- a/opensm/opensm/osm_drop_mgr.c
+++ b/opensm/opensm/osm_drop_mgr.c
@@ -136,7 +136,7 @@ drop_mgr_clean_physp(IN const osm_drop_mgr_t * const p_mgr,
        osm_port_t *p_remote_port;
 
        p_remote_physp = osm_physp_get_remote(p_physp);
-       if (p_remote_physp && osm_physp_is_valid(p_remote_physp)) {
+       if (p_remote_physp) {
                p_remote_port = osm_get_port_by_guid(p_mgr->p_subn,
                                                     p_remote_physp->port_guid);
 
@@ -383,7 +383,7 @@ __osm_drop_mgr_process_node(IN const osm_drop_mgr_t * const 
p_mgr,
        max_ports = osm_node_get_num_physp(p_node);
        for (port_num = 0; port_num < max_ports; port_num++) {
                p_physp = osm_node_get_physp_ptr(p_node, port_num);
-               if (osm_physp_is_valid(p_physp)) {
+               if (p_physp) {
                        port_guid = osm_physp_get_port_guid(p_physp);
 
                        p_port = osm_get_port_by_guid(p_mgr->p_subn, port_guid);
@@ -454,7 +454,7 @@ __osm_drop_mgr_check_node(IN const osm_drop_mgr_t * const 
p_mgr,
 
        /* Make sure we have a port object for port zero */
        p_physp = osm_node_get_physp_ptr(p_node, 0);
-       if (!osm_physp_is_valid(p_physp)) {
+       if (!p_physp) {
                osm_log(p_mgr->p_log, OSM_LOG_VERBOSE,
                        "__osm_drop_mgr_check_node: "
                        "Node 0x%016" PRIx64 " no valid physical port 0\n",
diff --git a/opensm/opensm/osm_dump.c b/opensm/opensm/osm_dump.c
index 43ae05e..f47c992 100644
--- a/opensm/opensm/osm_dump.c
+++ b/opensm/opensm/osm_dump.c
@@ -394,11 +394,11 @@ static void dump_topology_node(cl_map_item_t * 
p_map_item, void *cxt)
                uint8_t port_state;
 
                p_physp = osm_node_get_physp_ptr(p_node, cPort);
-               if (!osm_physp_is_valid(p_physp))
+               if (!p_physp)
                        continue;
 
                p_rphysp = p_physp->p_remote_physp;
-               if (!p_rphysp || !osm_physp_is_valid(p_rphysp))
+               if (!p_rphysp)
                        continue;
 
                CL_ASSERT(cPort == p_physp->port_num);
@@ -503,7 +503,7 @@ static void print_node_report(cl_map_item_t * p_map_item, 
void *cxt)
        port_num = node_type == IB_NODE_TYPE_SWITCH ? 0 : 1;
        for (; port_num < num_ports; port_num++) {
                p_physp = osm_node_get_physp_ptr(p_node, port_num);
-               if (!osm_physp_is_valid(p_physp))
+               if (!p_physp)
                        continue;
 
                osm_log_printf(log, OSM_LOG_VERBOSE, "%-11s : %s : %02X :",
@@ -563,8 +563,7 @@ static void print_node_report(cl_map_item_t * p_map_item, 
void *cxt)
                if (port_num
                    && (ib_port_info_get_port_state(p_pi) != IB_LINK_DOWN)) {
                        p_remote_physp = osm_physp_get_remote(p_physp);
-                       if (p_remote_physp
-                           && osm_physp_is_valid(p_remote_physp))
+                       if (p_remote_physp)
                                osm_log_printf(log, OSM_LOG_VERBOSE,
                                               " %016" PRIx64 " (%02X)",
                                               cl_ntoh64
diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c
index f248676..3ceb145 100644
--- a/opensm/opensm/osm_lid_mgr.c
+++ b/opensm/opensm/osm_lid_mgr.c
@@ -883,10 +883,8 @@ __osm_lid_mgr_set_remote_pi_state_to_init(IN osm_lid_mgr_t 
* const p_mgr,
        if (p_rem_physp == NULL)
                return;
 
-       if (osm_physp_is_valid(p_rem_physp))
-               /* but in some rare cases the remote side might be irresponsive 
*/
-               ib_port_info_set_port_state(&p_rem_physp->port_info,
-                                           IB_LINK_INIT);
+       /* but in some rare cases the remote side might be irresponsive */
+       ib_port_info_set_port_state(&p_rem_physp->port_info, IB_LINK_INIT);
 }
 
 /**********************************************************************
@@ -914,7 +912,7 @@ __osm_lid_mgr_set_physp_pi(IN osm_lid_mgr_t * const p_mgr,
           Don't bother doing anything if this Physical Port is not valid.
           This allows simplified code in the caller.
         */
-       if (p_physp == NULL || !osm_physp_is_valid(p_physp))
+       if (!p_physp)
                goto Exit;
 
        port_num = osm_physp_get_port_num(p_physp);
diff --git a/opensm/opensm/osm_link_mgr.c b/opensm/opensm/osm_link_mgr.c
index 3d38362..19cb27d 100644
--- a/opensm/opensm/osm_link_mgr.c
+++ b/opensm/opensm/osm_link_mgr.c
@@ -116,9 +116,6 @@ __osm_link_mgr_set_physp_pi(IN osm_link_mgr_t * const p_mgr,
 
        OSM_LOG_ENTER(p_mgr->p_log, __osm_link_mgr_set_physp_pi);
 
-       CL_ASSERT(p_physp);
-       CL_ASSERT(osm_physp_is_valid(p_physp));
-
        p_node = osm_physp_get_node_ptr(p_physp);
 
        port_num = osm_physp_get_port_num(p_physp);
@@ -241,8 +238,7 @@ __osm_link_mgr_set_physp_pi(IN osm_link_mgr_t * const p_mgr,
                   Several timeout mechanisms:
                 */
                p_remote_physp = osm_physp_get_remote(p_physp);
-               if (port_num != 0 && p_remote_physp &&
-                   osm_physp_is_valid(p_remote_physp)) {
+               if (port_num != 0 && p_remote_physp) {
                        if (osm_node_get_type(osm_physp_get_node_ptr(p_physp))
                            == IB_NODE_TYPE_ROUTER) {
                                ib_port_info_set_hoq_lifetime(p_pi,
@@ -418,7 +414,7 @@ __osm_link_mgr_process_node(IN osm_link_mgr_t * const p_mgr,
                   specified state.
                 */
                p_physp = osm_node_get_physp_ptr(p_node, (uint8_t) i);
-               if (!osm_physp_is_valid(p_physp))
+               if (!p_physp)
                        continue;
 
                current_state = osm_physp_get_port_state(p_physp);
diff --git a/opensm/opensm/osm_mcast_mgr.c b/opensm/opensm/osm_mcast_mgr.c
index 0c0ab25..1178522 100644
--- a/opensm/opensm/osm_mcast_mgr.c
+++ b/opensm/opensm/osm_mcast_mgr.c
@@ -720,7 +720,7 @@ static osm_mtree_node_t 
*__osm_mcast_mgr_branch(osm_mcast_mgr_t * const p_mgr,
        for (i = 0; i < max_children; i++) {
                const osm_physp_t *p_physp;
                const osm_physp_t *p_remote_physp;
-               const osm_node_t *p_node;
+               osm_node_t *p_node;
                const osm_node_t *p_remote_node;
 
                p_port_list = &list_array[i];
@@ -767,11 +767,10 @@ static osm_mtree_node_t 
*__osm_mcast_mgr_branch(osm_mcast_mgr_t * const p_mgr,
                        CL_ASSERT(p_remote_node->sw);
 
                        p_physp = osm_node_get_physp_ptr(p_node, i);
-                       CL_ASSERT(osm_physp_is_valid(p_physp));
+                       CL_ASSERT(p_physp);
 
                        p_remote_physp = osm_physp_get_remote(p_physp);
                        CL_ASSERT(p_remote_physp);
-                       CL_ASSERT(osm_physp_is_valid(p_remote_physp));
 
                        p_mtn->child_array[i] =
                            __osm_mcast_mgr_branch(p_mgr, p_mgrp,
@@ -1068,15 +1067,6 @@ osm_mcast_mgr_process_single(IN osm_mcast_mgr_t * const 
p_mgr,
                goto Exit;
        }
 
-       if (!osm_physp_is_valid(p_physp)) {
-               osm_log(p_mgr->p_log, OSM_LOG_ERROR,
-                       "osm_mcast_mgr_process_single: ERR 0A07: "
-                       "Unable to acquire valid physical port object "
-                       "for 0x%" PRIx64 "\n", cl_ntoh64(port_guid));
-               status = IB_ERROR;
-               goto Exit;
-       }
-
        p_remote_physp = osm_physp_get_remote(p_physp);
        if (p_remote_physp == NULL) {
                osm_log(p_mgr->p_log, OSM_LOG_ERROR,
@@ -1087,15 +1077,6 @@ osm_mcast_mgr_process_single(IN osm_mcast_mgr_t * const 
p_mgr,
                goto Exit;
        }
 
-       if (!osm_physp_is_valid(p_remote_physp)) {
-               osm_log(p_mgr->p_log, OSM_LOG_ERROR,
-                       "osm_mcast_mgr_process_single: ERR 0A21: "
-                       "Unable to acquire valid remote physical port object "
-                       "for 0x%" PRIx64 "\n", cl_ntoh64(port_guid));
-               status = IB_ERROR;
-               goto Exit;
-       }
-
        p_remote_node = osm_physp_get_node_ptr(p_remote_physp);
 
        CL_ASSERT(p_remote_node);
diff --git a/opensm/opensm/osm_node.c b/opensm/opensm/osm_node.c
index 4586ff5..85ea3c9 100644
--- a/opensm/opensm/osm_node.c
+++ b/opensm/opensm/osm_node.c
@@ -261,8 +261,7 @@ osm_node_link_has_valid_ports(IN osm_node_t * const p_node,
        p_physp = osm_node_get_physp_ptr(p_node, port_num);
        p_remote_physp = osm_node_get_physp_ptr(p_remote_node, remote_port_num);
 
-       return (osm_physp_is_valid(p_physp) &&
-               osm_physp_is_valid(p_remote_physp));
+       return (p_physp && p_remote_physp);
 }
 
 /**********************************************************************
@@ -278,7 +277,7 @@ osm_node_has_any_link(IN osm_node_t * const p_node, IN 
const uint8_t port_num)
 
 /**********************************************************************
  **********************************************************************/
-osm_node_t *osm_node_get_remote_node(IN const osm_node_t * const p_node,
+osm_node_t *osm_node_get_remote_node(IN osm_node_t * const p_node,
                                     IN const uint8_t port_num,
                                     OUT uint8_t * p_remote_port_num)
 {
@@ -301,7 +300,7 @@ osm_node_t *osm_node_get_remote_node(IN const osm_node_t * 
const p_node,
  The lock must be held before calling this function.
 **********************************************************************/
 ib_net16_t
-osm_node_get_remote_base_lid(IN const osm_node_t * const p_node,
+osm_node_get_remote_base_lid(IN osm_node_t * const p_node,
                             IN const uint32_t port_num)
 {
        osm_physp_t *p_physp;
@@ -309,7 +308,7 @@ osm_node_get_remote_base_lid(IN const osm_node_t * const 
p_node,
        CL_ASSERT(port_num < p_node->physp_tbl_size);
 
        p_physp = osm_node_get_physp_ptr(p_node, port_num);
-       if (osm_physp_is_valid(p_physp)) {
+       if (p_physp) {
                p_remote_physp = osm_physp_get_remote(p_physp);
                return (osm_physp_get_base_lid(p_remote_physp));
        }
diff --git a/opensm/opensm/osm_perfmgr.c b/opensm/opensm/osm_perfmgr.c
index 860a20d..091b46a 100644
--- a/opensm/opensm/osm_perfmgr.c
+++ b/opensm/opensm/osm_perfmgr.c
@@ -515,7 +515,7 @@ __osm_perfmgr_query_counters(cl_map_item_t * const 
p_map_item, void *context)
        for (port = startport; port < num_ports; port++) {
                ib_net16_t lid;
 
-               if (!osm_physp_is_valid(osm_node_get_physp_ptr(node, port)))
+               if (!osm_node_get_physp_ptr(node, port))
                        continue;
 
                lid = get_lid(node, port, mon_node);
@@ -592,7 +592,7 @@ static int sweep_hop_1(osm_sm_t * sm)
 
        p_physp = osm_node_get_physp_ptr(p_node, port_num);
 
-       CL_ASSERT(osm_physp_is_valid(p_physp));
+       CL_ASSERT(p_physp);
 
        p_dr_path = osm_physp_get_dr_path_ptr(p_physp);
        h_bind = osm_dr_path_get_bind_handle(p_dr_path);
diff --git a/opensm/opensm/osm_pkey_mgr.c b/opensm/opensm/osm_pkey_mgr.c
index e098d9b..df17549 100644
--- a/opensm/opensm/osm_pkey_mgr.c
+++ b/opensm/opensm/osm_pkey_mgr.c
@@ -167,7 +167,7 @@ pkey_mgr_process_partition_table(osm_log_t * p_log, 
osm_sm_t * sm,
                i = i_next;
                i_next = cl_map_next(i);
                p_physp = cl_map_obj(i);
-               if (p_physp && osm_physp_is_valid(p_physp))
+               if (p_physp)
                        pkey_mgr_process_physical_port(p_log, sm, pkey,
                                                       p_physp);
        }
@@ -290,7 +290,7 @@ static boolean_t pkey_mgr_update_port(osm_log_t * p_log, 
osm_sm_t * sm,
        memset(&empty_block, 0, sizeof(ib_pkey_table_t));
 
        p_physp = p_port->p_physp;
-       if (!osm_physp_is_valid(p_physp))
+       if (!p_physp)
                return FALSE;
 
        p_node = osm_physp_get_node_ptr(p_physp);
@@ -424,10 +424,10 @@ pkey_mgr_update_peer_port(osm_log_t * p_log, osm_sm_t * 
sm,
        memset(&empty_block, 0, sizeof(ib_pkey_table_t));
 
        p_physp = p_port->p_physp;
-       if (!osm_physp_is_valid(p_physp))
+       if (!p_physp)
                return FALSE;
        peer = osm_physp_get_remote(p_physp);
-       if (!peer || !osm_physp_is_valid(peer))
+       if (!peer)
                return FALSE;
        p_node = osm_physp_get_node_ptr(peer);
        if (!p_node->sw || !p_node->sw->switch_info.enforce_cap)
diff --git a/opensm/opensm/osm_pkey_rcv.c b/opensm/opensm/osm_pkey_rcv.c
index c510ab5..a827e28 100644
--- a/opensm/opensm/osm_pkey_rcv.c
+++ b/opensm/opensm/osm_pkey_rcv.c
@@ -129,7 +129,7 @@ void osm_pkey_rcv_process(IN void *context, IN void *data)
           Determine if we encountered a new Physical Port.
           If so, ignore it.
         */
-       if (!osm_physp_is_valid(p_physp)) {
+       if (!p_physp) {
                osm_log(sm->p_log, OSM_LOG_ERROR,
                        "osm_pkey_rcv_process: ERR 4807: "
                        "Got invalid port number 0x%X\n", port_num);
diff --git a/opensm/opensm/osm_port.c b/opensm/opensm/osm_port.c
index ffc4fb0..653212a 100644
--- a/opensm/opensm/osm_port.c
+++ b/opensm/opensm/osm_port.c
@@ -151,7 +151,7 @@ void osm_port_delete(IN OUT osm_port_t ** const pp_port)
 static void
 osm_port_init(IN osm_port_t * const p_port,
              IN const ib_node_info_t * p_ni,
-             IN const osm_node_t * const p_parent_node)
+             IN osm_node_t * const p_parent_node)
 {
        ib_net64_t port_guid;
        osm_physp_t *p_physp;
@@ -183,7 +183,7 @@ osm_port_init(IN osm_port_t * const p_port,
 /**********************************************************************
  **********************************************************************/
 osm_port_t *osm_port_new(IN const ib_node_info_t * p_ni,
-                        IN const osm_node_t * const p_parent_node)
+                        IN osm_node_t * const p_parent_node)
 {
        osm_port_t *p_port;
 
@@ -318,7 +318,7 @@ osm_physp_calc_link_mtu(IN osm_log_t * p_log, IN const 
osm_physp_t * p_physp)
        OSM_LOG_ENTER(p_log, osm_physp_calc_link_mtu);
 
        p_remote_physp = osm_physp_get_remote(p_physp);
-       if (p_remote_physp && osm_physp_is_valid(p_remote_physp)) {
+       if (p_remote_physp) {
                /* use the available MTU */
                mtu = ib_port_info_get_mtu_cap(&p_physp->port_info);
 
@@ -383,7 +383,7 @@ osm_physp_calc_link_op_vls(IN osm_log_t * p_log,
        OSM_LOG_ENTER(p_log, osm_physp_calc_link_op_vls);
 
        p_remote_physp = osm_physp_get_remote(p_physp);
-       if (p_remote_physp && osm_physp_is_valid(p_remote_physp)) {
+       if (p_remote_physp) {
                /* use the available VLCap */
                op_vls = ib_port_info_get_vl_cap(&p_physp->port_info);
 
@@ -508,7 +508,7 @@ __osm_physp_get_dr_physp_set(IN osm_log_t * p_log,
                        p_path->path[hop]);
 
                /* make sure we got a valid port and it has a remote port */
-               if (!osm_physp_is_valid(p_physp)) {
+               if (!p_physp) {
                        osm_log(p_log, OSM_LOG_ERROR,
                                "__osm_physp_get_dr_nodes_set: ERR 4104: "
                                "DR Traversal stopped on invalid port at 
hop:%u\n",
@@ -643,7 +643,6 @@ osm_physp_replace_dr_path_with_alternate_dr_path(IN 
osm_log_t * p_log,
        p_physp = p_port->p_physp;
 
        CL_ASSERT(p_physp);
-       CL_ASSERT(osm_physp_is_valid(p_physp));
 
        cl_list_insert_tail(p_nextPortsList, p_physp);
 
@@ -675,12 +674,11 @@ osm_physp_replace_dr_path_with_alternate_dr_path(IN 
osm_log_t * p_log,
                                /*
                                   make sure that all of the following occurred:
                                   1. The port isn't NULL
-                                  2. The port is a valid port
-                                  3. This is not the port we came from
-                                  4. The port is not in the physp_map
-                                  5. This port haven't been visited before
+                                  2. This is not the port we came from
+                                  3. The port is not in the physp_map
+                                  4. This port haven't been visited before
                                 */
-                               if (osm_physp_is_valid(p_remote_physp) &&
+                               if (p_remote_physp &&
                                    p_remote_physp != p_physp &&
                                    cl_map_get(&physp_map,
                                               __osm_ptr_to_key(p_remote_physp))
@@ -749,7 +747,7 @@ boolean_t osm_link_is_healthy(IN const osm_physp_t * const 
p_physp)
 
        CL_ASSERT(p_physp);
        p_remote_physp = p_physp->p_remote_physp;
-       if (p_remote_physp != NULL && osm_physp_is_valid(p_remote_physp))
+       if (p_remote_physp != NULL)
                return ((p_physp->healthy) & (p_remote_physp->healthy));
        /* the other side is not known - consider the link as healthy */
        return (TRUE);
@@ -766,7 +764,6 @@ osm_physp_set_pkey_tbl(IN osm_log_t * p_log,
        uint16_t max_blocks;
 
        CL_ASSERT(p_pkey_tbl);
-       CL_ASSERT(osm_physp_is_valid(p_physp));
        /*
           (14.2.5.7) - the block number valid values are 0-2047, and are 
further
           limited by the size of the P_Key table specified by the PartitionCap 
on the
diff --git a/opensm/opensm/osm_port_info_rcv.c 
b/opensm/opensm/osm_port_info_rcv.c
index b91d1a5..e56ba51 100644
--- a/opensm/opensm/osm_port_info_rcv.c
+++ b/opensm/opensm/osm_port_info_rcv.c
@@ -241,8 +241,7 @@ __osm_pi_rcv_process_switch_port(IN osm_sm_t * sm,
                switch (ib_port_info_get_port_state(p_pi)) {
                case IB_LINK_DOWN:
                        p_remote_physp = osm_physp_get_remote(p_physp);
-                       if (p_remote_physp
-                           && osm_physp_is_valid(p_remote_physp)) {
+                       if (p_remote_physp) {
                                p_remote_node =
                                    osm_physp_get_node_ptr(p_remote_physp);
                                remote_port_num =
@@ -475,7 +474,7 @@ osm_pi_rcv_process_set(IN osm_sm_t * sm, IN osm_node_t * 
const p_node,
        CL_ASSERT(p_node);
 
        p_physp = osm_node_get_physp_ptr(p_node, port_num);
-       CL_ASSERT(osm_physp_is_valid(p_physp));
+       CL_ASSERT(p_physp);
 
        port_guid = osm_physp_get_port_guid(p_physp);
 
@@ -639,13 +638,13 @@ void osm_pi_rcv_process(IN void *context, IN void *data)
                   If so, initialize the new Physical Port then
                   continue processing as normal.
                 */
-               if (!osm_physp_is_valid(p_physp)) {
+               if (!p_physp) {
                        if (osm_log_is_active(sm->p_log, OSM_LOG_VERBOSE))
                                osm_log(sm->p_log, OSM_LOG_VERBOSE,
                                        "osm_pi_rcv_process: "
                                        "Initializing port number 0x%X\n",
                                        port_num);
-
+                       p_physp = &p_node->physp_table[port_num];
                        osm_physp_init(p_physp,
                                       port_guid,
                                       port_num,
diff --git a/opensm/opensm/osm_qos.c b/opensm/opensm/osm_qos.c
index c437028..1a6cc05 100644
--- a/opensm/opensm/osm_qos.c
+++ b/opensm/opensm/osm_qos.c
@@ -311,7 +311,7 @@ osm_signal_t osm_qos_setup(osm_opensm_t * p_osm)
                        num_physp = osm_node_get_num_physp(p_node);
                        for (i = 1; i < num_physp; i++) {
                                p_physp = osm_node_get_physp_ptr(p_node, i);
-                               if (!osm_physp_is_valid(p_physp))
+                               if (!p_physp)
                                        continue;
                                force_update = p_physp->need_update ||
                                    p_osm->subn.need_update;
@@ -332,7 +332,7 @@ osm_signal_t osm_qos_setup(osm_opensm_t * p_osm)
                        cfg = &ca_config;
 
                p_physp = p_port->p_physp;
-               if (!osm_physp_is_valid(p_physp))
+               if (!p_physp)
                        continue;
 
                force_update = p_physp->need_update || p_osm->subn.need_update;
diff --git a/opensm/opensm/osm_qos_parser.y b/opensm/opensm/osm_qos_parser.y
index 8cae5f3..50cac63 100644
--- a/opensm/opensm/osm_qos_parser.y
+++ b/opensm/opensm/osm_qos_parser.y
@@ -2884,9 +2884,8 @@ static void __parser_add_port_to_port_map(
     cl_qmap_t   * p_map,
     osm_physp_t * p_physp)
 {
-    if (p_physp && osm_physp_is_valid(p_physp) &&
-        cl_qmap_get(p_map, cl_ntoh64(
-           osm_physp_get_port_guid(p_physp))) == cl_qmap_end(p_map))
+    if (cl_qmap_get(p_map, cl_ntoh64(osm_physp_get_port_guid(p_physp))) ==
+        cl_qmap_end(p_map))
     {
         osm_qos_port_t * p_port = osm_qos_policy_port_create(p_physp);
         if (p_port)
diff --git a/opensm/opensm/osm_sa_guidinfo_record.c 
b/opensm/opensm/osm_sa_guidinfo_record.c
index a2c47bb..af8ba6e 100644
--- a/opensm/opensm/osm_sa_guidinfo_record.c
+++ b/opensm/opensm/osm_sa_guidinfo_record.c
@@ -125,7 +125,7 @@ __osm_gir_rcv_new_gir(IN osm_sa_t * sa,
  **********************************************************************/
 static void
 __osm_sa_gir_create_gir(IN osm_sa_t * sa,
-                       IN const osm_node_t * const p_node,
+                       IN osm_node_t * const p_node,
                        IN cl_qlist_t * const p_list,
                        IN ib_net64_t const match_port_guid,
                        IN ib_net16_t const match_lid,
@@ -164,8 +164,7 @@ __osm_sa_gir_create_gir(IN osm_sa_t * sa,
 
        for (port_num = 0; port_num < num_ports; port_num++) {
                p_physp = osm_node_get_physp_ptr(p_node, port_num);
-
-               if (!osm_physp_is_valid(p_physp))
+               if (!p_physp)
                        continue;
 
                /* Check to see if the found p_physp and the requester physp
@@ -240,7 +239,7 @@ __osm_sa_gir_by_comp_mask_cb(IN cl_map_item_t * const 
p_map_item,
 {
        const osm_gir_search_ctxt_t *const p_ctxt =
            (osm_gir_search_ctxt_t *) context;
-       const osm_node_t *const p_node = (osm_node_t *) p_map_item;
+       osm_node_t *const p_node = (osm_node_t *) p_map_item;
        const ib_guidinfo_record_t *const p_rcvd_rec = p_ctxt->p_rcvd_rec;
        const osm_physp_t *const p_req_physp = p_ctxt->p_req_physp;
        osm_sa_t *sa = p_ctxt->sa;
diff --git a/opensm/opensm/osm_sa_link_record.c 
b/opensm/opensm/osm_sa_link_record.c
index 1b833eb..8c7e2e7 100644
--- a/opensm/opensm/osm_sa_link_record.c
+++ b/opensm/opensm/osm_sa_link_record.c
@@ -135,12 +135,7 @@ __osm_lr_rcv_get_physp_link(IN osm_sa_t * sa,
           the other side.
         */
        if (p_src_physp) {
-               if (!osm_physp_is_valid(p_src_physp))
-                       goto Exit;
-
                if (p_dest_physp) {
-                       if (!osm_physp_is_valid(p_dest_physp))
-                               goto Exit;
                        /*
                           Ensure the two physp's are actually connected.
                           If not, bail out.
@@ -149,31 +144,18 @@ __osm_lr_rcv_get_physp_link(IN osm_sa_t * sa,
                                goto Exit;
                } else {
                        p_dest_physp = osm_physp_get_remote(p_src_physp);
-
                        if (p_dest_physp == NULL)
                                goto Exit;
-
-                       if (!osm_physp_is_valid(p_dest_physp))
-                               goto Exit;
                }
        } else {
                if (p_dest_physp) {
-                       if (!osm_physp_is_valid(p_dest_physp))
-                               goto Exit;
-
                        p_src_physp = osm_physp_get_remote(p_dest_physp);
-
                        if (p_src_physp == NULL)
                                goto Exit;
                } else
                        goto Exit;      /* no physp's, so nothing to do */
        }
 
-       CL_ASSERT(p_src_physp);
-       CL_ASSERT(p_dest_physp);
-       CL_ASSERT(osm_physp_is_valid(p_src_physp));
-       CL_ASSERT(osm_physp_is_valid(p_dest_physp));
-
        /* Check that the p_src_physp, p_dest_physp and p_req_physp
           all share a pkey (doesn't have to be the same p_key). */
        if (!osm_physp_share_pkey(sa->p_log, p_src_physp, p_dest_physp)) {
@@ -284,8 +266,7 @@ __osm_lr_rcv_get_port_links(IN osm_sa_t * sa,
                                                                   p_node,
                                                                   
dest_port_num);
                                        /* both physical ports should be with 
data */
-                                       if (osm_physp_is_valid(p_src_physp) &&
-                                           osm_physp_is_valid(p_dest_physp))
+                                       if (p_src_physp && p_dest_physp)
                                                __osm_lr_rcv_get_physp_link
                                                    (sa, p_lr, p_src_physp,
                                                     p_dest_physp, comp_mask,
@@ -306,7 +287,7 @@ __osm_lr_rcv_get_port_links(IN osm_sa_t * sa,
                                            osm_node_get_physp_ptr(p_src_port->
                                                                   p_node,
                                                                   port_num);
-                                       if (osm_physp_is_valid(p_src_physp))
+                                       if (p_src_physp)
                                                __osm_lr_rcv_get_physp_link
                                                    (sa, p_lr, p_src_physp,
                                                     NULL, comp_mask, p_list,
@@ -321,7 +302,7 @@ __osm_lr_rcv_get_port_links(IN osm_sa_t * sa,
                                            osm_node_get_physp_ptr(p_src_port->
                                                                   p_node,
                                                                   port_num);
-                                       if (osm_physp_is_valid(p_src_physp))
+                                       if (p_src_physp)
                                                __osm_lr_rcv_get_physp_link
                                                    (sa, p_lr, p_src_physp,
                                                     NULL, comp_mask, p_list,
@@ -344,7 +325,7 @@ __osm_lr_rcv_get_port_links(IN osm_sa_t * sa,
                                            osm_node_get_physp_ptr(p_dest_port->
                                                                   p_node,
                                                                   port_num);
-                                       if (osm_physp_is_valid(p_dest_physp))
+                                       if (p_dest_physp)
                                                __osm_lr_rcv_get_physp_link
                                                    (sa, p_lr, NULL,
                                                     p_dest_physp, comp_mask,
@@ -359,7 +340,7 @@ __osm_lr_rcv_get_port_links(IN osm_sa_t * sa,
                                            osm_node_get_physp_ptr(p_dest_port->
                                                                   p_node,
                                                                   port_num);
-                                       if (osm_physp_is_valid(p_dest_physp))
+                                       if (p_dest_physp)
                                                __osm_lr_rcv_get_physp_link
                                                    (sa, p_lr, NULL,
                                                     p_dest_physp, comp_mask,
@@ -380,15 +361,12 @@ __osm_lr_rcv_get_port_links(IN osm_sa_t * sa,
                                   scan all the ports of this node anyway.
                                 */
                                p_src_physp = 
osm_node_get_any_physp_ptr(p_node);
-                               if (osm_physp_is_valid(p_src_physp)) {
-                                       p_src_port = (osm_port_t *)
-                                           
cl_qmap_get(&sa->p_subn->port_guid_tbl,
-                                               
osm_physp_get_port_guid(p_src_physp));
-                                       __osm_lr_rcv_get_port_links(sa, p_lr,
-                                                                   p_src_port, 
NULL,
-                                                                   comp_mask, 
p_list,
-                                                                   
p_req_physp);
-                               }
+                               p_src_port = osm_get_port_by_guid(sa->p_subn,
+                                       osm_physp_get_port_guid(p_src_physp));
+                               __osm_lr_rcv_get_port_links(sa, p_lr,
+                                                           p_src_port, NULL,
+                                                           comp_mask, p_list,
+                                                           p_req_physp);
                                p_node = (osm_node_t *) cl_qmap_next(&p_node->
                                                                     map_item);
                        }
diff --git a/opensm/opensm/osm_sa_multipath_record.c 
b/opensm/opensm/osm_sa_multipath_record.c
index 1fa81d6..032c297 100644
--- a/opensm/opensm/osm_sa_multipath_record.c
+++ b/opensm/opensm/osm_sa_multipath_record.c
@@ -354,7 +354,6 @@ __osm_mpr_rcv_get_path_parms(IN osm_sa_t * sa,
                   Continue with the egress port on this switch.
                 */
                p_physp = osm_switch_get_route_by_lid(p_node->sw, dest_lid);
-
                if (p_physp == 0) {
                        osm_log(sa->p_log, OSM_LOG_ERROR,
                                "__osm_mpr_rcv_get_path_parms: ERR 4516: "
@@ -365,8 +364,6 @@ __osm_mpr_rcv_get_path_parms(IN osm_sa_t * sa,
                        goto Exit;
                }
 
-               CL_ASSERT(osm_physp_is_valid(p_physp));
-
                p_pi = &p_physp->port_info;
 
                if (mtu > ib_port_info_get_mtu_cap(p_pi))
diff --git a/opensm/opensm/osm_sa_node_record.c 
b/opensm/opensm/osm_sa_node_record.c
index a9a3708..4af8e58 100644
--- a/opensm/opensm/osm_sa_node_record.c
+++ b/opensm/opensm/osm_sa_node_record.c
@@ -122,7 +122,7 @@ __osm_nr_rcv_new_nr(IN osm_sa_t * sa,
  **********************************************************************/
 static void
 __osm_nr_rcv_create_nr(IN osm_sa_t * sa,
-                      IN const osm_node_t * const p_node,
+                      IN osm_node_t * const p_node,
                       IN cl_qlist_t * const p_list,
                       IN ib_net64_t const match_port_guid,
                       IN ib_net16_t const match_lid,
@@ -160,8 +160,7 @@ __osm_nr_rcv_create_nr(IN osm_sa_t * sa,
 
        for (port_num = 0; port_num < num_ports; port_num++) {
                p_physp = osm_node_get_physp_ptr(p_node, port_num);
-
-               if (!osm_physp_is_valid(p_physp))
+               if (!p_physp)
                        continue;
 
                /* Check to see if the found p_physp and the requester physp
@@ -210,7 +209,7 @@ __osm_nr_rcv_by_comp_mask(IN cl_map_item_t * const 
p_map_item, IN void *context)
 {
        const osm_nr_search_ctxt_t *const p_ctxt =
            (osm_nr_search_ctxt_t *) context;
-       const osm_node_t *const p_node = (osm_node_t *) p_map_item;
+       osm_node_t *const p_node = (osm_node_t *) p_map_item;
        const ib_node_record_t *const p_rcvd_rec = p_ctxt->p_rcvd_rec;
        const osm_physp_t *const p_req_physp = p_ctxt->p_req_physp;
        osm_sa_t *sa = p_ctxt->sa;
diff --git a/opensm/opensm/osm_sa_path_record.c 
b/opensm/opensm/osm_sa_path_record.c
index 816e8e2..cc87bc7 100644
--- a/opensm/opensm/osm_sa_path_record.c
+++ b/opensm/opensm/osm_sa_path_record.c
@@ -360,7 +360,6 @@ __osm_pr_rcv_get_path_parms(IN osm_sa_t * sa,
                   Continue with the egress port on this switch.
                 */
                p_physp = osm_switch_get_route_by_lid(p_node->sw, dest_lid);
-
                if (p_physp == 0) {
                        osm_log(sa->p_log, OSM_LOG_ERROR,
                                "__osm_pr_rcv_get_path_parms: ERR 1F07: "
@@ -371,8 +370,6 @@ __osm_pr_rcv_get_path_parms(IN osm_sa_t * sa,
                        goto Exit;
                }
 
-               CL_ASSERT(osm_physp_is_valid(p_physp));
-
                p_pi = &p_physp->port_info;
 
                if (mtu > ib_port_info_get_mtu_cap(p_pi))
diff --git a/opensm/opensm/osm_sa_pkey_record.c 
b/opensm/opensm/osm_sa_pkey_record.c
index e7547df..e21c8a8 100644
--- a/opensm/opensm/osm_sa_pkey_record.c
+++ b/opensm/opensm/osm_sa_pkey_record.c
@@ -181,7 +181,7 @@ __osm_sa_pkey_by_comp_mask(IN osm_sa_t * sa,
                            osm_node_get_physp_ptr(p_port->p_node, port_num);
                        /* Check that the p_physp is valid, and that is shares 
a pkey
                           with the p_req_physp. */
-                       if (osm_physp_is_valid(p_physp) &&
+                       if (p_physp &&
                            (osm_physp_share_pkey
                             (sa->p_log, p_req_physp, p_physp)))
                                __osm_sa_pkey_check_physp(sa, p_physp,
@@ -199,7 +199,7 @@ __osm_sa_pkey_by_comp_mask(IN osm_sa_t * sa,
                for (port_num = 0; port_num < num_ports; port_num++) {
                        p_physp =
                            osm_node_get_physp_ptr(p_port->p_node, port_num);
-                       if (!osm_physp_is_valid(p_physp))
+                       if (p_physp)
                                continue;
 
                        /* if the requester and the p_physp don't share a pkey -
diff --git a/opensm/opensm/osm_sa_portinfo_record.c 
b/opensm/opensm/osm_sa_portinfo_record.c
index 16dd852..0cac69c 100644
--- a/opensm/opensm/osm_sa_portinfo_record.c
+++ b/opensm/opensm/osm_sa_portinfo_record.c
@@ -407,7 +407,7 @@ __osm_sa_pir_check_physp(IN osm_sa_t * sa,
  **********************************************************************/
 static void
 __osm_sa_pir_by_comp_mask(IN osm_sa_t * sa,
-                         IN const osm_node_t * const p_node,
+                         IN osm_node_t * const p_node,
                          osm_pir_search_ctxt_t * const p_ctxt)
 {
        const ib_portinfo_record_t *p_rcvd_rec;
@@ -432,7 +432,7 @@ __osm_sa_pir_by_comp_mask(IN osm_sa_t * sa,
                                                   p_rcvd_rec->port_num);
                        /* Check that the p_physp is valid, and that the 
p_physp and the
                           p_req_physp share a pkey. */
-                       if (osm_physp_is_valid(p_physp) &&
+                       if (p_physp &&
                            osm_physp_share_pkey(sa->p_log, p_req_physp,
                                                 p_physp))
                                __osm_sa_pir_check_physp(sa, p_physp,
@@ -442,7 +442,7 @@ __osm_sa_pir_by_comp_mask(IN osm_sa_t * sa,
                for (port_num = 0; port_num < num_ports; port_num++) {
                        p_physp =
                            osm_node_get_physp_ptr(p_node, port_num);
-                       if (!osm_physp_is_valid(p_physp))
+                       if (!p_physp)
                                continue;
 
                        /* if the requester and the p_physp don't share a pkey -
@@ -464,7 +464,7 @@ static void
 __osm_sa_pir_by_comp_mask_cb(IN cl_map_item_t * const p_map_item,
                             IN void *context)
 {
-       const osm_node_t *const p_node = (osm_node_t *) p_map_item;
+       osm_node_t *const p_node = (osm_node_t *) p_map_item;
        osm_pir_search_ctxt_t *const p_ctxt = (osm_pir_search_ctxt_t *) context;
 
        __osm_sa_pir_by_comp_mask(p_ctxt->sa, p_node, p_ctxt);
diff --git a/opensm/opensm/osm_sa_slvl_record.c 
b/opensm/opensm/osm_sa_slvl_record.c
index cc21765..ba13010 100644
--- a/opensm/opensm/osm_sa_slvl_record.c
+++ b/opensm/opensm/osm_sa_slvl_record.c
@@ -176,7 +176,7 @@ __osm_sa_slvl_by_comp_mask(IN osm_sa_t * sa,
                        p_out_physp =
                            osm_node_get_physp_ptr(p_port->p_node,
                                                   out_port_num);
-                       if (!osm_physp_is_valid(p_out_physp))
+                       if (!p_out_physp)
                                continue;
 
                        for (in_port_num = in_port_start;
@@ -189,7 +189,7 @@ __osm_sa_slvl_by_comp_mask(IN osm_sa_t * sa,
                                p_in_physp =
                                    osm_node_get_physp_ptr(p_port->p_node,
                                                           in_port_num);
-                               if (!osm_physp_is_valid(p_in_physp))
+                               if (!p_in_physp)
                                        continue;
 
                                /* if the requester and the p_out_physp don't 
share a pkey -
diff --git a/opensm/opensm/osm_sa_vlarb_record.c 
b/opensm/opensm/osm_sa_vlarb_record.c
index 51bc517..3ada071 100644
--- a/opensm/opensm/osm_sa_vlarb_record.c
+++ b/opensm/opensm/osm_sa_vlarb_record.c
@@ -187,7 +187,7 @@ __osm_sa_vl_arb_by_comp_mask(IN osm_sa_t * sa,
                            osm_node_get_physp_ptr(p_port->p_node, port_num);
                        /* check that the p_physp is valid, and that the 
requester
                           and the p_physp share a pkey. */
-                       if (osm_physp_is_valid(p_physp) &&
+                       if (p_physp &&
                            osm_physp_share_pkey(sa->p_log, p_req_physp,
                                                 p_physp))
                                __osm_sa_vl_arb_check_physp(sa, p_physp,
@@ -205,7 +205,7 @@ __osm_sa_vl_arb_by_comp_mask(IN osm_sa_t * sa,
                for (port_num = 0; port_num < num_ports; port_num++) {
                        p_physp =
                            osm_node_get_physp_ptr(p_port->p_node, port_num);
-                       if (!osm_physp_is_valid(p_physp))
+                       if (!p_physp)
                                continue;
 
                        /* if the requester and the p_physp don't share a pkey -
diff --git a/opensm/opensm/osm_slvl_map_rcv.c b/opensm/opensm/osm_slvl_map_rcv.c
index 3f9c88a..2af9be2 100644
--- a/opensm/opensm/osm_slvl_map_rcv.c
+++ b/opensm/opensm/osm_slvl_map_rcv.c
@@ -125,8 +125,6 @@ void osm_slvl_rcv_process(IN void *context, IN void *p_data)
                in_port_num = 0;
        }
 
-       CL_ASSERT(p_physp);
-
        /*
           We do not mind if this is a result of a set or get - all we want is 
to update
           the subnet.
@@ -145,7 +143,7 @@ void osm_slvl_rcv_process(IN void *context, IN void *p_data)
           Determine if we encountered a new Physical Port.
           If so, Ignore it.
         */
-       if (!osm_physp_is_valid(p_physp)) {
+       if (!p_physp) {
                osm_log(sm->p_log, OSM_LOG_ERROR,
                        "osm_slvl_rcv_process: "
                        "Got invalid port number 0x%X\n", out_port_num);
diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c
index e4130cc..4b7dcac 100644
--- a/opensm/opensm/osm_state_mgr.c
+++ b/opensm/opensm/osm_state_mgr.c
@@ -720,7 +720,6 @@ static boolean_t __osm_state_mgr_is_sm_port_down(IN 
osm_state_mgr_t *
        p_physp = p_port->p_physp;
 
        CL_ASSERT(p_physp);
-       CL_ASSERT(osm_physp_is_valid(p_physp));
 
        state = osm_physp_get_port_state(p_physp);
        CL_PLOCK_RELEASE(p_mgr->p_lock);
@@ -789,7 +788,7 @@ static ib_api_status_t __osm_state_mgr_sweep_hop_1(IN 
osm_state_mgr_t *
 
        p_physp = osm_node_get_physp_ptr(p_node, port_num);
 
-       CL_ASSERT(osm_physp_is_valid(p_physp));
+       CL_ASSERT(p_physp);
 
        p_dr_path = osm_physp_get_dr_path_ptr(p_physp);
        h_bind = osm_dr_path_get_bind_handle(p_dr_path);
@@ -911,7 +910,7 @@ static ib_api_status_t __osm_state_mgr_light_sweep_start(IN 
osm_state_mgr_t *
                             port_num++) {
                                p_physp =
                                    osm_node_get_physp_ptr(p_node, port_num);
-                               if (osm_physp_is_valid(p_physp)
+                               if (p_physp
                                    && (osm_physp_get_port_state(p_physp) !=
                                        IB_LINK_DOWN)
                                    && !osm_physp_get_remote(p_physp)) {
diff --git a/opensm/opensm/osm_sw_info_rcv.c b/opensm/opensm/osm_sw_info_rcv.c
index 962f6c7..dbf8b8c 100644
--- a/opensm/opensm/osm_sw_info_rcv.c
+++ b/opensm/opensm/osm_sw_info_rcv.c
@@ -96,8 +96,6 @@ __osm_si_rcv_get_port_info(IN osm_sm_t * sm,
         */
        p_physp = osm_node_get_any_physp_ptr(p_node);
 
-       CL_ASSERT(osm_physp_is_valid(p_physp));
-
        context.pi_context.node_guid = osm_node_get_node_guid(p_node);
        context.pi_context.port_guid = osm_physp_get_port_guid(p_physp);
        context.pi_context.set_method = FALSE;
@@ -152,8 +150,6 @@ __osm_si_rcv_get_fwd_tbl(IN osm_sm_t * sm,
 
        p_physp = osm_node_get_any_physp_ptr(p_node);
 
-       CL_ASSERT(osm_physp_is_valid(p_physp));
-
        context.lft_context.node_guid = osm_node_get_node_guid(p_node);
        context.lft_context.set_method = FALSE;
 
@@ -223,8 +219,6 @@ __osm_si_rcv_get_mcast_fwd_tbl(IN osm_sm_t * sm,
        p_physp = osm_node_get_any_physp_ptr(p_node);
        p_tbl = osm_switch_get_mcast_tbl_ptr(p_sw);
 
-       CL_ASSERT(osm_physp_is_valid(p_physp));
-
        context.mft_context.node_guid = osm_node_get_node_guid(p_node);
        context.mft_context.set_method = FALSE;
 
diff --git a/opensm/opensm/osm_switch.c b/opensm/opensm/osm_switch.c
index 4cb6272..23429c7 100644
--- a/opensm/opensm/osm_switch.c
+++ b/opensm/opensm/osm_switch.c
@@ -316,8 +316,7 @@ osm_switch_recommend_path(IN const osm_switch_t * const 
p_sw,
                           Verify that the port number is legal and that the
                           LID is reachable through this port.
                         */
-                       if (osm_physp_is_valid(p_physp) &&
-                           osm_physp_is_healthy(p_physp) &&
+                       if (p_physp && osm_physp_is_healthy(p_physp) &&
                            osm_physp_get_remote(p_physp)) {
                                hops =
                                    osm_switch_get_hop_count(p_sw, base_lid,
@@ -359,8 +358,7 @@ osm_switch_recommend_path(IN const osm_switch_t * const 
p_sw,
 
                /* let us make sure it is not down or unhealthy */
                p_physp = osm_node_get_physp_ptr(p_sw->p_node, port_num);
-               if (!osm_physp_is_valid(p_physp) ||
-                   !osm_physp_is_healthy(p_physp) ||
+               if (!p_physp || !osm_physp_is_healthy(p_physp) ||
                    /*
                       we require all - non sma ports to be linked
                       to be routed through
diff --git a/opensm/opensm/osm_trap_rcv.c b/opensm/opensm/osm_trap_rcv.c
index b7a8c40..53269b4 100644
--- a/opensm/opensm/osm_trap_rcv.c
+++ b/opensm/opensm/osm_trap_rcv.c
@@ -90,12 +90,11 @@ typedef struct _osm_trap_aging_tracker_context {
 
 /**********************************************************************
  **********************************************************************/
-static osm_physp_t *__get_physp_by_lid_and_num(IN osm_sm_t * sm,
-                                              IN uint16_t lid, IN uint8_t num)
+static osm_physp_t *get_physp_by_lid_and_num(IN osm_sm_t * sm,
+                                            IN uint16_t lid, IN uint8_t num)
 {
        cl_ptr_vector_t *p_vec = &(sm->p_subn->port_lid_tbl);
        osm_port_t *p_port;
-       osm_physp_t *p_physp;
 
        if (lid > cl_ptr_vector_get_size(p_vec))
                return NULL;
@@ -107,9 +106,7 @@ static osm_physp_t *__get_physp_by_lid_and_num(IN osm_sm_t 
* sm,
        if (osm_node_get_num_physp(p_port->p_node) < num)
                return NULL;
 
-       p_physp = osm_node_get_physp_ptr(p_port->p_node, num);
-
-       return osm_physp_is_valid(p_physp) ? p_physp : NULL;
+       return osm_node_get_physp_ptr(p_port->p_node, num);
 }
 
 /**********************************************************************
@@ -132,7 +129,7 @@ osm_trap_rcv_aging_tracker_callback(IN uint64_t key,
        lid = cl_ntoh16((uint16_t) ((key & 0x0000FFFF00000000ULL) >> 32));
        port_num = (uint8_t) ((key & 0x00FF000000000000ULL) >> 48);
 
-       p_physp = __get_physp_by_lid_and_num(sm, lid, port_num);
+       p_physp = get_physp_by_lid_and_num(sm, lid, port_num);
        if (!p_physp)
                osm_log(sm->p_log, OSM_LOG_VERBOSE,
                        "osm_trap_rcv_aging_tracker_callback: "
@@ -140,7 +137,7 @@ osm_trap_rcv_aging_tracker_callback(IN uint64_t key,
                        port_num, lid);
        /* make sure the physp is still valid */
        /* If the health port was false - set it to true */
-       else if (osm_physp_is_valid(p_physp) && !osm_physp_is_healthy(p_physp)) 
{
+       else if (!osm_physp_is_healthy(p_physp)) {
                osm_log(sm->p_log, OSM_LOG_VERBOSE,
                        "osm_trap_rcv_aging_tracker_callback: "
                        "Clearing health bit of port num:%u with lid:%u\n",
@@ -450,13 +447,13 @@ __osm_trap_rcv_process_request(IN osm_sm_t * sm,
                         */
                        if (physp_change_trap == TRUE) {
                                /* get the port */
-                               p_physp = __get_physp_by_lid_and_num(sm,
-                                                                    cl_ntoh16
-                                                                    (p_ntci->
-                                                                     
data_details.
-                                                                     
ntc_129_131.
-                                                                     lid),
-                                                                    port_num);
+                               p_physp = get_physp_by_lid_and_num(sm,
+                                                                  cl_ntoh16
+                                                                  (p_ntci->
+                                                                   
data_details.
+                                                                   ntc_129_131.
+                                                                   lid),
+                                                                  port_num);
 
                                if (!p_physp)
                                        osm_log(sm->p_log, OSM_LOG_ERROR,
diff --git a/opensm/opensm/osm_ucast_ftree.c b/opensm/opensm/osm_ucast_ftree.c
index dcbdc44..e9e00a4 100644
--- a/opensm/opensm/osm_ucast_ftree.c
+++ b/opensm/opensm/osm_ucast_ftree.c
@@ -2829,9 +2829,7 @@ __osm_ftree_rank_switches_from_leafs(IN ftree_fabric_t * 
p_ftree,
                /* note: skipping port 0 on switches */
                for (i = 1; i < osm_node_get_num_physp(p_node); i++) {
                        p_osm_port = osm_node_get_physp_ptr(p_node, i);
-                       if (!osm_physp_is_valid(p_osm_port))
-                               continue;
-                       if (!osm_link_is_healthy(p_osm_port))
+                       if (!p_osm_port || !osm_link_is_healthy(p_osm_port))
                                continue;
 
                        p_remote_node =
@@ -2883,9 +2881,7 @@ __osm_ftree_rank_leaf_switches(IN ftree_fabric_t * 
p_ftree,
 
        for (i = 0; i < osm_node_get_num_physp(p_osm_node); i++) {
                p_osm_port = osm_node_get_physp_ptr(p_osm_node, i);
-               if (!osm_physp_is_valid(p_osm_port))
-                       continue;
-               if (!osm_link_is_healthy(p_osm_port))
+               if (!p_osm_port || !osm_link_is_healthy(p_osm_port))
                        continue;
 
                p_remote_osm_node =
@@ -2989,10 +2985,7 @@ __osm_ftree_fabric_construct_hca_ports(IN ftree_fabric_t 
* p_ftree,
 
        for (i = 0; i < osm_node_get_num_physp(p_node); i++) {
                osm_physp_t *p_osm_port = osm_node_get_physp_ptr(p_node, i);
-
-               if (!osm_physp_is_valid(p_osm_port))
-                       continue;
-               if (!osm_link_is_healthy(p_osm_port))
+               if (!p_osm_port && !osm_link_is_healthy(p_osm_port))
                        continue;
 
                p_remote_osm_port = osm_physp_get_remote(p_osm_port);
@@ -3115,10 +3108,7 @@ static int __osm_ftree_fabric_construct_sw_ports(IN 
ftree_fabric_t * p_ftree,
 
        for (i = 0; i < osm_node_get_num_physp(p_node); i++) {
                osm_physp_t *p_osm_port = osm_node_get_physp_ptr(p_node, i);
-
-               if (!osm_physp_is_valid(p_osm_port))
-                       continue;
-               if (!osm_link_is_healthy(p_osm_port))
+               if (!p_osm_port || !osm_link_is_healthy(p_osm_port))
                        continue;
 
                p_remote_osm_port = osm_physp_get_remote(p_osm_port);
@@ -3291,9 +3281,7 @@ static int __osm_ftree_fabric_rank_from_roots(IN 
ftree_fabric_t * p_ftree)
                /* note: skipping port 0 on switches */
                for (i = 1; i < osm_node_get_num_physp(p_osm_node); i++) {
                        p_osm_physp = osm_node_get_physp_ptr(p_osm_node, i);
-                       if (!osm_physp_is_valid(p_osm_physp))
-                               continue;
-                       if (!osm_link_is_healthy(p_osm_physp))
+                       if (!p_osm_physp  || !osm_link_is_healthy(p_osm_physp))
                                continue;
 
                        p_remote_osm_node =
diff --git a/opensm/opensm/osm_ucast_lash.c b/opensm/opensm/osm_ucast_lash.c
index cf9d701..65f688e 100644
--- a/opensm/opensm/osm_ucast_lash.c
+++ b/opensm/opensm/osm_ucast_lash.c
@@ -187,13 +187,12 @@ static uint8_t find_port_from_lid(IN const ib_net16_t 
lid_no,
        for (i = 1; i < port_count; i++) {
 
                p_current_physp = osm_node_get_physp_ptr(p_sw->p_node, i);
-
-               if (!osm_physp_is_valid(p_current_physp))
+               if (!p_current_physp)
                        continue;
 
                p_remote_physp = p_current_physp->p_remote_physp;
 
-               if (p_remote_physp && osm_physp_is_valid(p_remote_physp)) {
+               if (p_remote_physp) {
                        osm_node_t *p_opposite_node =
                            osm_physp_get_node_ptr(p_remote_physp);
 
@@ -1216,12 +1215,9 @@ static void osm_lash_process_switch(lash_t * p_lash, 
osm_switch_t * p_sw)
        for (i = 1; i < port_count; i++) {
 
                p_current_physp = osm_node_get_physp_ptr(p_sw->p_node, i);
-
-               if (osm_physp_is_valid(p_current_physp)) {
+               if (p_current_physp) {
                        p_remote_physp = p_current_physp->p_remote_physp;
-
-                       if (p_remote_physp && osm_physp_is_valid(p_remote_physp)
-                           && p_remote_physp->p_node->sw) {
+                       if (p_remote_physp && p_remote_physp->p_node->sw) {
                                int physical_port_a_num =
                                    osm_physp_get_port_num(p_current_physp);
                                int physical_port_b_num =
@@ -1315,7 +1311,7 @@ static int discover_network_properties(lash_t * p_lash)
                        osm_physp_t *p_current_physp =
                            osm_node_get_physp_ptr(p_sw->p_node, i);
 
-                       if (osm_physp_is_valid(p_current_physp)
+                       if (p_current_physp
                            && p_current_physp->p_remote_physp) {
 
                                ib_port_info_t *p_port_info =
diff --git a/opensm/opensm/osm_ucast_updn.c b/opensm/opensm/osm_ucast_updn.c
index c77188f..411e15b 100644
--- a/opensm/opensm/osm_ucast_updn.c
+++ b/opensm/opensm/osm_ucast_updn.c
@@ -390,12 +390,9 @@ updn_subn_rank(IN unsigned num_guids,
                        /*
                           make sure that all the following occur on 
p_remote_physp:
                           1. The port isn't NULL
-                          2. The port is a valid port
-                          3. It is a switch
+                          2. It is a switch
                         */
-                       if (p_remote_physp &&
-                           osm_physp_is_valid(p_remote_physp) &&
-                           p_remote_physp->p_node->sw) {
+                       if (p_remote_physp && p_remote_physp->p_node->sw) {
                                remote_u = p_remote_physp->p_node->sw->priv;
                                port_guid = p_remote_physp->port_guid;
 
diff --git a/opensm/opensm/osm_vl_arb_rcv.c b/opensm/opensm/osm_vl_arb_rcv.c
index a88bf70..8a5b8b4 100644
--- a/opensm/opensm/osm_vl_arb_rcv.c
+++ b/opensm/opensm/osm_vl_arb_rcv.c
@@ -122,8 +122,6 @@ void osm_vla_rcv_process(IN void *context, IN void *data)
                port_num = p_physp->port_num;
        }
 
-       CL_ASSERT(p_physp);
-
        /*
           We do not mind if this is a result of a set or get - all we want is 
to update
           the subnet.
@@ -141,7 +139,7 @@ void osm_vla_rcv_process(IN void *context, IN void *data)
           Determine if we encountered a new Physical Port.
           If so, Ignore it.
         */
-       if (!osm_physp_is_valid(p_physp)) {
+       if (!p_physp) {
                osm_log(sm->p_log, OSM_LOG_ERROR,
                        "osm_vla_rcv_process: "
                        "Got invalid port number 0x%X\n", port_num);
-- 
1.5.4.rc5

_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to