]> Pileus Git - ~andy/linux/blobdiff - net/x25/x25_in.c
Merge commit 'v2.6.27-rc8' into genirq
[~andy/linux] / net / x25 / x25_in.c
index ba13248aa1c31ba79f36f7d52702c2e0b45b361c..7d7c3abf38b573fa64f1bb35026dc5bf80cdcd3c 100644 (file)
@@ -56,14 +56,17 @@ static int x25_queue_rx_frame(struct sock *sk, struct sk_buff *skb, int more)
                skb_reset_transport_header(skbn);
 
                skbo = skb_dequeue(&x25->fragment_queue);
-               memcpy(skb_put(skbn, skbo->len), skbo->data, skbo->len);
+               skb_copy_from_linear_data(skbo, skb_put(skbn, skbo->len),
+                                         skbo->len);
                kfree_skb(skbo);
 
                while ((skbo =
                        skb_dequeue(&x25->fragment_queue)) != NULL) {
                        skb_pull(skbo, (x25->neighbour->extended) ?
                                        X25_EXT_MIN_LEN : X25_STD_MIN_LEN);
-                       memcpy(skb_put(skbn, skbo->len), skbo->data, skbo->len);
+                       skb_copy_from_linear_data(skbo,
+                                                 skb_put(skbn, skbo->len),
+                                                 skbo->len);
                        kfree_skb(skbo);
                }
 
@@ -244,7 +247,7 @@ static int x25_state3_machine(struct sock *sk, struct sk_buff *skb, int frametyp
                                        break;
                                }
                                if (atomic_read(&sk->sk_rmem_alloc) >
-                                   (sk->sk_rcvbuf / 2))
+                                   (sk->sk_rcvbuf >> 1))
                                        x25->condition |= X25_COND_OWN_RX_BUSY;
                        }
                        /*