summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSami Tolvanen <samitolvanen@google.com>2016-06-21 11:02:42 -0700
committerMike Snitzer <snitzer@redhat.com>2016-07-01 23:29:08 -0400
commit602d1657c603eedd7379a8bcde1ad3a2972ecc5f (patch)
tree1e391897d0ad8cddcbe5cdb4544166e696762088
parent028b39e314dd8b4ab8d3ac401285db40ab1f39d8 (diff)
downloadop-kernel-dev-602d1657c603eedd7379a8bcde1ad3a2972ecc5f.zip
op-kernel-dev-602d1657c603eedd7379a8bcde1ad3a2972ecc5f.tar.gz
dm verity fec: fix block calculation
do_div was replaced with div64_u64 at some point, causing a bug with block calculation due to incompatible semantics of the two functions. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Fixes: a739ff3f543a ("dm verity: add support for forward error correction") Cc: stable@vger.kernel.org # v4.5+ Signed-off-by: Mike Snitzer <snitzer@redhat.com>
-rw-r--r--drivers/md/dm-verity-fec.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/md/dm-verity-fec.c b/drivers/md/dm-verity-fec.c
index 459a9f8..0f0eb8a 100644
--- a/drivers/md/dm-verity-fec.c
+++ b/drivers/md/dm-verity-fec.c
@@ -453,9 +453,7 @@ int verity_fec_decode(struct dm_verity *v, struct dm_verity_io *io,
*/
offset = block << v->data_dev_block_bits;
-
- res = offset;
- div64_u64(res, v->fec->rounds << v->data_dev_block_bits);
+ res = div64_u64(offset, v->fec->rounds << v->data_dev_block_bits);
/*
* The base RS block we can feed to the interleaver to find out all
OpenPOWER on IntegriCloud