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

Commit 6c8b44ab authored by Andrew Morton's avatar Andrew Morton Committed by David Woodhouse
Browse files

[MTD] Avoid 64-bit division in mtdconcat



WARNING: "__moddi3" [drivers/mtd/mtdconcat.ko] undefined!

Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 5fc3dbc4
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@
#include <linux/mtd/mtd.h>
#include <linux/mtd/concat.h>

#include <asm/div64.h>

/*
 * Our storage structure:
 * Subdev points to an array of pointers to struct mtd_info objects
@@ -276,9 +278,11 @@ concat_writev_ecc(struct mtd_info *mtd, const struct kvec *vecs,
		return -EINVAL;

	/* Check alignment */
	if (mtd->oobblock > 1)
		if ((to % mtd->oobblock) || (total_len % mtd->oobblock))
	if (mtd->oobblock > 1) {
		loff_t __to = to;
		if (do_div(__to, mtd->oobblock) || (total_len % mtd->oobblock))
			return -EINVAL;
	}

	/* make a copy of vecs */
	vecs_copy = kmalloc(sizeof(struct kvec) * count, GFP_KERNEL);