On 7/30/2018 10:48 PM, Ka-Cheong Poon wrote:
This patch removes the IPv6 dependency from RDS.
Signed-off-by: Ka-Cheong Poon <ka-cheong.p...@oracle.com>
---
net/rds/Kconfig | 2 +-
net/rds/af_rds.c | 32 +++++++++++++++++++-------------
net/rds/bind.c | 4 +++-
net/rds/connection.c | 26 ++++++++++++++++++++++++--
net/rds/ib.c | 31 ++++++++++++++++++++++++++-----
net/rds/ib_cm.c | 9 +++++++++
net/rds/ib_rdma.c | 2 ++
net/rds/rdma_transport.c | 10 ++++++++++
net/rds/recv.c | 2 ++
net/rds/send.c | 2 ++
net/rds/tcp.c | 25 +++++++++++++++++++++++++
net/rds/tcp_listen.c | 21 +++++++++++++++++----
12 files changed, 140 insertions(+), 26 deletions(-)
diff --git a/net/rds/Kconfig b/net/rds/Kconfig
index 4c7f259..41f7556 100644
--- a/net/rds/Kconfig
+++ b/net/rds/Kconfig
@@ -1,7 +1,7 @@
config RDS
tristate "The RDS Protocol"
- depends on INET && IPV6
+ depends on INET
Thanks for followup Ka-Cheong.
diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c
index fc5c48b..65387e1 100644
--- a/net/rds/af_rds.c
+++ b/net/rds/af_rds.c
@@ -156,18 +156,20 @@ static int rds_getname(struct socket *sock, struct
sockaddr *uaddr,
return sizeof(*sin);
}
- if (ipv6_addr_type(&rs->rs_conn_addr) &
- IPV6_ADDR_MAPPED) {
- sin = (struct sockaddr_in *)uaddr;
- memset(sin, 0, sizeof(*sin));
- sin->sin_family = AF_INET;
- return sizeof(*sin);
+#if IS_ENABLED(CONFIG_IPV6)
+ if (!(ipv6_addr_type(&rs->rs_conn_addr) &
+ IPV6_ADDR_MAPPED)) {
+ sin6 = (struct sockaddr_in6 *)uaddr;
+ memset(sin6, 0, sizeof(*sin6));
+ sin6->sin6_family = AF_INET6;
+ return sizeof(*sin6);
}
+#endif
I don't like this #ifdef spaghetti all over in the middle functions
but seems like that is the best option considering the involved
changes from previous series.
FWIW,
Acked-by: Santosh Shilimkar <santosh.shilim...@oracle.com>