Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Several cases of bug fixes in 'net' overlapping other changes in 'net-next-. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -1094,47 +1094,47 @@ static void cma_save_ib_info(struct sockaddr *src_addr,
|
||||
}
|
||||
}
|
||||
|
||||
static void cma_save_ip4_info(struct sockaddr *src_addr,
|
||||
struct sockaddr *dst_addr,
|
||||
static void cma_save_ip4_info(struct sockaddr_in *src_addr,
|
||||
struct sockaddr_in *dst_addr,
|
||||
struct cma_hdr *hdr,
|
||||
__be16 local_port)
|
||||
{
|
||||
struct sockaddr_in *ip4;
|
||||
|
||||
if (src_addr) {
|
||||
ip4 = (struct sockaddr_in *)src_addr;
|
||||
ip4->sin_family = AF_INET;
|
||||
ip4->sin_addr.s_addr = hdr->dst_addr.ip4.addr;
|
||||
ip4->sin_port = local_port;
|
||||
*src_addr = (struct sockaddr_in) {
|
||||
.sin_family = AF_INET,
|
||||
.sin_addr.s_addr = hdr->dst_addr.ip4.addr,
|
||||
.sin_port = local_port,
|
||||
};
|
||||
}
|
||||
|
||||
if (dst_addr) {
|
||||
ip4 = (struct sockaddr_in *)dst_addr;
|
||||
ip4->sin_family = AF_INET;
|
||||
ip4->sin_addr.s_addr = hdr->src_addr.ip4.addr;
|
||||
ip4->sin_port = hdr->port;
|
||||
*dst_addr = (struct sockaddr_in) {
|
||||
.sin_family = AF_INET,
|
||||
.sin_addr.s_addr = hdr->src_addr.ip4.addr,
|
||||
.sin_port = hdr->port,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
static void cma_save_ip6_info(struct sockaddr *src_addr,
|
||||
struct sockaddr *dst_addr,
|
||||
static void cma_save_ip6_info(struct sockaddr_in6 *src_addr,
|
||||
struct sockaddr_in6 *dst_addr,
|
||||
struct cma_hdr *hdr,
|
||||
__be16 local_port)
|
||||
{
|
||||
struct sockaddr_in6 *ip6;
|
||||
|
||||
if (src_addr) {
|
||||
ip6 = (struct sockaddr_in6 *)src_addr;
|
||||
ip6->sin6_family = AF_INET6;
|
||||
ip6->sin6_addr = hdr->dst_addr.ip6;
|
||||
ip6->sin6_port = local_port;
|
||||
*src_addr = (struct sockaddr_in6) {
|
||||
.sin6_family = AF_INET6,
|
||||
.sin6_addr = hdr->dst_addr.ip6,
|
||||
.sin6_port = local_port,
|
||||
};
|
||||
}
|
||||
|
||||
if (dst_addr) {
|
||||
ip6 = (struct sockaddr_in6 *)dst_addr;
|
||||
ip6->sin6_family = AF_INET6;
|
||||
ip6->sin6_addr = hdr->src_addr.ip6;
|
||||
ip6->sin6_port = hdr->port;
|
||||
*dst_addr = (struct sockaddr_in6) {
|
||||
.sin6_family = AF_INET6,
|
||||
.sin6_addr = hdr->src_addr.ip6,
|
||||
.sin6_port = hdr->port,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1159,10 +1159,12 @@ static int cma_save_ip_info(struct sockaddr *src_addr,
|
||||
|
||||
switch (cma_get_ip_ver(hdr)) {
|
||||
case 4:
|
||||
cma_save_ip4_info(src_addr, dst_addr, hdr, port);
|
||||
cma_save_ip4_info((struct sockaddr_in *)src_addr,
|
||||
(struct sockaddr_in *)dst_addr, hdr, port);
|
||||
break;
|
||||
case 6:
|
||||
cma_save_ip6_info(src_addr, dst_addr, hdr, port);
|
||||
cma_save_ip6_info((struct sockaddr_in6 *)src_addr,
|
||||
(struct sockaddr_in6 *)dst_addr, hdr, port);
|
||||
break;
|
||||
default:
|
||||
return -EAFNOSUPPORT;
|
||||
|
Reference in New Issue
Block a user