X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=net%2Fx25%2Fx25_dev.c;h=3ff206c0ae945759e1e38fd4b287fb966a0354e1;hb=2dd02c897d798c6a00dca46c7a50ebc10eb3be0d;hp=c7221de98a9529cff4d11ac141ccc00eb7da9bcc;hpb=cb18eccff48ef3986d1072964590bce6fec705fb;p=firefly-linux-kernel-4.4.55.git diff --git a/net/x25/x25_dev.c b/net/x25/x25_dev.c index c7221de98a95..3ff206c0ae94 100644 --- a/net/x25/x25_dev.c +++ b/net/x25/x25_dev.c @@ -48,7 +48,7 @@ static int x25_receive_data(struct sk_buff *skb, struct x25_neigh *nb) if ((sk = x25_find_socket(lci, nb)) != NULL) { int queued = 1; - skb->h.raw = skb->data; + skb_reset_transport_header(skb); bh_lock_sock(sk); if (!sock_owned_by_user(sk)) { queued = x25_process_rx_frame(sk, skb); @@ -95,6 +95,9 @@ int x25_lapb_receive_frame(struct sk_buff *skb, struct net_device *dev, struct sk_buff *nskb; struct x25_neigh *nb; + if (dev_net(dev) != &init_net) + goto drop; + nskb = skb_copy(skb, GFP_ATOMIC); if (!nskb) goto drop; @@ -191,7 +194,7 @@ void x25_send_frame(struct sk_buff *skb, struct x25_neigh *nb) { unsigned char *dptr; - skb->nh.raw = skb->data; + skb_reset_network_header(skb); switch (nb->dev->type) { case ARPHRD_X25: