mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Overlapping changes all over. The mini-qdisc bits were a little bit tricky, however. Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
commit
c02b3741eb
196 changed files with 2886 additions and 641 deletions
|
|
@ -900,13 +900,12 @@ static int esp6_init_state(struct xfrm_state *x)
|
|||
x->props.header_len += IPV4_BEET_PHMAXLEN +
|
||||
(sizeof(struct ipv6hdr) - sizeof(struct iphdr));
|
||||
break;
|
||||
default:
|
||||
case XFRM_MODE_TRANSPORT:
|
||||
break;
|
||||
case XFRM_MODE_TUNNEL:
|
||||
x->props.header_len += sizeof(struct ipv6hdr);
|
||||
break;
|
||||
default:
|
||||
goto error;
|
||||
}
|
||||
|
||||
align = ALIGN(crypto_aead_blocksize(aead), 4);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,8 @@ static struct sk_buff **esp6_gro_receive(struct sk_buff **head,
|
|||
int nhoff;
|
||||
int err;
|
||||
|
||||
skb_pull(skb, offset);
|
||||
if (!pskb_pull(skb, offset))
|
||||
return NULL;
|
||||
|
||||
if ((err = xfrm_parse_spi(skb, IPPROTO_ESP, &spi, &seq)) != 0)
|
||||
goto out;
|
||||
|
|
|
|||
|
|
@ -1215,14 +1215,16 @@ static int ip6_setup_cork(struct sock *sk, struct inet_cork_full *cork,
|
|||
v6_cork->tclass = ipc6->tclass;
|
||||
if (rt->dst.flags & DST_XFRM_TUNNEL)
|
||||
mtu = np->pmtudisc >= IPV6_PMTUDISC_PROBE ?
|
||||
rt->dst.dev->mtu : dst_mtu(&rt->dst);
|
||||
READ_ONCE(rt->dst.dev->mtu) : dst_mtu(&rt->dst);
|
||||
else
|
||||
mtu = np->pmtudisc >= IPV6_PMTUDISC_PROBE ?
|
||||
rt->dst.dev->mtu : dst_mtu(xfrm_dst_path(&rt->dst));
|
||||
READ_ONCE(rt->dst.dev->mtu) : dst_mtu(xfrm_dst_path(&rt->dst));
|
||||
if (np->frag_size < mtu) {
|
||||
if (np->frag_size)
|
||||
mtu = np->frag_size;
|
||||
}
|
||||
if (mtu < IPV6_MIN_MTU)
|
||||
return -EINVAL;
|
||||
cork->base.fragsize = mtu;
|
||||
if (dst_allfrag(xfrm_dst_path(&rt->dst)))
|
||||
cork->base.flags |= IPCORK_ALLFRAG;
|
||||
|
|
@ -1742,6 +1744,7 @@ struct sk_buff *ip6_make_skb(struct sock *sk,
|
|||
cork.base.flags = 0;
|
||||
cork.base.addr = 0;
|
||||
cork.base.opt = NULL;
|
||||
cork.base.dst = NULL;
|
||||
v6_cork.opt = NULL;
|
||||
err = ip6_setup_cork(sk, &cork, &v6_cork, ipc6, rt, fl6);
|
||||
if (err) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue