All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] RDMA/irdma: Use net_type to check network type
@ 2022-02-19  5:49 yanjun.zhu
  2022-02-19  5:49 ` [PATCH 2/3] RDMA/irdma: Remove the unnecessary variable saddr yanjun.zhu
  2022-02-19  5:49 ` [PATCH 3/3] RDMA/irdma: Move union irdma_sockaddr to header file yanjun.zhu
  0 siblings, 2 replies; 3+ messages in thread
From: yanjun.zhu @ 2022-02-19  5:49 UTC (permalink / raw)
  To: mustafa.ismail, shiraz.saleem, jgg, linux-rdma, yanjun.zhu, leon

From: Zhu Yanjun <yanjun.zhu@linux.dev>

The member variable net_type is to check the type of network.

Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
---
 drivers/infiniband/hw/irdma/verbs.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
index 460e757d3fe6..b306c50d0f8e 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -1202,7 +1202,7 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr,
 		av->attrs = attr->ah_attr;
 		rdma_gid2ip((struct sockaddr *)&av->sgid_addr, &sgid_attr->gid);
 		rdma_gid2ip((struct sockaddr *)&av->dgid_addr, &attr->ah_attr.grh.dgid);
-		if (av->sgid_addr.saddr.sa_family == AF_INET6) {
+		if (av->net_type == RDMA_NETWORK_IPV6) {
 			__be32 *daddr =
 				av->dgid_addr.saddr_in6.sin6_addr.in6_u.u6_addr32;
 			__be32 *saddr =
@@ -1218,7 +1218,7 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr,
 							    &local_ip[0],
 							    false, NULL,
 							    IRDMA_ARP_RESOLVE);
-		} else {
+		} else if (av->net_type == RDMA_NETWORK_IPV4) {
 			__be32 saddr = av->sgid_addr.saddr_in.sin_addr.s_addr;
 			__be32 daddr = av->dgid_addr.saddr_in.sin_addr.s_addr;
 
@@ -4179,8 +4179,6 @@ static int irdma_create_ah(struct ib_ah *ibah,
 	rdma_gid2ip((struct sockaddr *)&dgid_addr, &ah_attr->grh.dgid);
 	ah->av.attrs = *ah_attr;
 	ah->av.net_type = rdma_gid_attr_network_type(sgid_attr);
-	ah->av.sgid_addr.saddr = sgid_addr.saddr;
-	ah->av.dgid_addr.saddr = dgid_addr.saddr;
 	ah_info = &sc_ah->ah_info;
 	ah_info->ah_idx = ah_id;
 	ah_info->pd_idx = pd->sc_pd.pd_id;
@@ -4191,7 +4189,7 @@ static int irdma_create_ah(struct ib_ah *ibah,
 	}
 
 	ether_addr_copy(dmac, ah_attr->roce.dmac);
-	if (rdma_gid_attr_network_type(sgid_attr) == RDMA_NETWORK_IPV4) {
+	if (ah->av.net_type == RDMA_NETWORK_IPV4) {
 		ah_info->ipv4_valid = true;
 		ah_info->dest_ip_addr[0] =
 			ntohl(dgid_addr.saddr_in.sin_addr.s_addr);
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/3] RDMA/irdma: Remove the unnecessary variable saddr
  2022-02-19  5:49 [PATCH 1/3] RDMA/irdma: Use net_type to check network type yanjun.zhu
@ 2022-02-19  5:49 ` yanjun.zhu
  2022-02-19  5:49 ` [PATCH 3/3] RDMA/irdma: Move union irdma_sockaddr to header file yanjun.zhu
  1 sibling, 0 replies; 3+ messages in thread
From: yanjun.zhu @ 2022-02-19  5:49 UTC (permalink / raw)
  To: mustafa.ismail, shiraz.saleem, jgg, linux-rdma, yanjun.zhu, leon

From: Zhu Yanjun <yanjun.zhu@linux.dev>

The variable saddr is to check the type of a network. Now the
variable net_type is used to do the same work. So it is removed.

Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
---
 drivers/infiniband/hw/irdma/verbs.c | 1 -
 drivers/infiniband/hw/irdma/verbs.h | 1 -
 2 files changed, 2 deletions(-)

diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
index b306c50d0f8e..7e4d0cc9222f 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -4155,7 +4155,6 @@ static int irdma_create_ah(struct ib_ah *ibah,
 	struct irdma_ah_info *ah_info;
 	struct irdma_create_ah_resp uresp;
 	union {
-		struct sockaddr saddr;
 		struct sockaddr_in saddr_in;
 		struct sockaddr_in6 saddr_in6;
 	} sgid_addr, dgid_addr;
diff --git a/drivers/infiniband/hw/irdma/verbs.h b/drivers/infiniband/hw/irdma/verbs.h
index d0fdef8d09ea..d2d4a7e5f954 100644
--- a/drivers/infiniband/hw/irdma/verbs.h
+++ b/drivers/infiniband/hw/irdma/verbs.h
@@ -29,7 +29,6 @@ struct irdma_av {
 	u8 macaddr[16];
 	struct rdma_ah_attr attrs;
 	union {
-		struct sockaddr saddr;
 		struct sockaddr_in saddr_in;
 		struct sockaddr_in6 saddr_in6;
 	} sgid_addr, dgid_addr;
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 3/3] RDMA/irdma: Move union irdma_sockaddr to header file
  2022-02-19  5:49 [PATCH 1/3] RDMA/irdma: Use net_type to check network type yanjun.zhu
  2022-02-19  5:49 ` [PATCH 2/3] RDMA/irdma: Remove the unnecessary variable saddr yanjun.zhu
@ 2022-02-19  5:49 ` yanjun.zhu
  1 sibling, 0 replies; 3+ messages in thread
From: yanjun.zhu @ 2022-02-19  5:49 UTC (permalink / raw)
  To: mustafa.ismail, shiraz.saleem, jgg, linux-rdma, yanjun.zhu, leon

From: Zhu Yanjun <yanjun.zhu@linux.dev>

The union irdma_sockaddr is used frequently. So move it to the
header file.

Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev>
---
 drivers/infiniband/hw/irdma/verbs.c | 17 +++--------------
 drivers/infiniband/hw/irdma/verbs.h | 11 +++++++----
 2 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c
index 7e4d0cc9222f..93cf4ad0d2a6 100644
--- a/drivers/infiniband/hw/irdma/verbs.c
+++ b/drivers/infiniband/hw/irdma/verbs.c
@@ -3932,11 +3932,7 @@ static int irdma_attach_mcast(struct ib_qp *ibqp, union ib_gid *ibgid, u16 lid)
 	int ret = 0;
 	bool ipv4;
 	u16 vlan_id;
-	union {
-		struct sockaddr saddr;
-		struct sockaddr_in saddr_in;
-		struct sockaddr_in6 saddr_in6;
-	} sgid_addr;
+	union irdma_sockaddr sgid_addr;
 	unsigned char dmac[ETH_ALEN];
 
 	rdma_gid2ip((struct sockaddr *)&sgid_addr, ibgid);
@@ -4072,11 +4068,7 @@ static int irdma_detach_mcast(struct ib_qp *ibqp, union ib_gid *ibgid, u16 lid)
 	struct irdma_mcast_grp_ctx_entry_info mcg_info = {};
 	int ret;
 	unsigned long flags;
-	union {
-		struct sockaddr saddr;
-		struct sockaddr_in saddr_in;
-		struct sockaddr_in6 saddr_in6;
-	} sgid_addr;
+	union irdma_sockaddr sgid_addr;
 
 	rdma_gid2ip((struct sockaddr *)&sgid_addr, ibgid);
 	if (!ipv6_addr_v4mapped((struct in6_addr *)ibgid))
@@ -4154,10 +4146,7 @@ static int irdma_create_ah(struct ib_ah *ibah,
 	u32 ah_id = 0;
 	struct irdma_ah_info *ah_info;
 	struct irdma_create_ah_resp uresp;
-	union {
-		struct sockaddr_in saddr_in;
-		struct sockaddr_in6 saddr_in6;
-	} sgid_addr, dgid_addr;
+	union irdma_sockaddr sgid_addr, dgid_addr;
 	int err;
 	u8 dmac[ETH_ALEN];
 
diff --git a/drivers/infiniband/hw/irdma/verbs.h b/drivers/infiniband/hw/irdma/verbs.h
index d2d4a7e5f954..541105b728e3 100644
--- a/drivers/infiniband/hw/irdma/verbs.h
+++ b/drivers/infiniband/hw/irdma/verbs.h
@@ -25,13 +25,16 @@ struct irdma_pd {
 	struct irdma_sc_pd sc_pd;
 };
 
+union irdma_sockaddr {
+	struct sockaddr_in saddr_in;
+	struct sockaddr_in6 saddr_in6;
+};
+
 struct irdma_av {
 	u8 macaddr[16];
 	struct rdma_ah_attr attrs;
-	union {
-		struct sockaddr_in saddr_in;
-		struct sockaddr_in6 saddr_in6;
-	} sgid_addr, dgid_addr;
+	union irdma_sockaddr sgid_addr;
+	union irdma_sockaddr dgid_addr;
 	u8 net_type;
 };
 
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-02-18 13:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-19  5:49 [PATCH 1/3] RDMA/irdma: Use net_type to check network type yanjun.zhu
2022-02-19  5:49 ` [PATCH 2/3] RDMA/irdma: Remove the unnecessary variable saddr yanjun.zhu
2022-02-19  5:49 ` [PATCH 3/3] RDMA/irdma: Move union irdma_sockaddr to header file yanjun.zhu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.