mlx5e_free_rx_wqe(rq, wi);
 }
 
-static inline void mlx5e_add_skb_frag_mpwqe(struct mlx5e_rq *rq,
-                                           struct sk_buff *skb,
-                                           struct mlx5e_dma_info *di,
-                                           u32 frag_offset, u32 len)
+static inline void
+mlx5e_add_skb_frag(struct mlx5e_rq *rq, struct sk_buff *skb,
+                  struct mlx5e_dma_info *di, u32 frag_offset, u32 len,
+                  unsigned int truesize)
 {
-       unsigned int truesize = ALIGN(len, BIT(rq->mpwqe.log_stride_sz));
-
        dma_sync_single_for_cpu(rq->pdev,
                                di->addr + frag_offset,
                                len, DMA_FROM_DEVICE);
        while (byte_cnt) {
                u32 pg_consumed_bytes =
                        min_t(u32, PAGE_SIZE - frag_offset, byte_cnt);
+               unsigned int truesize =
+                       ALIGN(pg_consumed_bytes, BIT(rq->mpwqe.log_stride_sz));
 
-               mlx5e_add_skb_frag_mpwqe(rq, skb, di, frag_offset,
-                                        pg_consumed_bytes);
+               mlx5e_add_skb_frag(rq, skb, di, frag_offset,
+                                  pg_consumed_bytes, truesize);
                byte_cnt -= pg_consumed_bytes;
                frag_offset = 0;
                di++;