struct skb_frame_desc *skbdesc = get_skb_frame_desc(skb);
        struct sk_buff *skbcopy;
        struct rt2x00dump_hdr *dump_hdr;
-       struct timeval timestamp;
+       struct timespec64 timestamp;
        u32 data_len;
 
        if (likely(!test_bit(FRAME_DUMP_FILE_OPEN, &intf->frame_dump_flags)))
                return;
 
-       do_gettimeofday(×tamp);
+       ktime_get_ts64(×tamp);
 
        if (skb_queue_len(&intf->frame_dump_skbqueue) > 20) {
                rt2x00_dbg(rt2x00dev, "txrx dump queue length exceeded\n");
        dump_hdr->queue_index = entry->queue->qid;
        dump_hdr->entry_index = entry->entry_idx;
        dump_hdr->timestamp_sec = cpu_to_le32(timestamp.tv_sec);
-       dump_hdr->timestamp_usec = cpu_to_le32(timestamp.tv_usec);
+       dump_hdr->timestamp_usec = cpu_to_le32(timestamp.tv_nsec /
+                                              NSEC_PER_USEC);
 
        if (!(skbdesc->flags & SKBDESC_DESC_IN_SKB))
                skb_put_data(skbcopy, skbdesc->desc, skbdesc->desc_len);