diff options
Diffstat (limited to 'lib/mpi/mpicoder.c')
-rw-r--r-- | lib/mpi/mpicoder.c | 9 |
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; |