On 11/4/2011 9:08 AM, Hefty, Sean wrote:
+static struct idr *cma_select_ib_ps(struct rdma_id_private *id_priv)
[...]
+ if (ps) {
+ sib->sib_sid = cpu_to_be64(sid_ps | ntohs(cma_port((struct
sockaddr *) sib)));
+ sib->sib_sid_mask = cpu_to_be64(RDMA_IB_IP_PS_MASK |
sib->sib_sid_mask);
+ }
+ return ps;
looks like ntohs(cma_port((struct sockaddr *) sib)) introduced this sparse
warning
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
drivers/infiniband/core/cma.c:2338:37: warning: restricted __be64
degrades to integer
+}
+
+static int cma_get_port(struct rdma_id_private *id_priv)
+{
+ struct idr *ps;
+ int ret;
+
+ if (id_priv->id.route.addr.src_addr.ss_family != AF_IB)
+ ps = cma_select_inet_ps(id_priv);
+ else
+ ps = cma_select_ib_ps(id_priv);
+ if (!ps)
+ return -EPROTONOSUPPORT;
+
mutex_lock(&lock);
if (cma_any_port((struct sockaddr *)&id_priv->id.route.addr.src_addr))
ret = cma_alloc_any_port(ps, id_priv);
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index 51988f8..5eb3179 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -70,6 +70,11 @@ enum rdma_port_space {
RDMA_PS_UDP = 0x0111,
};
+#define RDMA_IB_IP_PS_MASK 0xFFFFFFFFFFFF0000ULL
+#define RDMA_IB_IP_PS_TCP 0x0000000001060000ULL
+#define RDMA_IB_IP_PS_UDP 0x0000000001110000ULL
+#define RDMA_IB_IP_PS_IB 0x00000000013F0000ULL
+
struct rdma_addr {
struct sockaddr_storage src_addr;
struct sockaddr_storage dst_addr;
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html