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

Commit 30fa9848 authored by Artem Bityutskiy's avatar Artem Bityutskiy Committed by David Woodhouse
Browse files

mtd: remove extra retlen assignment



MTD functions always assign the 'retlen' argument to 0 at the very
beginning - the callers do not have to do this.

I used the following semantic patch to find these places:

@@
identifier retlen;
expression a, b, c, d, e;
constant C;
type T;
@@
(
- retlen = C;
|
T
-retlen = C
+ retlen
;
)

... when != retlen
    when exists

(
mtd_read(a, b, c, &retlen, d)
|
mtd_write(a, b, c, &retlen, d)
|
mtd_panic_write(a, b, c, &retlen, d)
|
mtd_point(a, b, c, &retlen, d, e)
|
mtd_read_fact_prot_reg(a, b, c, &retlen, d)
|
mtd_write_user_prot_reg(a, b, c, &retlen, d)
|
mtd_read_user_prot_reg(a, b, c, &retlen, d)
|
mtd_writev(a, b, c, d, &retlen)
)

I ran it twice, because there were cases of double zero assigments
in mtd tests. Then I went through the patch to verify that spatch
did not find any false positives.

Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 9cf075f8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -189,7 +189,7 @@ static ssize_t mtdchar_read(struct file *file, char __user *buf, size_t count,
{
	struct mtd_file_info *mfi = file->private_data;
	struct mtd_info *mtd = mfi->mtd;
	size_t retlen=0;
	size_t retlen;
	size_t total_retlen=0;
	int ret=0;
	int len;
+5 −12
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ static int erase_eraseblock(int ebnum)
static int write_eraseblock(int ebnum)
{
	int err = 0;
	size_t written = 0;
	size_t written;
	loff_t addr = ebnum * mtd->erasesize;

	set_random_data(writebuf, mtd->erasesize);
@@ -111,7 +111,7 @@ static int write_eraseblock(int ebnum)
static int verify_eraseblock(int ebnum)
{
	uint32_t j;
	size_t read = 0;
	size_t read;
	int err = 0, i;
	loff_t addr0, addrn;
	loff_t addr = ebnum * mtd->erasesize;
@@ -144,7 +144,6 @@ static int verify_eraseblock(int ebnum)
			return err;
		}
		memset(twopages, 0, bufsize);
		read = 0;
		err = mtd_read(mtd, addr, bufsize, &read, twopages);
		if (mtd_is_bitflip(err))
			err = 0;
@@ -180,7 +179,6 @@ static int verify_eraseblock(int ebnum)
			return err;
		}
		memset(twopages, 0, bufsize);
		read = 0;
		err = mtd_read(mtd, addr, bufsize, &read, twopages);
		if (mtd_is_bitflip(err))
			err = 0;
@@ -203,7 +201,7 @@ static int verify_eraseblock(int ebnum)

static int crosstest(void)
{
	size_t read = 0;
	size_t read;
	int err = 0, i;
	loff_t addr, addr0, addrn;
	unsigned char *pp1, *pp2, *pp3, *pp4;
@@ -228,7 +226,6 @@ static int crosstest(void)
		addrn -= mtd->erasesize;

	/* Read 2nd-to-last page to pp1 */
	read = 0;
	addr = addrn - pgsize - pgsize;
	err = mtd_read(mtd, addr, pgsize, &read, pp1);
	if (mtd_is_bitflip(err))
@@ -241,7 +238,6 @@ static int crosstest(void)
	}

	/* Read 3rd-to-last page to pp1 */
	read = 0;
	addr = addrn - pgsize - pgsize - pgsize;
	err = mtd_read(mtd, addr, pgsize, &read, pp1);
	if (mtd_is_bitflip(err))
@@ -254,7 +250,6 @@ static int crosstest(void)
	}

	/* Read first page to pp2 */
	read = 0;
	addr = addr0;
	printk(PRINT_PREF "reading page at %#llx\n", (long long)addr);
	err = mtd_read(mtd, addr, pgsize, &read, pp2);
@@ -268,7 +263,6 @@ static int crosstest(void)
	}

	/* Read last page to pp3 */
	read = 0;
	addr = addrn - pgsize;
	printk(PRINT_PREF "reading page at %#llx\n", (long long)addr);
	err = mtd_read(mtd, addr, pgsize, &read, pp3);
@@ -282,7 +276,6 @@ static int crosstest(void)
	}

	/* Read first page again to pp4 */
	read = 0;
	addr = addr0;
	printk(PRINT_PREF "reading page at %#llx\n", (long long)addr);
	err = mtd_read(mtd, addr, pgsize, &read, pp4);
@@ -309,7 +302,7 @@ static int crosstest(void)

static int erasecrosstest(void)
{
	size_t read = 0, written = 0;
	size_t read, written;
	int err = 0, i, ebnum, ebnum2;
	loff_t addr0;
	char *readbuf = twopages;
@@ -405,7 +398,7 @@ static int erasecrosstest(void)

static int erasetest(void)
{
	size_t read = 0, written = 0;
	size_t read, written;
	int err = 0, i, ebnum, ok = 1;
	loff_t addr0;

+1 −1
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ static int pgcnt;

static int read_eraseblock_by_page(int ebnum)
{
	size_t read = 0;
	size_t read;
	int i, ret, err = 0;
	loff_t addr = ebnum * mtd->erasesize;
	void *buf = iobuf;
+6 −6
Original line number Diff line number Diff line
@@ -139,7 +139,7 @@ static int erase_whole_device(void)

static int write_eraseblock(int ebnum)
{
	size_t written = 0;
	size_t written;
	int err = 0;
	loff_t addr = ebnum * mtd->erasesize;

@@ -155,7 +155,7 @@ static int write_eraseblock(int ebnum)

static int write_eraseblock_by_page(int ebnum)
{
	size_t written = 0;
	size_t written;
	int i, err = 0;
	loff_t addr = ebnum * mtd->erasesize;
	void *buf = iobuf;
@@ -178,7 +178,7 @@ static int write_eraseblock_by_page(int ebnum)

static int write_eraseblock_by_2pages(int ebnum)
{
	size_t written = 0, sz = pgsize * 2;
	size_t written, sz = pgsize * 2;
	int i, n = pgcnt / 2, err = 0;
	loff_t addr = ebnum * mtd->erasesize;
	void *buf = iobuf;
@@ -210,7 +210,7 @@ static int write_eraseblock_by_2pages(int ebnum)

static int read_eraseblock(int ebnum)
{
	size_t read = 0;
	size_t read;
	int err = 0;
	loff_t addr = ebnum * mtd->erasesize;

@@ -229,7 +229,7 @@ static int read_eraseblock(int ebnum)

static int read_eraseblock_by_page(int ebnum)
{
	size_t read = 0;
	size_t read;
	int i, err = 0;
	loff_t addr = ebnum * mtd->erasesize;
	void *buf = iobuf;
@@ -255,7 +255,7 @@ static int read_eraseblock_by_page(int ebnum)

static int read_eraseblock_by_2pages(int ebnum)
{
	size_t read = 0, sz = pgsize * 2;
	size_t read, sz = pgsize * 2;
	int i, n = pgcnt / 2, err = 0;
	loff_t addr = ebnum * mtd->erasesize;
	void *buf = iobuf;
+2 −2
Original line number Diff line number Diff line
@@ -140,7 +140,7 @@ static int is_block_bad(int ebnum)

static int do_read(void)
{
	size_t read = 0;
	size_t read;
	int eb = rand_eb();
	int offs = rand_offs();
	int len = rand_len(offs), err;
@@ -169,7 +169,7 @@ static int do_read(void)
static int do_write(void)
{
	int eb = rand_eb(), offs, err, len;
	size_t written = 0;
	size_t written;
	loff_t addr;

	offs = offsets[eb];
Loading