diff options
author | Amit Pundir <amit.pundir@linaro.org> | 2015-03-15 13:09:33 +0530 |
---|---|---|
committer | Amit Pundir <amit.pundir@linaro.org> | 2015-03-15 13:09:33 +0530 |
commit | 81f8d49e4f2f38480d83ff53b5c426d8d12910e9 (patch) | |
tree | 36ce3e62821fe376fbec122206a836b59a5f7d86 /net/ipv6 | |
parent | ecfe0b5f15b23de6fea4ed4d0bc9ef27c382c0cb (diff) | |
parent | 4be5c6a45a26cdfa7f6ad4a3c01cb69781f37535 (diff) |
Merge branch 'android-3.10' of https://android.googlesource.com/kernel/common into linaro-android-3.10-lsk
* android-3.10: (40 commits)
fs: ecryptfs: readdir: constify actor
mm: reorder can_do_mlock to fix audit denial
dm-verity: Add modes and emit uevent on corrupted blocks
proc: make oom adjustment files user read-only
Revert "Grants system server access to /proc/<pid>/oom_adj for Android applications."
fs/proc/task_mmu.c: add user-space support for resetting mm->hiwater_rss (peak RSS)
net: ping: Return EAFNOSUPPORT when appropriate.
lz4: fix compression/decompression signedness mismatch
lib: add lz4 compressor module
decompressor: add LZ4 decompressor module
Squashfs: Add LZ4 compression configuration option
Squashfs: add LZ4 compression support
fs/squashfs/super.c: logging cleanup
fs/squashfs/file_direct.c: replace count*size kmalloc by kmalloc_array
fs/squashfs/squashfs.h: replace pr_warning by pr_warn
fs: push sync_filesystem() down to the file system's remount_fs()
Squashfs: fix failure to unlock pages on decompress error
Squashfs: Check stream is not NULL in decompressor_multi.c
Squashfs: Directly decompress into the page cache for file data
Squashfs: Restructure squashfs_readpage()
...
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/ip6mr.c | 2 | ||||
-rw-r--r-- | net/ipv6/ping.c | 5 | ||||
-rw-r--r-- | net/ipv6/route.c | 3 |
3 files changed, 7 insertions, 3 deletions
diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index 241fb8ad9fcf..7a3bd3b26c38 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -693,7 +693,7 @@ static netdev_tx_t reg_vif_xmit(struct sk_buff *skb, struct mr6_table *mrt; struct flowi6 fl6 = { .flowi6_oif = dev->ifindex, - .flowi6_iif = skb->skb_iif, + .flowi6_iif = skb->skb_iif ? : LOOPBACK_IFINDEX, .flowi6_mark = skb->mark, }; int err; diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c index 5f0d294b36cd..857201f4936f 100644 --- a/net/ipv6/ping.c +++ b/net/ipv6/ping.c @@ -126,9 +126,10 @@ int ping_v6_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, if (msg->msg_name) { struct sockaddr_in6 *u = (struct sockaddr_in6 *) msg->msg_name; - if (msg->msg_namelen < sizeof(struct sockaddr_in6) || - u->sin6_family != AF_INET6) { + if (msg->msg_namelen < sizeof(*u)) return -EINVAL; + if (u->sin6_family != AF_INET6) { + return -EAFNOSUPPORT; } if (sk->sk_bound_dev_if && sk->sk_bound_dev_if != u->sin6_scope_id) { diff --git a/net/ipv6/route.c b/net/ipv6/route.c index bad36468dcd7..28a664d98745 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -2587,6 +2587,9 @@ static int inet6_rtm_getroute(struct sk_buff *in_skb, struct nlmsghdr* nlh) if (tb[RTA_OIF]) oif = nla_get_u32(tb[RTA_OIF]); + if (tb[RTA_MARK]) + fl6.flowi6_mark = nla_get_u32(tb[RTA_MARK]); + if (tb[RTA_UID]) fl6.flowi6_uid = make_kuid(current_user_ns(), nla_get_u32(tb[RTA_UID])); |