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: Artem Bityutskiy <artem.bityutskiy@linux.intel.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
这个提交包含在:
@@ -115,7 +115,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;
|
||||
|
||||
@@ -150,7 +150,7 @@ static int write_eraseblock(int ebnum)
|
||||
|
||||
static int write_eraseblock2(int ebnum)
|
||||
{
|
||||
size_t written = 0;
|
||||
size_t written;
|
||||
int err = 0, k;
|
||||
loff_t addr = ebnum * mtd->erasesize;
|
||||
|
||||
@@ -189,13 +189,12 @@ static void print_subpage(unsigned char *p)
|
||||
|
||||
static int verify_eraseblock(int ebnum)
|
||||
{
|
||||
size_t read = 0;
|
||||
size_t read;
|
||||
int err = 0;
|
||||
loff_t addr = ebnum * mtd->erasesize;
|
||||
|
||||
set_random_data(writebuf, subpgsize);
|
||||
clear_data(readbuf, subpgsize);
|
||||
read = 0;
|
||||
err = mtd_read(mtd, addr, subpgsize, &read, readbuf);
|
||||
if (unlikely(err || read != subpgsize)) {
|
||||
if (mtd_is_bitflip(err) && read == subpgsize) {
|
||||
@@ -223,7 +222,6 @@ static int verify_eraseblock(int ebnum)
|
||||
|
||||
set_random_data(writebuf, subpgsize);
|
||||
clear_data(readbuf, subpgsize);
|
||||
read = 0;
|
||||
err = mtd_read(mtd, addr, subpgsize, &read, readbuf);
|
||||
if (unlikely(err || read != subpgsize)) {
|
||||
if (mtd_is_bitflip(err) && read == subpgsize) {
|
||||
@@ -252,7 +250,7 @@ static int verify_eraseblock(int ebnum)
|
||||
|
||||
static int verify_eraseblock2(int ebnum)
|
||||
{
|
||||
size_t read = 0;
|
||||
size_t read;
|
||||
int err = 0, k;
|
||||
loff_t addr = ebnum * mtd->erasesize;
|
||||
|
||||
@@ -261,7 +259,6 @@ static int verify_eraseblock2(int ebnum)
|
||||
break;
|
||||
set_random_data(writebuf, subpgsize * k);
|
||||
clear_data(readbuf, subpgsize * k);
|
||||
read = 0;
|
||||
err = mtd_read(mtd, addr, subpgsize * k, &read, readbuf);
|
||||
if (unlikely(err || read != subpgsize * k)) {
|
||||
if (mtd_is_bitflip(err) && read == subpgsize * k) {
|
||||
@@ -288,14 +285,13 @@ static int verify_eraseblock2(int ebnum)
|
||||
static int verify_eraseblock_ff(int ebnum)
|
||||
{
|
||||
uint32_t j;
|
||||
size_t read = 0;
|
||||
size_t read;
|
||||
int err = 0;
|
||||
loff_t addr = ebnum * mtd->erasesize;
|
||||
|
||||
memset(writebuf, 0xff, subpgsize);
|
||||
for (j = 0; j < mtd->erasesize / subpgsize; ++j) {
|
||||
clear_data(readbuf, subpgsize);
|
||||
read = 0;
|
||||
err = mtd_read(mtd, addr, subpgsize, &read, readbuf);
|
||||
if (unlikely(err || read != subpgsize)) {
|
||||
if (mtd_is_bitflip(err) && read == subpgsize) {
|
||||
|
在新工单中引用
屏蔽一个用户