From 41a13f5985668a04ad61191892caf65132a7883e Mon Sep 17 00:00:00 2001 From: Roland Dreier Date: Tue, 30 Dec 2008 15:30:26 -0800 Subject: [PATCH] --- yaml --- r: 124698 b: refs/heads/master c: f781a22fa2ec11878a960bc3c2abb0a76f9a8f16 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/infiniband/Kconfig | 1 - trunk/drivers/infiniband/core/addr.c | 47 ++++----------------------- trunk/drivers/infiniband/hw/mlx4/cq.c | 2 +- 4 files changed, 9 insertions(+), 43 deletions(-) diff --git a/[refs] b/[refs] index b185ac6393a5..042f8f0b8e90 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 2c4ab6243f91cda62f22af2eb8a6c07590de37b1 +refs/heads/master: f781a22fa2ec11878a960bc3c2abb0a76f9a8f16 diff --git a/trunk/drivers/infiniband/Kconfig b/trunk/drivers/infiniband/Kconfig index dd0db67bf8d7..a5dc78ae62d4 100644 --- a/trunk/drivers/infiniband/Kconfig +++ b/trunk/drivers/infiniband/Kconfig @@ -37,7 +37,6 @@ config INFINIBAND_USER_MEM config INFINIBAND_ADDR_TRANS bool depends on INET - depends on !(INFINIBAND = y && IPV6 = m) default y source "drivers/infiniband/hw/mthca/Kconfig" diff --git a/trunk/drivers/infiniband/core/addr.c b/trunk/drivers/infiniband/core/addr.c index ce511d8748ce..d98b05b28262 100644 --- a/trunk/drivers/infiniband/core/addr.c +++ b/trunk/drivers/infiniband/core/addr.c @@ -128,8 +128,6 @@ int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr) ret = rdma_copy_addr(dev_addr, dev, NULL); dev_put(dev); break; - -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) case AF_INET6: for_each_netdev(&init_net, dev) { if (ipv6_chk_addr(&init_net, @@ -140,7 +138,8 @@ int rdma_translate_ip(struct sockaddr *addr, struct rdma_dev_addr *dev_addr) } } break; -#endif + default: + break; } return ret; } @@ -180,11 +179,10 @@ static void addr_send_arp(struct sockaddr *dst_in) { struct rtable *rt; struct flowi fl; + struct dst_entry *dst; memset(&fl, 0, sizeof fl); - - switch (dst_in->sa_family) { - case AF_INET: + if (dst_in->sa_family == AF_INET) { fl.nl_u.ip4_u.daddr = ((struct sockaddr_in *) dst_in)->sin_addr.s_addr; @@ -193,13 +191,8 @@ static void addr_send_arp(struct sockaddr *dst_in) neigh_event_send(rt->u.dst.neighbour, NULL); ip_rt_put(rt); - break; - -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) - case AF_INET6: - { - struct dst_entry *dst; + } else { fl.nl_u.ip6_u.daddr = ((struct sockaddr_in6 *) dst_in)->sin6_addr; @@ -209,9 +202,6 @@ static void addr_send_arp(struct sockaddr *dst_in) neigh_event_send(dst->neighbour, NULL); dst_release(dst); - break; - } -#endif } } @@ -264,7 +254,6 @@ static int addr4_resolve_remote(struct sockaddr_in *src_in, return ret; } -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) static int addr6_resolve_remote(struct sockaddr_in6 *src_in, struct sockaddr_in6 *dst_in, struct rdma_dev_addr *addr) @@ -293,14 +282,6 @@ static int addr6_resolve_remote(struct sockaddr_in6 *src_in, dst_release(dst); return ret; } -#else -static int addr6_resolve_remote(struct sockaddr_in6 *src_in, - struct sockaddr_in6 *dst_in, - struct rdma_dev_addr *addr) -{ - return -EADDRNOTAVAIL; -} -#endif static int addr_resolve_remote(struct sockaddr *src_in, struct sockaddr *dst_in, @@ -359,9 +340,7 @@ static int addr_resolve_local(struct sockaddr *src_in, struct net_device *dev; int ret; - switch (dst_in->sa_family) { - case AF_INET: - { + if (dst_in->sa_family == AF_INET) { __be32 src_ip = ((struct sockaddr_in *) src_in)->sin_addr.s_addr; __be32 dst_ip = ((struct sockaddr_in *) dst_in)->sin_addr.s_addr; @@ -383,12 +362,7 @@ static int addr_resolve_local(struct sockaddr *src_in, memcpy(addr->dst_dev_addr, dev->dev_addr, MAX_ADDR_LEN); } dev_put(dev); - break; - } - -#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE) - case AF_INET6: - { + } else { struct in6_addr *a; for_each_netdev(&init_net, dev) @@ -416,13 +390,6 @@ static int addr_resolve_local(struct sockaddr *src_in, if (!ret) memcpy(addr->dst_dev_addr, dev->dev_addr, MAX_ADDR_LEN); } - break; - } -#endif - - default: - ret = -EADDRNOTAVAIL; - break; } return ret; diff --git a/trunk/drivers/infiniband/hw/mlx4/cq.c b/trunk/drivers/infiniband/hw/mlx4/cq.c index 8415ecce5c4c..a3c5af1d7ec0 100644 --- a/trunk/drivers/infiniband/hw/mlx4/cq.c +++ b/trunk/drivers/infiniband/hw/mlx4/cq.c @@ -699,7 +699,7 @@ static int mlx4_ib_poll_one(struct mlx4_ib_cq *cq, } wc->slid = be16_to_cpu(cqe->rlid); - wc->sl = be16_to_cpu(cqe->sl_vid >> 12); + wc->sl = be16_to_cpu(cqe->sl_vid) >> 12; g_mlpath_rqpn = be32_to_cpu(cqe->g_mlpath_rqpn); wc->src_qp = g_mlpath_rqpn & 0xffffff; wc->dlid_path_bits = (g_mlpath_rqpn >> 24) & 0x7f;