err = (err == ICP_QAT_FW_COMN_STATUS_FLAG_OK) ? 0 : -EINVAL;
 
-       kfree_sensitive(req->src_align);
-
        dma_unmap_single(dev, req->in.rsa.enc.m, req->ctx.rsa->key_sz,
                         DMA_TO_DEVICE);
 
+       kfree_sensitive(req->src_align);
+
        areq->dst_len = req->ctx.rsa->key_sz;
+       dma_unmap_single(dev, req->out.rsa.enc.c, req->ctx.rsa->key_sz,
+                        DMA_FROM_DEVICE);
        if (req->dst_align) {
                scatterwalk_map_and_copy(req->dst_align, areq->dst, 0,
                                         areq->dst_len, 1);
                kfree_sensitive(req->dst_align);
        }
 
-       dma_unmap_single(dev, req->out.rsa.enc.c, req->ctx.rsa->key_sz,
-                        DMA_FROM_DEVICE);
-
        dma_unmap_single(dev, req->phy_in, sizeof(struct qat_rsa_input_params),
                         DMA_TO_DEVICE);
        dma_unmap_single(dev, req->phy_out,