goto err_rq_wq_destroy;
                }
 
-               rq->mpwqe.stride_sz = BIT(params->mpwqe_log_stride_sz);
+               rq->mpwqe.log_stride_sz = params->mpwqe_log_stride_sz;
                rq->mpwqe.num_strides = BIT(params->mpwqe_log_num_strides);
 
-               rq->buff.wqe_sz = rq->mpwqe.stride_sz * rq->mpwqe.num_strides;
+               rq->buff.wqe_sz = rq->mpwqe.num_strides << rq->mpwqe.log_stride_sz;
                byte_count = rq->buff.wqe_sz;
 
                err = mlx5e_create_rq_umr_mkey(mdev, rq);
 
                                            u32 page_idx, u32 frag_offset,
                                            u32 len)
 {
-       unsigned int truesize = ALIGN(len, rq->mpwqe.stride_sz);
+       unsigned int truesize = ALIGN(len, BIT(rq->mpwqe.log_stride_sz));
 
        dma_sync_single_for_cpu(rq->pdev,
                                wi->umr.dma_info[page_idx].addr + frag_offset,
                                           struct sk_buff *skb)
 {
        u16 stride_ix      = mpwrq_get_cqe_stride_index(cqe);
-       u32 wqe_offset     = stride_ix * rq->mpwqe.stride_sz;
+       u32 wqe_offset     = stride_ix << rq->mpwqe.log_stride_sz;
        u32 head_offset    = wqe_offset & (PAGE_SIZE - 1);
        u32 page_idx       = wqe_offset >> PAGE_SHIFT;
        u32 head_page_idx  = page_idx;