mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: Revert "NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines." skbuff.h: Fix comment for NET_IP_ALIGN drivers/net: using spin_lock_irqsave() in net_send_packet() NET: phy_device, fix lock imbalance gre: fix ToS/DiffServ inherit bug igb: gcc-3.4.6 fix atlx: duplicate testing of MCAST flag NET: Fix locking issues in PPP, 6pack, mkiss and strip line disciplines. netdev: restore MTU change operation netdev: restore MAC address set and validate operations sit: fix regression: do not release skb->dst before xmit net: ip_push_pending_frames() fix net: sk_prot_alloc() should not blindly overwrite memory
This commit is contained in:
commit
a376d44677
26 changed files with 97 additions and 57 deletions
|
|
@ -939,8 +939,23 @@ static struct sock *sk_prot_alloc(struct proto *prot, gfp_t priority,
|
|||
struct kmem_cache *slab;
|
||||
|
||||
slab = prot->slab;
|
||||
if (slab != NULL)
|
||||
sk = kmem_cache_alloc(slab, priority);
|
||||
if (slab != NULL) {
|
||||
sk = kmem_cache_alloc(slab, priority & ~__GFP_ZERO);
|
||||
if (!sk)
|
||||
return sk;
|
||||
if (priority & __GFP_ZERO) {
|
||||
/*
|
||||
* caches using SLAB_DESTROY_BY_RCU should let
|
||||
* sk_node.next un-modified. Special care is taken
|
||||
* when initializing object to zero.
|
||||
*/
|
||||
if (offsetof(struct sock, sk_node.next) != 0)
|
||||
memset(sk, 0, offsetof(struct sock, sk_node.next));
|
||||
memset(&sk->sk_node.pprev, 0,
|
||||
prot->obj_size - offsetof(struct sock,
|
||||
sk_node.pprev));
|
||||
}
|
||||
}
|
||||
else
|
||||
sk = kmalloc(prot->obj_size, priority);
|
||||
|
||||
|
|
|
|||
|
|
@ -735,10 +735,10 @@ static int ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
|
|||
}
|
||||
|
||||
tos = tiph->tos;
|
||||
if (tos&1) {
|
||||
if (tos == 1) {
|
||||
tos = 0;
|
||||
if (skb->protocol == htons(ETH_P_IP))
|
||||
tos = old_iph->tos;
|
||||
tos &= ~1;
|
||||
}
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1243,7 +1243,6 @@ int ip_push_pending_frames(struct sock *sk)
|
|||
skb->len += tmp_skb->len;
|
||||
skb->data_len += tmp_skb->len;
|
||||
skb->truesize += tmp_skb->truesize;
|
||||
__sock_put(tmp_skb->sk);
|
||||
tmp_skb->destructor = NULL;
|
||||
tmp_skb->sk = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1484,7 +1484,6 @@ int ip6_push_pending_frames(struct sock *sk)
|
|||
skb->len += tmp_skb->len;
|
||||
skb->data_len += tmp_skb->len;
|
||||
skb->truesize += tmp_skb->truesize;
|
||||
__sock_put(tmp_skb->sk);
|
||||
tmp_skb->destructor = NULL;
|
||||
tmp_skb->sk = NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1018,6 +1018,7 @@ static void ipip6_tunnel_setup(struct net_device *dev)
|
|||
dev->hard_header_len = LL_MAX_HEADER + sizeof(struct iphdr);
|
||||
dev->mtu = ETH_DATA_LEN - sizeof(struct iphdr);
|
||||
dev->flags = IFF_NOARP;
|
||||
dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
|
||||
dev->iflink = 0;
|
||||
dev->addr_len = 4;
|
||||
dev->features |= NETIF_F_NETNS_LOCAL;
|
||||
|
|
|
|||
Loading…
Reference in a new issue