infiniband-diags/iblinkinfo.c: Limit certain queries to switches

iblinkinfo man page says:
DESCRIPTION
iblinkinfo reports the link info for each port of each switch active in
       the IB fabric.

OPTIONS
       -S <guid>
              Output only the switch specified by <guid> (hex format)

       -D <direct_route>
              Output only the switch specified by the direct route path.

Queries by DR path or GUID should (also) be limited to switches.

Signed-off-by: Hal Rosenstock <h...@mellanox.com>
---
diff --git a/infiniband-diags/src/iblinkinfo.c b/infiniband-diags/src/iblinkinfo.c
index d0c9b13..b129cb6 100644
--- a/infiniband-diags/src/iblinkinfo.c
+++ b/infiniband-diags/src/iblinkinfo.c
@@ -2,6 +2,7 @@
  * Copyright (c) 2004-2009 Voltaire Inc.  All rights reserved.
  * Copyright (c) 2007 Xsigo Systems Inc.  All rights reserved.
* Copyright (c) 2008 Lawrence Livermore National Lab. All rights reserved.
+ * Copyright (c) 2010 Mellanox Technologies LTD.  All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -387,7 +388,7 @@ int main(int argc, char **argv)

        if (!all && guid_str) {
                ibnd_node_t *sw = ibnd_find_node_guid(fabric, guid);
-               if (sw)
+               if (sw && sw->type == IB_NODE_TYPE_SWITCH)
                        print_switch(sw, NULL);
                else
                        fprintf(stderr, "Failed to find switch: %s\n",
@@ -402,7 +403,7 @@ int main(int argc, char **argv)
                mad_decode_field(ni, IB_NODE_GUID_F, &(guid));

                sw = ibnd_find_node_guid(fabric, guid);
-               if (sw)
+               if (sw && sw->type == IB_NODE_TYPE_SWITCH)
                        print_switch(sw, NULL);
                else
                        fprintf(stderr, "Failed to find switch: %s\n", dr_path);
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to