summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSami Tolvanen <samitolvanen@google.com>2016-06-17 11:22:03 -0700
committerAmit Pundir <amit.pundir@linaro.org>2016-07-11 12:41:28 +0530
commitdfe3d7751ae5be130bf07ccde00ceda35d327fc4 (patch)
tree13deae7e0cee0f946cc8e0edc392ba73c7d1df8c
parentfb8ebda5d99fe5f3aa39fd80828a0950d4c6fc47 (diff)
ANDROID: dm verity fec: fix RS block calculation
A call to do_div was changed in Linux 4.5 to div64_u64 in verity_fec_decode, which broke RS block calculation due to incompatible semantics. This change fixes the computation. Bug: 21893453 Change-Id: Idb88b901e0209c2cccc9c0796689f780592d58f9 Signed-off-by: Sami Tolvanen <samitolvanen@google.com> (cherry picked from commit 879aac93eebcc2862d71afa9eca3a0c0f51b3b01)
-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 454535d23a7f..a1e8571ce314 100644
--- a/drivers/md/dm-verity-fec.c
+++ b/drivers/md/dm-verity-fec.c
@@ -463,9 +463,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