Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f9576b3 authored by Sami Tolvanen's avatar Sami Tolvanen
Browse files

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: default avatarSami Tolvanen <samitolvanen@google.com>
(cherry picked from commit 879aac93eebcc2862d71afa9eca3a0c0f51b3b01)
parent c4d8e3e8
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -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