diff options
author | Tao Huang <huangtao@rock-chips.com> | 2018-07-06 20:12:54 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2018-07-06 20:12:54 +0800 |
commit | 0d946db93a6250e090acb00a0c5b4242faa5d28d (patch) | |
tree | 2bbc05744b644c06fa3ec368ca9aba711c978346 /net/ipv6 | |
parent | f5ecea240142a8dac5c8d6081686bdf8e4ce12fe (diff) | |
parent | 68921fb4be8e567565aa704350e858db1c470eff (diff) |
Merge tag 'lsk-v4.4-18.06-android' of git://git.linaro.org/kernel/linux-linaro-stable.git
LSK 18.06 v4.4-android
* tag 'lsk-v4.4-18.06-android': (464 commits)
Linux 4.4.138
crypto: vmx - Remove overly verbose printk from AES init routines
Input: elan_i2c - add ELAN0612 (Lenovo v330 14IKB) ACPI ID
Input: goodix - add new ACPI id for GPD Win 2 touch screen
kvm: x86: use correct privilege level for sgdt/sidt/fxsave/fxrstor access
vmw_balloon: fixing double free when batching mode is off
serial: samsung: fix maxburst parameter for DMA transactions
KVM: x86: pass kvm_vcpu to kvm_read_guest_virt and kvm_write_guest_virt_system
KVM: x86: introduce linear_{read,write}_system
Clarify (and fix) MAX_LFS_FILESIZE macros
gpio: No NULL owner
x86/crypto, x86/fpu: Remove X86_FEATURE_EAGER_FPU #ifdef from the crc32c code
af_key: Always verify length of provided sadb_key
x86/fpu: Fix math emulation in eager fpu mode
x86/fpu: Fix FNSAVE usage in eagerfpu mode
x86/fpu: Hard-disable lazy FPU mode
x86/fpu: Fix eager-FPU handling on legacy FPU machines
x86/fpu: Revert ("x86/fpu: Disable AVX when eagerfpu is off")
x86/fpu: Fix 'no387' regression
x86/fpu: Default eagerfpu=on on all CPUs
...
Conflicts:
drivers/clk/clk.c
drivers/clk/rockchip/clk-mmc-phase.c
sound/core/timer.c
Change-Id: I52af7906676f3e4426292481ec36a9a63ee7ecc9
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/ip6_output.c | 3 | ||||
-rw-r--r-- | net/ipv6/ip6mr.c | 3 | ||||
-rw-r--r-- | net/ipv6/sit.c | 7 |
3 files changed, 11 insertions, 2 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index bd2a72f9e488..33ffb29dd620 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1533,7 +1533,8 @@ alloc_new_skb: if (copy > length) copy = length; - if (!(rt->dst.dev->features&NETIF_F_SG)) { + if (!(rt->dst.dev->features&NETIF_F_SG) && + skb_tailroom(skb) >= copy) { unsigned int off; off = skb->len; diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index e5846d1f9b55..9b92960f024d 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -1787,7 +1787,8 @@ int ip6_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, uns ret = 0; if (!ip6mr_new_table(net, v)) ret = -ENOMEM; - raw6_sk(sk)->ip6mr_table = v; + else + raw6_sk(sk)->ip6mr_table = v; rtnl_unlock(); return ret; } diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index 51f7c32f04d7..dec4e7bda5f3 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c @@ -1574,6 +1574,13 @@ static int ipip6_newlink(struct net *src_net, struct net_device *dev, if (err < 0) return err; + if (tb[IFLA_MTU]) { + u32 mtu = nla_get_u32(tb[IFLA_MTU]); + + if (mtu >= IPV6_MIN_MTU && mtu <= 0xFFF8 - dev->hard_header_len) + dev->mtu = mtu; + } + #ifdef CONFIG_IPV6_SIT_6RD if (ipip6_netlink_6rd_parms(data, &ip6rd)) err = ipip6_tunnel_update_6rd(nt, &ip6rd); |