diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/rdma/ib_addr.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h index fcb5ba87dcc5..0ff67398928d 100644 --- a/include/rdma/ib_addr.h +++ b/include/rdma/ib_addr.h | |||
| @@ -89,9 +89,10 @@ static inline void ib_addr_set_pkey(struct rdma_dev_addr *dev_addr, u16 pkey) | |||
| 89 | dev_addr->broadcast[9] = (unsigned char) pkey; | 89 | dev_addr->broadcast[9] = (unsigned char) pkey; |
| 90 | } | 90 | } |
| 91 | 91 | ||
| 92 | static inline union ib_gid *ib_addr_get_sgid(struct rdma_dev_addr *dev_addr) | 92 | static inline void ib_addr_get_sgid(struct rdma_dev_addr *dev_addr, |
| 93 | union ib_gid *gid) | ||
| 93 | { | 94 | { |
| 94 | return (union ib_gid *) (dev_addr->src_dev_addr + 4); | 95 | memcpy(gid, dev_addr->src_dev_addr + 4, sizeof *gid); |
| 95 | } | 96 | } |
| 96 | 97 | ||
| 97 | static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr, | 98 | static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr, |
| @@ -100,9 +101,10 @@ static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr, | |||
| 100 | memcpy(dev_addr->src_dev_addr + 4, gid, sizeof *gid); | 101 | memcpy(dev_addr->src_dev_addr + 4, gid, sizeof *gid); |
| 101 | } | 102 | } |
| 102 | 103 | ||
| 103 | static inline union ib_gid *ib_addr_get_dgid(struct rdma_dev_addr *dev_addr) | 104 | static inline void ib_addr_get_dgid(struct rdma_dev_addr *dev_addr, |
| 105 | union ib_gid *gid) | ||
| 104 | { | 106 | { |
| 105 | return (union ib_gid *) (dev_addr->dst_dev_addr + 4); | 107 | memcpy(gid, dev_addr->dst_dev_addr + 4, sizeof *gid); |
| 106 | } | 108 | } |
| 107 | 109 | ||
| 108 | static inline void ib_addr_set_dgid(struct rdma_dev_addr *dev_addr, | 110 | static inline void ib_addr_set_dgid(struct rdma_dev_addr *dev_addr, |
