These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / net / phonet / af_phonet.c
index 32ab87d..f925753 100644 (file)
@@ -97,7 +97,7 @@ static int pn_socket_create(struct net *net, struct socket *sock, int protocol,
                goto out;
        }
 
-       sk = sk_alloc(net, PF_PHONET, GFP_KERNEL, pnp->prot);
+       sk = sk_alloc(net, PF_PHONET, GFP_KERNEL, pnp->prot, kern);
        if (sk == NULL) {
                err = -ENOMEM;
                goto out;
@@ -377,6 +377,10 @@ static int phonet_rcv(struct sk_buff *skb, struct net_device *dev,
        struct sockaddr_pn sa;
        u16 len;
 
+       skb = skb_share_check(skb, GFP_ATOMIC);
+       if (!skb)
+               return NET_RX_DROP;
+
        /* check we have at least a full Phonet header */
        if (!pskb_pull(skb, sizeof(struct phonethdr)))
                goto out;