diff options
author | Sami Tolvanen <samitolvanen@google.com> | 2016-06-21 11:02:42 -0700 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2016-07-01 23:29:08 -0400 |
commit | 602d1657c603eedd7379a8bcde1ad3a2972ecc5f (patch) | |
tree | 1e391897d0ad8cddcbe5cdb4544166e696762088 /drivers/md/dm-verity-fec.c | |
parent | 028b39e314dd8b4ab8d3ac401285db40ab1f39d8 (diff) | |
download | lwn-602d1657c603eedd7379a8bcde1ad3a2972ecc5f.tar.gz lwn-602d1657c603eedd7379a8bcde1ad3a2972ecc5f.zip |
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>
Diffstat (limited to 'drivers/md/dm-verity-fec.c')
-rw-r--r-- | drivers/md/dm-verity-fec.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/md/dm-verity-fec.c b/drivers/md/dm-verity-fec.c index 459a9f8905ed..0f0eb8a3d922 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 |