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

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
...@@ -189,7 +189,7 @@ static ssize_t mtdchar_read(struct file *file, char __user *buf, size_t count, ...@@ -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_file_info *mfi = file->private_data;
struct mtd_info *mtd = mfi->mtd; struct mtd_info *mtd = mfi->mtd;
size_t retlen=0; size_t retlen;
size_t total_retlen=0; size_t total_retlen=0;
int ret=0; int ret=0;
int len; int len;
......
...@@ -95,7 +95,7 @@ static int erase_eraseblock(int ebnum) ...@@ -95,7 +95,7 @@ static int erase_eraseblock(int ebnum)
static int write_eraseblock(int ebnum) static int write_eraseblock(int ebnum)
{ {
int err = 0; int err = 0;
size_t written = 0; size_t written;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
set_random_data(writebuf, mtd->erasesize); set_random_data(writebuf, mtd->erasesize);
...@@ -111,7 +111,7 @@ static int write_eraseblock(int ebnum) ...@@ -111,7 +111,7 @@ static int write_eraseblock(int ebnum)
static int verify_eraseblock(int ebnum) static int verify_eraseblock(int ebnum)
{ {
uint32_t j; uint32_t j;
size_t read = 0; size_t read;
int err = 0, i; int err = 0, i;
loff_t addr0, addrn; loff_t addr0, addrn;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
...@@ -144,7 +144,6 @@ static int verify_eraseblock(int ebnum) ...@@ -144,7 +144,6 @@ static int verify_eraseblock(int ebnum)
return err; return err;
} }
memset(twopages, 0, bufsize); memset(twopages, 0, bufsize);
read = 0;
err = mtd_read(mtd, addr, bufsize, &read, twopages); err = mtd_read(mtd, addr, bufsize, &read, twopages);
if (mtd_is_bitflip(err)) if (mtd_is_bitflip(err))
err = 0; err = 0;
...@@ -180,7 +179,6 @@ static int verify_eraseblock(int ebnum) ...@@ -180,7 +179,6 @@ static int verify_eraseblock(int ebnum)
return err; return err;
} }
memset(twopages, 0, bufsize); memset(twopages, 0, bufsize);
read = 0;
err = mtd_read(mtd, addr, bufsize, &read, twopages); err = mtd_read(mtd, addr, bufsize, &read, twopages);
if (mtd_is_bitflip(err)) if (mtd_is_bitflip(err))
err = 0; err = 0;
...@@ -203,7 +201,7 @@ static int verify_eraseblock(int ebnum) ...@@ -203,7 +201,7 @@ static int verify_eraseblock(int ebnum)
static int crosstest(void) static int crosstest(void)
{ {
size_t read = 0; size_t read;
int err = 0, i; int err = 0, i;
loff_t addr, addr0, addrn; loff_t addr, addr0, addrn;
unsigned char *pp1, *pp2, *pp3, *pp4; unsigned char *pp1, *pp2, *pp3, *pp4;
...@@ -228,7 +226,6 @@ static int crosstest(void) ...@@ -228,7 +226,6 @@ static int crosstest(void)
addrn -= mtd->erasesize; addrn -= mtd->erasesize;
/* Read 2nd-to-last page to pp1 */ /* Read 2nd-to-last page to pp1 */
read = 0;
addr = addrn - pgsize - pgsize; addr = addrn - pgsize - pgsize;
err = mtd_read(mtd, addr, pgsize, &read, pp1); err = mtd_read(mtd, addr, pgsize, &read, pp1);
if (mtd_is_bitflip(err)) if (mtd_is_bitflip(err))
...@@ -241,7 +238,6 @@ static int crosstest(void) ...@@ -241,7 +238,6 @@ static int crosstest(void)
} }
/* Read 3rd-to-last page to pp1 */ /* Read 3rd-to-last page to pp1 */
read = 0;
addr = addrn - pgsize - pgsize - pgsize; addr = addrn - pgsize - pgsize - pgsize;
err = mtd_read(mtd, addr, pgsize, &read, pp1); err = mtd_read(mtd, addr, pgsize, &read, pp1);
if (mtd_is_bitflip(err)) if (mtd_is_bitflip(err))
...@@ -254,7 +250,6 @@ static int crosstest(void) ...@@ -254,7 +250,6 @@ static int crosstest(void)
} }
/* Read first page to pp2 */ /* Read first page to pp2 */
read = 0;
addr = addr0; addr = addr0;
printk(PRINT_PREF "reading page at %#llx\n", (long long)addr); printk(PRINT_PREF "reading page at %#llx\n", (long long)addr);
err = mtd_read(mtd, addr, pgsize, &read, pp2); err = mtd_read(mtd, addr, pgsize, &read, pp2);
...@@ -268,7 +263,6 @@ static int crosstest(void) ...@@ -268,7 +263,6 @@ static int crosstest(void)
} }
/* Read last page to pp3 */ /* Read last page to pp3 */
read = 0;
addr = addrn - pgsize; addr = addrn - pgsize;
printk(PRINT_PREF "reading page at %#llx\n", (long long)addr); printk(PRINT_PREF "reading page at %#llx\n", (long long)addr);
err = mtd_read(mtd, addr, pgsize, &read, pp3); err = mtd_read(mtd, addr, pgsize, &read, pp3);
...@@ -282,7 +276,6 @@ static int crosstest(void) ...@@ -282,7 +276,6 @@ static int crosstest(void)
} }
/* Read first page again to pp4 */ /* Read first page again to pp4 */
read = 0;
addr = addr0; addr = addr0;
printk(PRINT_PREF "reading page at %#llx\n", (long long)addr); printk(PRINT_PREF "reading page at %#llx\n", (long long)addr);
err = mtd_read(mtd, addr, pgsize, &read, pp4); err = mtd_read(mtd, addr, pgsize, &read, pp4);
...@@ -309,7 +302,7 @@ static int crosstest(void) ...@@ -309,7 +302,7 @@ static int crosstest(void)
static int erasecrosstest(void) static int erasecrosstest(void)
{ {
size_t read = 0, written = 0; size_t read, written;
int err = 0, i, ebnum, ebnum2; int err = 0, i, ebnum, ebnum2;
loff_t addr0; loff_t addr0;
char *readbuf = twopages; char *readbuf = twopages;
...@@ -405,7 +398,7 @@ static int erasecrosstest(void) ...@@ -405,7 +398,7 @@ static int erasecrosstest(void)
static int erasetest(void) static int erasetest(void)
{ {
size_t read = 0, written = 0; size_t read, written;
int err = 0, i, ebnum, ok = 1; int err = 0, i, ebnum, ok = 1;
loff_t addr0; loff_t addr0;
......
...@@ -44,7 +44,7 @@ static int pgcnt; ...@@ -44,7 +44,7 @@ static int pgcnt;
static int read_eraseblock_by_page(int ebnum) static int read_eraseblock_by_page(int ebnum)
{ {
size_t read = 0; size_t read;
int i, ret, err = 0; int i, ret, err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
void *buf = iobuf; void *buf = iobuf;
......
...@@ -139,7 +139,7 @@ static int erase_whole_device(void) ...@@ -139,7 +139,7 @@ static int erase_whole_device(void)
static int write_eraseblock(int ebnum) static int write_eraseblock(int ebnum)
{ {
size_t written = 0; size_t written;
int err = 0; int err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
...@@ -155,7 +155,7 @@ static int write_eraseblock(int ebnum) ...@@ -155,7 +155,7 @@ static int write_eraseblock(int ebnum)
static int write_eraseblock_by_page(int ebnum) static int write_eraseblock_by_page(int ebnum)
{ {
size_t written = 0; size_t written;
int i, err = 0; int i, err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
void *buf = iobuf; void *buf = iobuf;
...@@ -178,7 +178,7 @@ static int write_eraseblock_by_page(int ebnum) ...@@ -178,7 +178,7 @@ static int write_eraseblock_by_page(int ebnum)
static int write_eraseblock_by_2pages(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; int i, n = pgcnt / 2, err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
void *buf = iobuf; void *buf = iobuf;
...@@ -210,7 +210,7 @@ static int write_eraseblock_by_2pages(int ebnum) ...@@ -210,7 +210,7 @@ static int write_eraseblock_by_2pages(int ebnum)
static int read_eraseblock(int ebnum) static int read_eraseblock(int ebnum)
{ {
size_t read = 0; size_t read;
int err = 0; int err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
...@@ -229,7 +229,7 @@ static int read_eraseblock(int ebnum) ...@@ -229,7 +229,7 @@ static int read_eraseblock(int ebnum)
static int read_eraseblock_by_page(int ebnum) static int read_eraseblock_by_page(int ebnum)
{ {
size_t read = 0; size_t read;
int i, err = 0; int i, err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
void *buf = iobuf; void *buf = iobuf;
...@@ -255,7 +255,7 @@ static int read_eraseblock_by_page(int ebnum) ...@@ -255,7 +255,7 @@ static int read_eraseblock_by_page(int ebnum)
static int read_eraseblock_by_2pages(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; int i, n = pgcnt / 2, err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
void *buf = iobuf; void *buf = iobuf;
......
...@@ -140,7 +140,7 @@ static int is_block_bad(int ebnum) ...@@ -140,7 +140,7 @@ static int is_block_bad(int ebnum)
static int do_read(void) static int do_read(void)
{ {
size_t read = 0; size_t read;
int eb = rand_eb(); int eb = rand_eb();
int offs = rand_offs(); int offs = rand_offs();
int len = rand_len(offs), err; int len = rand_len(offs), err;
...@@ -169,7 +169,7 @@ static int do_read(void) ...@@ -169,7 +169,7 @@ static int do_read(void)
static int do_write(void) static int do_write(void)
{ {
int eb = rand_eb(), offs, err, len; int eb = rand_eb(), offs, err, len;
size_t written = 0; size_t written;
loff_t addr; loff_t addr;
offs = offsets[eb]; offs = offsets[eb];
......
...@@ -115,7 +115,7 @@ static int erase_whole_device(void) ...@@ -115,7 +115,7 @@ static int erase_whole_device(void)
static int write_eraseblock(int ebnum) static int write_eraseblock(int ebnum)
{ {
size_t written = 0; size_t written;
int err = 0; int err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
...@@ -150,7 +150,7 @@ static int write_eraseblock(int ebnum) ...@@ -150,7 +150,7 @@ static int write_eraseblock(int ebnum)
static int write_eraseblock2(int ebnum) static int write_eraseblock2(int ebnum)
{ {
size_t written = 0; size_t written;
int err = 0, k; int err = 0, k;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
...@@ -189,13 +189,12 @@ static void print_subpage(unsigned char *p) ...@@ -189,13 +189,12 @@ static void print_subpage(unsigned char *p)
static int verify_eraseblock(int ebnum) static int verify_eraseblock(int ebnum)
{ {
size_t read = 0; size_t read;
int err = 0; int err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
set_random_data(writebuf, subpgsize); set_random_data(writebuf, subpgsize);
clear_data(readbuf, subpgsize); clear_data(readbuf, subpgsize);
read = 0;
err = mtd_read(mtd, addr, subpgsize, &read, readbuf); err = mtd_read(mtd, addr, subpgsize, &read, readbuf);
if (unlikely(err || read != subpgsize)) { if (unlikely(err || read != subpgsize)) {
if (mtd_is_bitflip(err) && read == subpgsize) { if (mtd_is_bitflip(err) && read == subpgsize) {
...@@ -223,7 +222,6 @@ static int verify_eraseblock(int ebnum) ...@@ -223,7 +222,6 @@ static int verify_eraseblock(int ebnum)
set_random_data(writebuf, subpgsize); set_random_data(writebuf, subpgsize);
clear_data(readbuf, subpgsize); clear_data(readbuf, subpgsize);
read = 0;
err = mtd_read(mtd, addr, subpgsize, &read, readbuf); err = mtd_read(mtd, addr, subpgsize, &read, readbuf);
if (unlikely(err || read != subpgsize)) { if (unlikely(err || read != subpgsize)) {
if (mtd_is_bitflip(err) && read == subpgsize) { if (mtd_is_bitflip(err) && read == subpgsize) {
...@@ -252,7 +250,7 @@ static int verify_eraseblock(int ebnum) ...@@ -252,7 +250,7 @@ static int verify_eraseblock(int ebnum)
static int verify_eraseblock2(int ebnum) static int verify_eraseblock2(int ebnum)
{ {
size_t read = 0; size_t read;
int err = 0, k; int err = 0, k;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
...@@ -261,7 +259,6 @@ static int verify_eraseblock2(int ebnum) ...@@ -261,7 +259,6 @@ static int verify_eraseblock2(int ebnum)
break; break;
set_random_data(writebuf, subpgsize * k); set_random_data(writebuf, subpgsize * k);
clear_data(readbuf, subpgsize * k); clear_data(readbuf, subpgsize * k);
read = 0;
err = mtd_read(mtd, addr, subpgsize * k, &read, readbuf); err = mtd_read(mtd, addr, subpgsize * k, &read, readbuf);
if (unlikely(err || read != subpgsize * k)) { if (unlikely(err || read != subpgsize * k)) {
if (mtd_is_bitflip(err) && read == subpgsize * k) { if (mtd_is_bitflip(err) && read == subpgsize * k) {
...@@ -288,14 +285,13 @@ static int verify_eraseblock2(int ebnum) ...@@ -288,14 +285,13 @@ static int verify_eraseblock2(int ebnum)
static int verify_eraseblock_ff(int ebnum) static int verify_eraseblock_ff(int ebnum)
{ {
uint32_t j; uint32_t j;
size_t read = 0; size_t read;
int err = 0; int err = 0;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
memset(writebuf, 0xff, subpgsize); memset(writebuf, 0xff, subpgsize);
for (j = 0; j < mtd->erasesize / subpgsize; ++j) { for (j = 0; j < mtd->erasesize / subpgsize; ++j) {
clear_data(readbuf, subpgsize); clear_data(readbuf, subpgsize);
read = 0;
err = mtd_read(mtd, addr, subpgsize, &read, readbuf); err = mtd_read(mtd, addr, subpgsize, &read, readbuf);
if (unlikely(err || read != subpgsize)) { if (unlikely(err || read != subpgsize)) {
if (mtd_is_bitflip(err) && read == subpgsize) { if (mtd_is_bitflip(err) && read == subpgsize) {
......
...@@ -127,7 +127,7 @@ static inline int erase_eraseblock(int ebnum) ...@@ -127,7 +127,7 @@ static inline int erase_eraseblock(int ebnum)
static inline int check_eraseblock(int ebnum, unsigned char *buf) static inline int check_eraseblock(int ebnum, unsigned char *buf)
{ {
int err, retries = 0; int err, retries = 0;
size_t read = 0; size_t read;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
size_t len = mtd->erasesize; size_t len = mtd->erasesize;
...@@ -181,7 +181,7 @@ static inline int check_eraseblock(int ebnum, unsigned char *buf) ...@@ -181,7 +181,7 @@ static inline int check_eraseblock(int ebnum, unsigned char *buf)
static inline int write_pattern(int ebnum, void *buf) static inline int write_pattern(int ebnum, void *buf)
{ {
int err; int err;
size_t written = 0; size_t written;
loff_t addr = ebnum * mtd->erasesize; loff_t addr = ebnum * mtd->erasesize;
size_t len = mtd->erasesize; size_t len = mtd->erasesize;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment