Skip to contentSkip to conversation

ubifs: don't self assign values

PATCH New Jeroen Hofstee 2 participants 3 messages Jun 10, 2014 – Jun 11, 2014 UBI file system (UBIFS)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ubifs: don't self assign values

It seems the code tries to trick the compiler the argument is actually used. However compilers became too smart too fool them so easily an now warn. Checking gcc and clang does not seem to emit a warning. If so it should be decorated with unused / (void).

---
 fs/ubifs/recovery.c | 1 -
 fs/ubifs/scan.c     | 1 -
 2 files changed, 2 deletions(-)
fs/ubifs/recovery.c +0 -1
index 7444650..b91a8cc 100644
@@ -392,7 +392,6 @@ static void clean_buf(const struct ubifs_info *c, void **buf, int lnum,
 {
 	int empty_offs, pad_len;
 
-	lnum = lnum;
 	dbg_rcvry("cleaning corruption at %d:%d", lnum, *offs);
 
 	if (c->min_io_size == 1) {
fs/ubifs/scan.c +0 -1
index 0ed8247..633a56f 100644
@@ -175,7 +175,6 @@ struct ubifs_scan_leb *ubifs_start_scan(const struct ubifs_info *c, int lnum,
 void ubifs_end_scan(const struct ubifs_info *c, struct ubifs_scan_leb *sleb,
 		    int lnum, int offs)
 {
-	lnum = lnum;
 	dbg_scan("stop scanning LEB %d at offset %d", lnum, offs);
 	ubifs_assert(offs % c->min_io_size == 0);
 
Signature · 1 line
1.8.3.2
#1 lore raw

PATCH 1/1 ubifs: don't self assign values

Hello Jeroen,

Am 10.06.2014 23:27, schrieb Jeroen Hofstee:

Quoted 6 lines

It seems the code tries to trick the compiler the argument is actually used. However compilers became too smart too fool them so easily an now warn. Checking gcc and clang does not seem to emit a warning. If so it should be decorated with unused / (void).

Quoted 6 lines
---
  fs/ubifs/recovery.c | 1 -
  fs/ubifs/scan.c     | 1 -
  2 files changed, 2 deletions(-)

I posted an update for MTD/UBI/UBIFS with Linux 3.14 here:

[U-Boot] [RFC, PATCH v2 0/4] mtd, ubi, ubifs: resync with Linux-3.14
http://lists.denx.de/pipermail/u-boot/2014-May/180001.html

Could you try this series? There only your change in "fs/ubifs/recovery.c" is needed ... and as this code comes from Linux, maybe it is worth to post this change also for Linux?

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#2 lore raw

PATCH 1/1 ubifs: don't self assign values

Hello Heiko,

Quoted 16 lines · Heiko Schocher

Hello Jeroen,

Am 10.06.2014 23:27, schrieb Jeroen Hofstee:

Quoted 6 lines

It seems the code tries to trick the compiler the argument is actually used. However compilers became too smart too fool them so easily an now warn. Checking gcc and clang does not seem to emit a warning. If so it should be decorated with unused / (void).

Quoted 6 lines
---
  fs/ubifs/recovery.c | 1 -
  fs/ubifs/scan.c     | 1 -
  2 files changed, 2 deletions(-)
Quoted 7 lines

I posted an update for MTD/UBI/UBIFS with Linux 3.14 here:

[U-Boot] [RFC, PATCH v2 0/4] mtd, ubi, ubifs: resync with Linux-3.14
http://lists.denx.de/pipermail/u-boot/2014-May/180001.html

Could you try this series? There only your change in "fs/ubifs/recovery.c" is needed ...

I tried your v3, warnings below. Especially the first one is a bit noisy since it is in a common header file. The other warnings seem harmless.

Quoted 3 lines

and as this code comes from Linux, maybe it is worth to post this change also for Linux?

perhaps, first trying to silence MAKEALL a bit, so real issues aren't buried in noise. I will see how it lands and send an updated patch.

Regards,
Jeroen

include/linux/compat.h:77:18: warning: redefinition of typedef 'gfp_t' is a C11 feature [-Wtypedef-redefinition]

typedef unsigned gfp_t;
                 ^
include/linux/types.h:142:30: note: previous definition is here
typedef unsigned __bitwise__    gfp_t;
                                ^

common/cmd_ubi.c:310:11: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]

        if (size < 0 || size > rsvd_bytes) {
            ~~~~ ^ ~

drivers/mtd/ubi/vmt.c:797:26: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]

                if (vol->last_eb_bytes < 0 ||
                    ~~~~~~~~~~~~~~~~~~ ^ ~

fs/ubifs/recovery.c:441:7: warning: explicitly assigning value of variable of type 'int' to itself [-Wself-assign]

        lnum = lnum;
        ~~~~ ^ ~~~~

fs/ubifs/scan.c:171:7: warning: explicitly assigning value of variable of type 'int' to itself [-Wself-assign]

        lnum = lnum;
        ~~~~ ^ ~~~~