{
        int ret;
 
-       net_timestamp_check(netdev_tstamp_prequeue, skb);
+       net_timestamp_check(READ_ONCE(netdev_tstamp_prequeue), skb);
 
        trace_netif_rx(skb);
 
        int ret = NET_RX_DROP;
        __be16 type;
 
-       net_timestamp_check(!netdev_tstamp_prequeue, skb);
+       net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb);
 
        trace_netif_receive_skb(skb);
 
 {
        int ret;
 
-       net_timestamp_check(netdev_tstamp_prequeue, skb);
+       net_timestamp_check(READ_ONCE(netdev_tstamp_prequeue), skb);
 
        if (skb_defer_rx_timestamp(skb))
                return NET_RX_SUCCESS;
 
        INIT_LIST_HEAD(&sublist);
        list_for_each_entry_safe(skb, next, head, list) {
-               net_timestamp_check(netdev_tstamp_prequeue, skb);
+               net_timestamp_check(READ_ONCE(netdev_tstamp_prequeue), skb);
                skb_list_del_init(skb);
                if (!skb_defer_rx_timestamp(skb))
                        list_add_tail(&skb->list, &sublist);