rx_ring->next_to_alloc = 0;
        rx_ring->next_to_clean = 0;
+       rx_ring->next_to_process = 0;
        rx_ring->next_to_use = 0;
 }
 
 
        rx_ring->next_to_alloc = 0;
        rx_ring->next_to_clean = 0;
+       rx_ring->next_to_process = 0;
        rx_ring->next_to_use = 0;
 
        /* XDP RX-queue info only needed for RX rings exposed to XDP */
 {
        struct i40e_rx_buffer *rx_buffer;
 
-       rx_buffer = i40e_rx_bi(rx_ring, rx_ring->next_to_clean);
+       rx_buffer = i40e_rx_bi(rx_ring, rx_ring->next_to_process);
        rx_buffer->page_count =
 #if (PAGE_SIZE < 8192)
                page_count(rx_buffer->page);
 }
 
 /**
- * i40e_inc_ntc: Advance the next_to_clean index
+ * i40e_inc_ntp: Advance the next_to_process index
  * @rx_ring: Rx ring
  **/
-static void i40e_inc_ntc(struct i40e_ring *rx_ring)
+static void i40e_inc_ntp(struct i40e_ring *rx_ring)
 {
-       u32 ntc = rx_ring->next_to_clean + 1;
+       u32 ntp = rx_ring->next_to_process + 1;
 
-       ntc = (ntc < rx_ring->count) ? ntc : 0;
-       rx_ring->next_to_clean = ntc;
-       prefetch(I40E_RX_DESC(rx_ring, ntc));
+       ntp = (ntp < rx_ring->count) ? ntp : 0;
+       rx_ring->next_to_process = ntp;
+       prefetch(I40E_RX_DESC(rx_ring, ntp));
 }
 
 /**
        xdp_prog = READ_ONCE(rx_ring->xdp_prog);
 
        while (likely(total_rx_packets < (unsigned int)budget)) {
+               u16 ntp = rx_ring->next_to_process;
                struct i40e_rx_buffer *rx_buffer;
                union i40e_rx_desc *rx_desc;
                unsigned int size;
                        cleaned_count = 0;
                }
 
-               rx_desc = I40E_RX_DESC(rx_ring, rx_ring->next_to_clean);
+               rx_desc = I40E_RX_DESC(rx_ring, ntp);
 
                /* status_error_len will always be zero for unused descriptors
                 * because it's cleared in cleanup, and overlaps with hdr_addr
                        i40e_clean_programming_status(rx_ring,
                                                      rx_desc->raw.qword[0],
                                                      qword);
-                       rx_buffer = i40e_rx_bi(rx_ring, rx_ring->next_to_clean);
-                       i40e_inc_ntc(rx_ring);
+                       rx_buffer = i40e_rx_bi(rx_ring, ntp);
+                       i40e_inc_ntp(rx_ring);
                        i40e_reuse_rx_page(rx_ring, rx_buffer);
                        cleaned_count++;
                        continue;
                i40e_put_rx_buffer(rx_ring, rx_buffer);
                cleaned_count++;
 
-               i40e_inc_ntc(rx_ring);
+               i40e_inc_ntp(rx_ring);
+               rx_ring->next_to_clean = rx_ring->next_to_process;
                if (i40e_is_non_eop(rx_ring, rx_desc))
                        continue;