|
@@ -363,6 +363,9 @@ MPI mpi_read_raw_from_sgl(struct scatterlist *sgl, unsigned int nbytes)
|
|
|
lzeros = 0;
|
|
|
}
|
|
|
|
|
|
+ miter.consumed = lzeros;
|
|
|
+ sg_miter_stop(&miter);
|
|
|
+
|
|
|
nbytes -= lzeros;
|
|
|
nbits = nbytes * 8;
|
|
|
if (nbits > MAX_EXTERN_MPI_BITS) {
|
|
@@ -390,7 +393,10 @@ MPI mpi_read_raw_from_sgl(struct scatterlist *sgl, unsigned int nbytes)
|
|
|
z = BYTES_PER_MPI_LIMB - nbytes % BYTES_PER_MPI_LIMB;
|
|
|
z %= BYTES_PER_MPI_LIMB;
|
|
|
|
|
|
- for (;;) {
|
|
|
+ while (sg_miter_next(&miter)) {
|
|
|
+ buff = miter.addr;
|
|
|
+ len = miter.length;
|
|
|
+
|
|
|
for (x = 0; x < len; x++) {
|
|
|
a <<= 8;
|
|
|
a |= *buff++;
|
|
@@ -400,12 +406,6 @@ MPI mpi_read_raw_from_sgl(struct scatterlist *sgl, unsigned int nbytes)
|
|
|
}
|
|
|
}
|
|
|
z += x;
|
|
|
-
|
|
|
- if (!sg_miter_next(&miter))
|
|
|
- break;
|
|
|
-
|
|
|
- buff = miter.addr;
|
|
|
- len = miter.length;
|
|
|
}
|
|
|
|
|
|
return val;
|