Version: 1
-Previous: 852f565ab52b475384471480e9fe5bae06fb4cb0
-Head: f88bef4e09db011327fef0c7e585370c185fc53c
+Previous: 998153a72e7f7d23863a783585c7d1f4976c923d
+Head: 6d698599b76c3be2977aec7f2c9eee193cf339b6
Applied:
af_ib: f88bef4e09db011327fef0c7e585370c185fc53c
+ refresh-temp: 6d698599b76c3be2977aec7f2c9eee193cf339b6
Unapplied:
name2ip: 8e00708e882239292492e13aa51c82042255933c
addr_size: 8de02c47fbf595132105a7050ad6f755f49f9a7a
--- /dev/null
+Bottom: 42e4729a57fa30e42770d8787e4b6b02c7bf2204
+Top: 9c8df4b2d96ca4a90a0a18ba88dbd97646f94a82
+Author: Sean Hefty <sean.hefty@intel.com>
+Date: 2011-11-03 11:25:03 -0700
+
+Refresh of af_ib
+
+---
+
+diff --git a/src/acm.c b/src/acm.c
+index d47f9d6..4cf20ed 100644
+--- a/src/acm.c
++++ b/src/acm.c
+@@ -1745,10 +1745,29 @@ static void acm_svr_accept(void)
+ static int
+ acm_is_path_from_port(struct acm_port *port, struct ibv_path_record *path)
+ {
+- if (ib_any_gid(&path->sgid)) {
++ union ibv_gid gid;
++ uint8_t i;
++
++ if (!ib_any_gid(&path->sgid)) {
++ return (acm_gid_index(port, &path->sgid) < port->gid_cnt);
++ }
++
++ if (path->slid) {
+ return (port->lid == (ntohs(path->slid) & port->lid_mask));
+ }
+- return (acm_gid_index(port, &path->sgid) < port->gid_cnt);
++
++ if (acm_gid_index(port, &path->dgid) < port->gid_cnt) {
++ return 1;
++ }
++
++ for (i = 0; i < port->gid_cnt; i++) {
++ ibv_query_gid(port->dev->verbs, port->port_num, i, &gid);
++ if (gid.global.subnet_prefix == path->dgid.global.subnet_prefix)) {
++ return 1;
++ }
++ }
++
++ return 0;
+ }
+
+ static struct acm_ep *