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:
David S. Miller
2016-11-15 10:54:36 -05:00
580 changed files with 7322 additions and 4039 deletions

View File

@@ -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;