]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - net/socket.c
xfrm: fix tunnel model fragmentation behavior
[mirror_ubuntu-jammy-kernel.git] / net / socket.c
index 7f64a6eccf63ffbc0bb118c07966466311d00543..5053eb0100e48a457e6b3da2508c10d73edd6208 100644 (file)
@@ -829,6 +829,7 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
        int empty = 1, false_tstamp = 0;
        struct skb_shared_hwtstamps *shhwtstamps =
                skb_hwtstamps(skb);
+       ktime_t hwtstamp;
 
        /* Race occurred between timestamp enabling and packet
           receiving.  Fill in the current time for now. */
@@ -877,10 +878,12 @@ void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
            (sk->sk_tsflags & SOF_TIMESTAMPING_RAW_HARDWARE) &&
            !skb_is_swtx_tstamp(skb, false_tstamp)) {
                if (sk->sk_tsflags & SOF_TIMESTAMPING_BIND_PHC)
-                       ptp_convert_timestamp(shhwtstamps, sk->sk_bind_phc);
+                       hwtstamp = ptp_convert_timestamp(shhwtstamps,
+                                                        sk->sk_bind_phc);
+               else
+                       hwtstamp = shhwtstamps->hwtstamp;
 
-               if (ktime_to_timespec64_cond(shhwtstamps->hwtstamp,
-                                            tss.ts + 2)) {
+               if (ktime_to_timespec64_cond(hwtstamp, tss.ts + 2)) {
                        empty = 0;
 
                        if ((sk->sk_tsflags & SOF_TIMESTAMPING_OPT_PKTINFO) &&