author | boris.chiu@oracle.com |
Mon, 03 Oct 2016 15:42:44 -0700 | |
branch | s11u3-sru |
changeset 7023 | 4afb0efdefc1 |
permissions | -rw-r--r-- |
7023
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
1 |
# This patch was developed both in-house and from outside. We plan to submit it |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
2 |
# upstream, but do not yet have a target date for doing so |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
3 |
# |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
4 |
# HG changeset patch |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
5 |
# Parent 15a2d43c5282731628f52799d6cee479851014df |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
6 |
22672457 ibqueryerrors dumps core with invalid port specified |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
7 |
|
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
8 |
diff -r 15a2d43c5282 libibnetdisc/src/ibnetdisc.c |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
9 |
--- a/libibnetdisc/src/ibnetdisc.c Tue Sep 13 10:09:52 2016 -0700 |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
10 |
+++ b/libibnetdisc/src/ibnetdisc.c Tue Sep 13 10:29:00 2016 -0700 |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
11 |
@@ -610,7 +610,11 @@ |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
12 |
ibnd_node_t *ibnd_find_node_dr(ibnd_fabric_t * fabric, char *dr_str) |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
13 |
{ |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
14 |
ibnd_port_t *rc = ibnd_find_port_dr(fabric, dr_str); |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
15 |
- return rc->node; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
16 |
+ /* Check whether the specified port is found */ |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
17 |
+ if (rc == NULL) |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
18 |
+ return NULL; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
19 |
+ else |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
20 |
+ return rc->node; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
21 |
} |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
22 |
|
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
23 |
void add_to_nodeguid_hash(ibnd_node_t * node, ibnd_node_t * hash[]) |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
24 |
@@ -911,6 +915,8 @@ |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
25 |
} |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
26 |
|
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
27 |
cur_node = fabric->from_node; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
28 |
+ if (!cur_node) |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
29 |
+ return NULL; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
30 |
|
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
31 |
if (str2drpath(&path, dr_str, 0, 0) == -1) |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
32 |
return NULL; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
33 |
@@ -921,6 +927,10 @@ |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
34 |
continue; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
35 |
if (!cur_node->ports) |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
36 |
return NULL; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
37 |
+ /* check the existence of the port specified in dr path */ |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
38 |
+ if (path.p[i] > cur_node->numports || |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
39 |
+ cur_node->ports[path.p[i]] == NULL) |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
40 |
+ return NULL; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
41 |
|
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
42 |
remote_port = cur_node->ports[path.p[i]]->remoteport; |
4afb0efdefc1
22672457 ibqueryerrors dumps core with invalid port specified
boris.chiu@oracle.com
parents:
diff
changeset
|
43 |
if (!remote_port) |