Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 32612
b: refs/heads/master
c: f0ee340
h: refs/heads/master
v: v3
  • Loading branch information
Michael S. Tsirkin authored and Linus Torvalds committed Jul 15, 2006
1 parent c145a1f commit a244c65
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 04c335430f6d9f9088c852bc05a3a0c8baa921c4
refs/heads/master: f0ee3404cce2c45f8b95b341dd6311cd92e5cee0
21 changes: 11 additions & 10 deletions trunk/drivers/infiniband/core/cma.c
Original file line number Diff line number Diff line change
Expand Up @@ -262,14 +262,14 @@ static void cma_detach_from_dev(struct rdma_id_private *id_priv)
static int cma_acquire_ib_dev(struct rdma_id_private *id_priv)
{
struct cma_device *cma_dev;
union ib_gid *gid;
union ib_gid gid;
int ret = -ENODEV;

gid = ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr);
ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr, &gid),

mutex_lock(&lock);
list_for_each_entry(cma_dev, &dev_list, list) {
ret = ib_find_cached_gid(cma_dev->device, gid,
ret = ib_find_cached_gid(cma_dev->device, &gid,
&id_priv->id.port_num, NULL);
if (!ret) {
cma_attach_to_dev(id_priv, cma_dev);
Expand Down Expand Up @@ -1134,8 +1134,8 @@ static int cma_query_ib_route(struct rdma_id_private *id_priv, int timeout_ms,
struct ib_sa_path_rec path_rec;

memset(&path_rec, 0, sizeof path_rec);
path_rec.sgid = *ib_addr_get_sgid(addr);
path_rec.dgid = *ib_addr_get_dgid(addr);
ib_addr_get_sgid(addr, &path_rec.sgid);
ib_addr_get_dgid(addr, &path_rec.dgid);
path_rec.pkey = cpu_to_be16(ib_addr_get_pkey(addr));
path_rec.numb_path = 1;

Expand Down Expand Up @@ -1263,7 +1263,7 @@ static int cma_bind_loopback(struct rdma_id_private *id_priv)
{
struct cma_device *cma_dev;
struct ib_port_attr port_attr;
union ib_gid *gid;
union ib_gid gid;
u16 pkey;
int ret;
u8 p;
Expand All @@ -1284,15 +1284,15 @@ static int cma_bind_loopback(struct rdma_id_private *id_priv)
}

port_found:
gid = ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr);
ret = ib_get_cached_gid(cma_dev->device, p, 0, gid);
ret = ib_get_cached_gid(cma_dev->device, p, 0, &gid);
if (ret)
goto out;

ret = ib_get_cached_pkey(cma_dev->device, p, 0, &pkey);
if (ret)
goto out;

ib_addr_set_sgid(&id_priv->id.route.addr.dev_addr, &gid);
ib_addr_set_pkey(&id_priv->id.route.addr.dev_addr, pkey);
id_priv->id.port_num = p;
cma_attach_to_dev(id_priv, cma_dev);
Expand Down Expand Up @@ -1339,6 +1339,7 @@ static int cma_resolve_loopback(struct rdma_id_private *id_priv)
{
struct cma_work *work;
struct sockaddr_in *src_in, *dst_in;
union ib_gid gid;
int ret;

work = kzalloc(sizeof *work, GFP_KERNEL);
Expand All @@ -1351,8 +1352,8 @@ static int cma_resolve_loopback(struct rdma_id_private *id_priv)
goto err;
}

ib_addr_set_dgid(&id_priv->id.route.addr.dev_addr,
ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr));
ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr, &gid);
ib_addr_set_dgid(&id_priv->id.route.addr.dev_addr, &gid);

if (cma_zero_addr(&id_priv->id.route.addr.src_addr)) {
src_in = (struct sockaddr_in *)&id_priv->id.route.addr.src_addr;
Expand Down
10 changes: 6 additions & 4 deletions trunk/include/rdma/ib_addr.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,9 +89,10 @@ static inline void ib_addr_set_pkey(struct rdma_dev_addr *dev_addr, u16 pkey)
dev_addr->broadcast[9] = (unsigned char) pkey;
}

static inline union ib_gid *ib_addr_get_sgid(struct rdma_dev_addr *dev_addr)
static inline void ib_addr_get_sgid(struct rdma_dev_addr *dev_addr,
union ib_gid *gid)
{
return (union ib_gid *) (dev_addr->src_dev_addr + 4);
memcpy(gid, dev_addr->src_dev_addr + 4, sizeof *gid);
}

static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr,
Expand All @@ -100,9 +101,10 @@ static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr,
memcpy(dev_addr->src_dev_addr + 4, gid, sizeof *gid);
}

static inline union ib_gid *ib_addr_get_dgid(struct rdma_dev_addr *dev_addr)
static inline void ib_addr_get_dgid(struct rdma_dev_addr *dev_addr,
union ib_gid *gid)
{
return (union ib_gid *) (dev_addr->dst_dev_addr + 4);
memcpy(gid, dev_addr->dst_dev_addr + 4, sizeof *gid);
}

static inline void ib_addr_set_dgid(struct rdma_dev_addr *dev_addr,
Expand Down

0 comments on commit a244c65

Please sign in to comment.