mm: update the comment in __isolate_free_page
[cascardo/linux.git] / net / ipv6 / udp.c
index acc0970..81e2f98 100644 (file)
@@ -618,9 +618,7 @@ int udpv6_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
            udp_lib_checksum_complete(skb))
                goto csum_error;
 
-       if (sk_filter(sk, skb))
-               goto drop;
-       if (unlikely(skb->len < sizeof(struct udphdr)))
+       if (sk_filter_trim_cap(sk, skb, sizeof(struct udphdr)))
                goto drop;
 
        udp_csum_pull_header(skb);
@@ -1209,6 +1207,11 @@ do_udp_sendmsg:
 
        security_sk_classify_flow(sk, flowi6_to_flowi(&fl6));
 
+       if (ipc6.tclass < 0)
+               ipc6.tclass = np->tclass;
+
+       fl6.flowlabel = ip6_make_flowinfo(ipc6.tclass, fl6.flowlabel);
+
        dst = ip6_sk_dst_lookup_flow(sk, &fl6, final_p);
        if (IS_ERR(dst)) {
                err = PTR_ERR(dst);
@@ -1219,9 +1222,6 @@ do_udp_sendmsg:
        if (ipc6.hlimit < 0)
                ipc6.hlimit = ip6_sk_dst_hoplimit(np, &fl6, dst);
 
-       if (ipc6.tclass < 0)
-               ipc6.tclass = np->tclass;
-
        if (msg->msg_flags&MSG_CONFIRM)
                goto do_confirm;
 back_from_confirm: