Merge tag 'drm-next-2021-05-10' of git://anongit.freedesktop.org/drm/drm
[linux-2.6-microblaze.git] / drivers / crypto / qce / dma.c
index 7da893d..46db5bf 100644 (file)
@@ -48,9 +48,10 @@ void qce_dma_release(struct qce_dma_data *dma)
 
 struct scatterlist *
 qce_sgtable_add(struct sg_table *sgt, struct scatterlist *new_sgl,
-               int max_ents)
+               unsigned int max_len)
 {
        struct scatterlist *sg = sgt->sgl, *sg_last = NULL;
+       unsigned int new_len;
 
        while (sg) {
                if (!sg_page(sg))
@@ -61,13 +62,13 @@ qce_sgtable_add(struct sg_table *sgt, struct scatterlist *new_sgl,
        if (!sg)
                return ERR_PTR(-EINVAL);
 
-       while (new_sgl && sg && max_ents) {
-               sg_set_page(sg, sg_page(new_sgl), new_sgl->length,
-                           new_sgl->offset);
+       while (new_sgl && sg && max_len) {
+               new_len = new_sgl->length > max_len ? max_len : new_sgl->length;
+               sg_set_page(sg, sg_page(new_sgl), new_len, new_sgl->offset);
                sg_last = sg;
                sg = sg_next(sg);
                new_sgl = sg_next(new_sgl);
-               max_ents--;
+               max_len -= new_len;
        }
 
        return sg_last;