Skip to content
  • Artem Bityutskiy's avatar
    mtd: remove extra retlen assignment · 30fa9848
    Artem Bityutskiy authored
    
    
    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>
    30fa9848