aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mpi/mpicoder.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mpi/mpicoder.c')
-rw-r--r--lib/mpi/mpicoder.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/mpi/mpicoder.c b/lib/mpi/mpicoder.c
index 24a015513b40..a9f1097c18cb 100644
--- a/lib/mpi/mpicoder.c
+++ b/lib/mpi/mpicoder.c
@@ -477,19 +477,17 @@ MPI mpi_read_raw_from_sgl(struct scatterlist *sgl, unsigned int nbytes)
477 477
478 j = nlimbs - 1; 478 j = nlimbs - 1;
479 a = 0; 479 a = 0;
480 z = 0; 480 z = BYTES_PER_MPI_LIMB - nbytes % BYTES_PER_MPI_LIMB;
481 x = BYTES_PER_MPI_LIMB - nbytes % BYTES_PER_MPI_LIMB; 481 z %= BYTES_PER_MPI_LIMB;
482 x %= BYTES_PER_MPI_LIMB;
483 482
484 for_each_sg(sgl, sg, ents, i) { 483 for_each_sg(sgl, sg, ents, i) {
485 const u8 *buffer = sg_virt(sg) + lzeros; 484 const u8 *buffer = sg_virt(sg) + lzeros;
486 int len = sg->length - lzeros; 485 int len = sg->length - lzeros;
487 int buf_shift = x;
488 486
489 if (sg_is_last(sg) && (len % BYTES_PER_MPI_LIMB)) 487 if (sg_is_last(sg) && (len % BYTES_PER_MPI_LIMB))
490 len += BYTES_PER_MPI_LIMB - (len % BYTES_PER_MPI_LIMB); 488 len += BYTES_PER_MPI_LIMB - (len % BYTES_PER_MPI_LIMB);
491 489
492 for (; x < len + buf_shift; x++) { 490 for (x = 0; x < len; x++) {
493 a <<= 8; 491 a <<= 8;
494 a |= *buffer++; 492 a |= *buffer++;
495 if (((z + x + 1) % BYTES_PER_MPI_LIMB) == 0) { 493 if (((z + x + 1) % BYTES_PER_MPI_LIMB) == 0) {
@@ -498,7 +496,6 @@ MPI mpi_read_raw_from_sgl(struct scatterlist *sgl, unsigned int nbytes)
498 } 496 }
499 } 497 }
500 z += x; 498 z += x;
501 x = 0;
502 lzeros = 0; 499 lzeros = 0;
503 } 500 }
504 return val; 501 return val;