Skip to contentSkip to conversation

yaffs2: Fix GCC 4.6 compile warnings

PATCH In review Anatolij Gustschin 5 participants 13 messages Oct 6, 2012 – Oct 9, 2012

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 yaffs2: Fix GCC 4.6 compile warnings

Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_verify_chunk_written':
yaffs_guts.c:352:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_grab_chunk_cache':
yaffs_guts.c:1488:6: warning: variable 'pushout' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_check_obj_details_loaded':
yaffs_guts.c:3180:6: warning: variable 'alloc_failed' set but not used [-Wunused-but-set-variable]
yaffs_guts.c:3179:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_update_oh':
yaffs_guts.c:3288:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_get_obj_name':
yaffs_guts.c:4447:7: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_summary.c: In function 'yaffs_summary_read':
yaffs_summary.c:194:6: warning: variable 'sum_tags_bytes' set but not used [-Wunused-but-set-variable]
yaffs_verify.c: In function 'yaffs_verify_file':
yaffs_verify.c:227:6: warning: variable 'actual_depth' set but not used [-Wunused-but-set-variable]
yaffs_yaffs1.c: In function 'yaffs1_scan':
yaffs_yaffs1.c:26:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_chunk':
yaffs_yaffs2.c:949:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_backwards':
yaffs_yaffs2.c:1352:6: warning: variable 'deleted' set but not used [-Wunused-but-set-variable]

---
 fs/yaffs2/yaffs_guts.c    |   27 ++++++++-------------------
 fs/yaffs2/yaffs_summary.c |    3 ---
 fs/yaffs2/yaffs_verify.c  |    3 ---
 fs/yaffs2/yaffs_yaffs1.c  |    9 +++------
 fs/yaffs2/yaffs_yaffs2.c  |   12 +++---------
 5 files changed, 14 insertions(+), 40 deletions(-)
fs/yaffs2/yaffs_guts.c +8 -19
index 00d1c5a..21441fd 100644
@@ -321,9 +321,8 @@ static int yaffs_check_chunk_erased(struct yaffs_dev *dev, int nand_chunk)
 	int retval = YAFFS_OK;
 	u8 *data = yaffs_get_temp_buffer(dev);
 	struct yaffs_ext_tags tags;
-	int result;
 
-	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
+	yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
 
 	if (tags.ecc_result > YAFFS_ECC_RESULT_NO_ERROR)
 		retval = YAFFS_FAIL;
@@ -349,9 +348,8 @@ static int yaffs_verify_chunk_written(struct yaffs_dev *dev,
 	int retval = YAFFS_OK;
 	struct yaffs_ext_tags temp_tags;
 	u8 *buffer = yaffs_get_temp_buffer(dev);
-	int result;
 
-	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
+	yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
 	if (memcmp(buffer, data, dev->data_bytes_per_chunk) ||
 	    temp_tags.obj_id != tags->obj_id ||
 	    temp_tags.chunk_id != tags->chunk_id ||
@@ -1485,7 +1483,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 	struct yaffs_obj *the_obj;
 	int usage;
 	int i;
-	int pushout;
 
 	if (dev->param.n_caches < 1)
 		return NULL;
@@ -1506,7 +1503,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 		the_obj = dev->cache[0].object;
 		usage = -1;
 		cache = NULL;
-		pushout = -1;
 
 		for (i = 0; i < dev->param.n_caches; i++) {
 			if (dev->cache[i].object &&
@@ -1516,7 +1512,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 				usage = dev->cache[i].last_use;
 				the_obj = dev->cache[i].object;
 				cache = &dev->cache[i];
-				pushout = i;
 			}
 		}
 
@@ -3176,8 +3171,6 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	struct yaffs_obj_hdr *oh;
 	struct yaffs_dev *dev;
 	struct yaffs_ext_tags tags;
-	int result;
-	int alloc_failed = 0;
 
 	if (!in || !in->lazy_loaded || in->hdr_chunk < 1)
 		return;
@@ -3186,7 +3179,7 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	in->lazy_loaded = 0;
 	buf = yaffs_get_temp_buffer(dev);
 
-	result = yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
+	yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
 	oh = (struct yaffs_obj_hdr *)buf;
 
 	in->yst_mode = oh->yst_mode;
@@ -3196,8 +3189,6 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	if (in->variant_type == YAFFS_OBJECT_TYPE_SYMLINK) {
 		in->variant.symlink_variant.alias =
 		    yaffs_clone_str(oh->alias);
-		if (!in->variant.symlink_variant.alias)
-			alloc_failed = 1;	/* Not returned */
 	}
 	yaffs_release_temp_buffer(dev, buf);
 }
@@ -3285,7 +3276,6 @@ int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
 	struct yaffs_dev *dev = in->my_dev;
 	int prev_chunk_id;
 	int ret_val = 0;
-	int result = 0;
 	int new_chunk_id;
 	struct yaffs_ext_tags new_tags;
 	struct yaffs_ext_tags old_tags;
@@ -3309,8 +3299,8 @@ int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
 	prev_chunk_id = in->hdr_chunk;
 
 	if (prev_chunk_id > 0) {
-		result = yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
-						  buffer, &old_tags);
+		yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
+					  buffer, &old_tags);
 
 		yaffs_verify_oh(in, oh, &old_tags, 0);
 		memcpy(old_name, oh->name, sizeof(oh->name));
@@ -4444,7 +4434,6 @@ int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
 	} else if (obj->short_name[0]) {
 		yaffs_strcpy(name, obj->short_name);
 	} else if (obj->hdr_chunk > 0) {
-		int result;
 		u8 *buffer = yaffs_get_temp_buffer(obj->my_dev);
 
 		struct yaffs_obj_hdr *oh = (struct yaffs_obj_hdr *)buffer;
@@ -4452,9 +4441,9 @@ int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
 		memset(buffer, 0, obj->my_dev->data_bytes_per_chunk);
 
 		if (obj->hdr_chunk > 0) {
-			result = yaffs_rd_chunk_tags_nand(obj->my_dev,
-							  obj->hdr_chunk,
-							  buffer, NULL);
+			yaffs_rd_chunk_tags_nand(obj->my_dev,
+						 obj->hdr_chunk,
+						 buffer, NULL);
 		}
 		yaffs_load_name_from_oh(obj->my_dev, name, oh->name,
 					buffer_size);
fs/yaffs2/yaffs_summary.c +0 -3
index 6f3c783..46e42f6 100644
@@ -191,10 +191,7 @@ int yaffs_summary_read(struct yaffs_dev *dev,
 	struct yaffs_summary_header hdr;
 	struct yaffs_block_info *bi = yaffs_get_block_info(dev, blk);
 	int sum_bytes_per_chunk = dev->data_bytes_per_chunk - sizeof(hdr);
-	int sum_tags_bytes;
 
-	sum_tags_bytes = sizeof(struct yaffs_summary_tags) *
-				dev->chunks_per_summary;
 	buffer = yaffs_get_temp_buffer(dev);
 	n_bytes = sizeof(struct yaffs_summary_tags) * dev->chunks_per_summary;
 	chunk_in_block = dev->chunks_per_summary;
fs/yaffs2/yaffs_verify.c +0 -3
index db48e56..97734a9 100644
@@ -224,7 +224,6 @@ void yaffs_verify_file(struct yaffs_obj *obj)
 {
 	u32 x;
 	int required_depth;
-	int actual_depth;
 	int last_chunk;
 	u32 offset_in_chunk;
 	u32 the_chunk;
@@ -256,8 +255,6 @@ void yaffs_verify_file(struct yaffs_obj *obj)
 		required_depth++;
 	}
 
-	actual_depth = obj->variant.file_variant.top_level;
-
 	/* Check that the chunks in the tnode tree are all correct.
 	 * We do this by scanning through the tnode tree and
 	 * checking the tags for every chunk match.
fs/yaffs2/yaffs_yaffs1.c +3 -6
index d277e20..357d8f7 100644
@@ -23,7 +23,6 @@ int yaffs1_scan(struct yaffs_dev *dev)
 {
 	struct yaffs_ext_tags tags;
 	int blk;
-	int result;
 	int chunk;
 	int c;
 	int deleted;
@@ -95,8 +94,7 @@ int yaffs1_scan(struct yaffs_dev *dev)
 			/* Read the tags and decide what to do */
 			chunk = blk * dev->param.chunks_per_block + c;
 
-			result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL,
-							  &tags);
+			yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
 
 			/* Let's have a good look at this chunk... */
 
@@ -181,9 +179,8 @@ int yaffs1_scan(struct yaffs_dev *dev)
 				yaffs_set_chunk_bit(dev, blk, c);
 				bi->pages_in_use++;
 
-				result = yaffs_rd_chunk_tags_nand(dev, chunk,
-								  chunk_data,
-								  NULL);
+				yaffs_rd_chunk_tags_nand(dev, chunk,
+							 chunk_data, NULL);
 
 				oh = (struct yaffs_obj_hdr *)chunk_data;
 
fs/yaffs2/yaffs_yaffs2.c +3 -9
index f1dc972..f76dcae 100644
@@ -946,7 +946,6 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 	int is_shrink;
 	int is_unlinked;
 	struct yaffs_ext_tags tags;
-	int result;
 	int alloc_failed = 0;
 	int chunk = blk * dev->param.chunks_per_block + chunk_in_block;
 	struct yaffs_file_var *file_var;
@@ -954,12 +953,12 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 	struct yaffs_symlink_var *sl_var;
 
 	if (summary_available) {
-		result = yaffs_summary_fetch(dev, &tags, chunk_in_block);
+		yaffs_summary_fetch(dev, &tags, chunk_in_block);
 		tags.seq_number = bi->seq_number;
 	}
 
 	if (!summary_available || tags.obj_id == 0) {
-		result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
+		yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
 		dev->tags_used++;
 	} else {
 		dev->summary_used++;
@@ -1114,10 +1113,7 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 			 * invalid data until needed.
 			 */
 
-			result = yaffs_rd_chunk_tags_nand(dev,
-						  chunk,
-						  chunk_data,
-						  NULL);
+			yaffs_rd_chunk_tags_nand(dev, chunk, chunk_data, NULL);
 
 			oh = (struct yaffs_obj_hdr *)chunk_data;
 
@@ -1349,7 +1345,6 @@ int yaffs2_scan_backwards(struct yaffs_dev *dev)
 	int n_to_scan = 0;
 	enum yaffs_block_state state;
 	int c;
-	int deleted;
 	LIST_HEAD(hard_list);
 	struct yaffs_block_info *bi;
 	u32 seq_number;
@@ -1467,7 +1462,6 @@ int yaffs2_scan_backwards(struct yaffs_dev *dev)
 		/* get the block to scan in the correct order */
 		blk = block_index[block_iter].block;
 		bi = yaffs_get_block_info(dev, blk);
-		deleted = 0;
 
 		summary_available = yaffs_summary_read(dev, dev->sum_tags, blk);
 
Signature · 1 line
1.7.7.6
#1 lore raw

[U-Boot] ELDK4.2 build failures for highbank, omap4_panda and omap4_sdp4430 (was: [PATCH] yaffs2: Fix GCC 4.6 compile warnings)

Hi All,

With Anatolij's fix in, ELDK4.2 still fails to build three boards:
highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).

Build logs are weird for the two omap boards:

Configuring for omap4_panda board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9! Configuring for omap4_sdp4430 board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

For highbank, it is a matter of emitting instructions invalid for armv5.

Do these boards need to support building with older toolchains?

Amicalement,

Signature · 1 line
Albert.
#2 lore raw

[U-Boot] ELDK4.2 build failures for highbank, omap4_panda and omap4_sdp4430 (was: [PATCH] yaffs2: Fix GCC 4.6 compile warnings)

Hi,

Quoted 16 lines · Albert ARIBAUD

Hi All,

With Anatolij's fix in, ELDK4.2 still fails to build three boards:
highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).

Build logs are weird for the two omap boards:

Configuring for omap4_panda board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9! Configuring for omap4_sdp4430 board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

Quoted 6 lines

For highbank, it is a matter of emitting instructions invalid for armv5.

Do these boards need to support building with older toolchains?

Amicalement,

Seems like sricharan at ti.com does not exist any more. That makes

omap4_panda ARM ARMV7 (OMAP4xx SoC)
omap4_sdp4430 ARM ARMV7 (OMAP4xx SoC)
omap5_evm ARM ARMV7 (OMAP5xx Soc)

Up for bids for a new maintainer.

Amicalement,

Signature · 1 line
Albert.
#3 lore raw

[U-Boot] ELDK4.2 build failures for highbank, omap4_panda and omap4_sdp4430 (was: [PATCH] yaffs2: Fix GCC 4.6 compile warnings)

Quoted 28 lines · Albert ARIBAUD

Hi,

Quoted 16 lines · Albert ARIBAUD

Hi All,

With Anatolij's fix in, ELDK4.2 still fails to build three boards:
highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).

Build logs are weird for the two omap boards:

Configuring for omap4_panda board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9! Configuring for omap4_sdp4430 board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

Quoted 6 lines

For highbank, it is a matter of emitting instructions invalid for armv5.

Do these boards need to support building with older toolchains?

Amicalement,

Quoted 7 lines

Seems like sricharan at ti.com does not exist any more. That makes

        omap4_panda     ARM ARMV7 (OMAP4xx SoC)
        omap4_sdp4430   ARM ARMV7 (OMAP4xx SoC)
        omap5_evm       ARM ARMV7 (OMAP5xx Soc)

Up for bids for a new maintainer.

But that's not quite his email address :) Cc'ing him now but as I said later in the thread, it's a feature that it doesn't build for eldk4.2

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121008/24946bd0/attachment.pgp>
#4 lore raw

[U-Boot] ELDK4.2 build failures for highbank, omap4_panda and omap4_sdp4430

Quoted 31 lines · Tom Rini
Quoted 30 lines · Albert ARIBAUD

Hi,

Quoted 16 lines · Albert ARIBAUD

Hi All,

With Anatolij's fix in, ELDK4.2 still fails to build three boards:
highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).

Build logs are weird for the two omap boards:

Configuring for omap4_panda board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9! Configuring for omap4_sdp4430 board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

Quoted 6 lines

For highbank, it is a matter of emitting instructions invalid for armv5.

Do these boards need to support building with older toolchains?

Amicalement,

Seems like sricharan at ti.com does not exist any more. That makes

Quoted 8 lines
Quoted 5 lines
         omap4_panda     ARM ARMV7 (OMAP4xx SoC)
         omap4_sdp4430   ARM ARMV7 (OMAP4xx SoC)
         omap5_evm       ARM ARMV7 (OMAP5xx Soc)

Up for bids for a new maintainer.

But that's not quite his email address :) Cc'ing him now but as I said later in the thread, it's a feature that it doesn't build for eldk4.2

Thats right. They are currently build with THUMB mode.

Regards,
Sricharan

#5 lore raw

[U-Boot] ELDK4.2 build failures for highbank, omap4_panda and omap4_sdp4430

Hi R,

Quoted 32 lines · R Sricharan
Quoted 31 lines · Tom Rini
Quoted 30 lines · Albert ARIBAUD

Hi,

Quoted 16 lines · Albert ARIBAUD

Hi All,

With Anatolij's fix in, ELDK4.2 still fails to build three boards:
highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).

Build logs are weird for the two omap boards:

Configuring for omap4_panda board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9! Configuring for omap4_sdp4430 board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

Quoted 6 lines

For highbank, it is a matter of emitting instructions invalid for armv5.

Do these boards need to support building with older toolchains?

Amicalement,

Seems like sricharan at ti.com does not exist any more. That makes

Quoted 7 lines
Quoted 7 lines
Quoted 5 lines
         omap4_panda     ARM ARMV7 (OMAP4xx SoC)
         omap4_sdp4430   ARM ARMV7 (OMAP4xx SoC)
         omap5_evm       ARM ARMV7 (OMAP5xx Soc)

Up for bids for a new maintainer.

But that's not quite his email address :) Cc'ing him now but as I said later in the thread, it's a feature that it doesn't build for eldk4.2

Apologies for messing Sricharan's e-mail.

Quoted 1 line

Thats right. They are currently build with THUMB mode.

Thanks.

Quoted 2 lines

Regards,
Sricharan

Amicalement,

Signature · 1 line
Albert.
#6 lore raw

[U-Boot] ELDK4.2 build failures for highbank, omap4_panda and omap4_sdp4430 (was: [PATCH] yaffs2: Fix GCC 4.6 compile warnings)

In reply to Albert ARIBAUD
Quoted 7 lines · Albert ARIBAUD

Hi All,

With Anatolij's fix in, ELDK4.2 still fails to build three boards:
highbank, omap4_panda and omap4_sdp4430 (maintainers CCed).

Build logs are weird for the two omap boards:

Quoted 8 lines

Configuring for omap4_panda board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9! Configuring for omap4_sdp4430 board...
arm-linux-gnueabi-size: './u-boot': No such file
make: *** [checkthumb] Erreur 1
make: INTERNAL: Exiting with 10 jobserver tokens available; should be 9!

The problem is that omap4/5 use CONFIG_SYS_THUMB_BUILD and ELDK-4.2 doesn't produce working binaries in this case so we have the checkthumb rule in the top-level Makefile. Some of the tegra boards will also be hitting this soon I believe, as they are also building in thumb mode.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121007/ba978d0d/attachment.pgp>
#7 lore raw

PATCH 1/1 yaffs2: Fix GCC 4.6 compile warnings

In reply to Anatolij Gustschin

Hi Anatolij,

Quoted 282 lines · Anatolij Gustschin

Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_verify_chunk_written':
yaffs_guts.c:352:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_grab_chunk_cache':
yaffs_guts.c:1488:6: warning: variable 'pushout' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_check_obj_details_loaded':
yaffs_guts.c:3180:6: warning: variable 'alloc_failed' set but not used [-Wunused-but-set-variable]
yaffs_guts.c:3179:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_update_oh':
yaffs_guts.c:3288:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_get_obj_name':
yaffs_guts.c:4447:7: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_summary.c: In function 'yaffs_summary_read':
yaffs_summary.c:194:6: warning: variable 'sum_tags_bytes' set but not used [-Wunused-but-set-variable]
yaffs_verify.c: In function 'yaffs_verify_file':
yaffs_verify.c:227:6: warning: variable 'actual_depth' set but not used [-Wunused-but-set-variable]
yaffs_yaffs1.c: In function 'yaffs1_scan':
yaffs_yaffs1.c:26:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_chunk':
yaffs_yaffs2.c:949:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_backwards':
yaffs_yaffs2.c:1352:6: warning: variable 'deleted' set but not used [-Wunused-but-set-variable]

---
 fs/yaffs2/yaffs_guts.c    |   27 ++++++++-------------------
 fs/yaffs2/yaffs_summary.c |    3 ---
 fs/yaffs2/yaffs_verify.c  |    3 ---
 fs/yaffs2/yaffs_yaffs1.c  |    9 +++------
 fs/yaffs2/yaffs_yaffs2.c  |   12 +++---------
 5 files changed, 14 insertions(+), 40 deletions(-)
fs/yaffs2/yaffs_guts.c +8 -19
index 00d1c5a..21441fd 100644
@@ -321,9 +321,8 @@ static int yaffs_check_chunk_erased(struct yaffs_dev *dev, int nand_chunk)
 	int retval = YAFFS_OK;
 	u8 *data = yaffs_get_temp_buffer(dev);
 	struct yaffs_ext_tags tags;
-	int result;
 
-	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
+	yaffs_rd_chunk_tags_nand(dev, nand_chunk, data, &tags);
 
 	if (tags.ecc_result > YAFFS_ECC_RESULT_NO_ERROR)
 		retval = YAFFS_FAIL;
@@ -349,9 +348,8 @@ static int yaffs_verify_chunk_written(struct yaffs_dev *dev,
 	int retval = YAFFS_OK;
 	struct yaffs_ext_tags temp_tags;
 	u8 *buffer = yaffs_get_temp_buffer(dev);
-	int result;
 
-	result = yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
+	yaffs_rd_chunk_tags_nand(dev, nand_chunk, buffer, &temp_tags);
 	if (memcmp(buffer, data, dev->data_bytes_per_chunk) ||
 	    temp_tags.obj_id != tags->obj_id ||
 	    temp_tags.chunk_id != tags->chunk_id ||
@@ -1485,7 +1483,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 	struct yaffs_obj *the_obj;
 	int usage;
 	int i;
-	int pushout;
 
 	if (dev->param.n_caches < 1)
 		return NULL;
@@ -1506,7 +1503,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 		the_obj = dev->cache[0].object;
 		usage = -1;
 		cache = NULL;
-		pushout = -1;
 
 		for (i = 0; i < dev->param.n_caches; i++) {
 			if (dev->cache[i].object &&
@@ -1516,7 +1512,6 @@ static struct yaffs_cache *yaffs_grab_chunk_cache(struct yaffs_dev *dev)
 				usage = dev->cache[i].last_use;
 				the_obj = dev->cache[i].object;
 				cache = &dev->cache[i];
-				pushout = i;
 			}
 		}
 
@@ -3176,8 +3171,6 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	struct yaffs_obj_hdr *oh;
 	struct yaffs_dev *dev;
 	struct yaffs_ext_tags tags;
-	int result;
-	int alloc_failed = 0;
 
 	if (!in || !in->lazy_loaded || in->hdr_chunk < 1)
 		return;
@@ -3186,7 +3179,7 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	in->lazy_loaded = 0;
 	buf = yaffs_get_temp_buffer(dev);
 
-	result = yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
+	yaffs_rd_chunk_tags_nand(dev, in->hdr_chunk, buf, &tags);
 	oh = (struct yaffs_obj_hdr *)buf;
 
 	in->yst_mode = oh->yst_mode;
@@ -3196,8 +3189,6 @@ static void yaffs_check_obj_details_loaded(struct yaffs_obj *in)
 	if (in->variant_type == YAFFS_OBJECT_TYPE_SYMLINK) {
 		in->variant.symlink_variant.alias =
 		    yaffs_clone_str(oh->alias);
-		if (!in->variant.symlink_variant.alias)
-			alloc_failed = 1;	/* Not returned */
 	}
 	yaffs_release_temp_buffer(dev, buf);
 }
@@ -3285,7 +3276,6 @@ int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
 	struct yaffs_dev *dev = in->my_dev;
 	int prev_chunk_id;
 	int ret_val = 0;
-	int result = 0;
 	int new_chunk_id;
 	struct yaffs_ext_tags new_tags;
 	struct yaffs_ext_tags old_tags;
@@ -3309,8 +3299,8 @@ int yaffs_update_oh(struct yaffs_obj *in, const YCHAR *name, int force,
 	prev_chunk_id = in->hdr_chunk;
 
 	if (prev_chunk_id > 0) {
-		result = yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
-						  buffer, &old_tags);
+		yaffs_rd_chunk_tags_nand(dev, prev_chunk_id,
+					  buffer, &old_tags);
 
 		yaffs_verify_oh(in, oh, &old_tags, 0);
 		memcpy(old_name, oh->name, sizeof(oh->name));
@@ -4444,7 +4434,6 @@ int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
 	} else if (obj->short_name[0]) {
 		yaffs_strcpy(name, obj->short_name);
 	} else if (obj->hdr_chunk > 0) {
-		int result;
 		u8 *buffer = yaffs_get_temp_buffer(obj->my_dev);
 
 		struct yaffs_obj_hdr *oh = (struct yaffs_obj_hdr *)buffer;
@@ -4452,9 +4441,9 @@ int yaffs_get_obj_name(struct yaffs_obj *obj, YCHAR *name, int buffer_size)
 		memset(buffer, 0, obj->my_dev->data_bytes_per_chunk);
 
 		if (obj->hdr_chunk > 0) {
-			result = yaffs_rd_chunk_tags_nand(obj->my_dev,
-							  obj->hdr_chunk,
-							  buffer, NULL);
+			yaffs_rd_chunk_tags_nand(obj->my_dev,
+						 obj->hdr_chunk,
+						 buffer, NULL);
 		}
 		yaffs_load_name_from_oh(obj->my_dev, name, oh->name,
 					buffer_size);
fs/yaffs2/yaffs_summary.c +0 -3
index 6f3c783..46e42f6 100644
@@ -191,10 +191,7 @@ int yaffs_summary_read(struct yaffs_dev *dev,
 	struct yaffs_summary_header hdr;
 	struct yaffs_block_info *bi = yaffs_get_block_info(dev, blk);
 	int sum_bytes_per_chunk = dev->data_bytes_per_chunk - sizeof(hdr);
-	int sum_tags_bytes;
 
-	sum_tags_bytes = sizeof(struct yaffs_summary_tags) *
-				dev->chunks_per_summary;
 	buffer = yaffs_get_temp_buffer(dev);
 	n_bytes = sizeof(struct yaffs_summary_tags) * dev->chunks_per_summary;
 	chunk_in_block = dev->chunks_per_summary;
fs/yaffs2/yaffs_verify.c +0 -3
index db48e56..97734a9 100644
@@ -224,7 +224,6 @@ void yaffs_verify_file(struct yaffs_obj *obj)
 {
 	u32 x;
 	int required_depth;
-	int actual_depth;
 	int last_chunk;
 	u32 offset_in_chunk;
 	u32 the_chunk;
@@ -256,8 +255,6 @@ void yaffs_verify_file(struct yaffs_obj *obj)
 		required_depth++;
 	}
 
-	actual_depth = obj->variant.file_variant.top_level;
-
 	/* Check that the chunks in the tnode tree are all correct.
 	 * We do this by scanning through the tnode tree and
 	 * checking the tags for every chunk match.
fs/yaffs2/yaffs_yaffs1.c +3 -6
index d277e20..357d8f7 100644
@@ -23,7 +23,6 @@ int yaffs1_scan(struct yaffs_dev *dev)
 {
 	struct yaffs_ext_tags tags;
 	int blk;
-	int result;
 	int chunk;
 	int c;
 	int deleted;
@@ -95,8 +94,7 @@ int yaffs1_scan(struct yaffs_dev *dev)
 			/* Read the tags and decide what to do */
 			chunk = blk * dev->param.chunks_per_block + c;
 
-			result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL,
-							  &tags);
+			yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
 
 			/* Let's have a good look at this chunk... */
 
@@ -181,9 +179,8 @@ int yaffs1_scan(struct yaffs_dev *dev)
 				yaffs_set_chunk_bit(dev, blk, c);
 				bi->pages_in_use++;
 
-				result = yaffs_rd_chunk_tags_nand(dev, chunk,
-								  chunk_data,
-								  NULL);
+				yaffs_rd_chunk_tags_nand(dev, chunk,
+							 chunk_data, NULL);
 
 				oh = (struct yaffs_obj_hdr *)chunk_data;
 
fs/yaffs2/yaffs_yaffs2.c +3 -8
index f1dc972..f76dcae 100644
@@ -946,7 +946,6 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 	int is_shrink;
 	int is_unlinked;
 	struct yaffs_ext_tags tags;
-	int result;
 	int alloc_failed = 0;
 	int chunk = blk * dev->param.chunks_per_block + chunk_in_block;
 	struct yaffs_file_var *file_var;
@@ -954,12 +953,12 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 	struct yaffs_symlink_var *sl_var;
 
 	if (summary_available) {
-		result = yaffs_summary_fetch(dev, &tags, chunk_in_block);
+		yaffs_summary_fetch(dev, &tags, chunk_in_block);
 		tags.seq_number = bi->seq_number;
 	}
 
 	if (!summary_available || tags.obj_id == 0) {
-		result = yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
+		yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
 		dev->tags_used++;
 	} else {
 		dev->summary_used++;
@@ -1114,10 +1113,7 @@ static inline int yaffs2_scan_chunk(struct yaffs_dev *dev,
 			 * invalid data until needed.
 			 */
 
-			result = yaffs_rd_chunk_tags_nand(dev,
-						  chunk,
-						  chunk_data,
-						  NULL);
+			yaffs_rd_chunk_tags_nand(dev, chunk, chunk_data, NULL);
 
 			oh = (struct yaffs_obj_hdr *)chunk_data;
 
@@ -1349,7 +1345,6 @@ int yaffs2_scan_backwards(struct yaffs_dev *dev)
 	int n_to_scan = 0;
 	enum yaffs_block_state state;
 	int c;
-	int deleted;
 	LIST_HEAD(hard_list);
 	struct yaffs_block_info *bi;
 	u32 seq_number;

fs/yaffs2/yaffs_yaffs2.c int yaffs2_scan_backwards(struct yaffs_dev *dev) · line 1467

Quoted 7 lines
fs/yaffs2/yaffs_yaffs2.c +0 -1
@@ -1467,7 +1462,6 @@ int yaffs2_scan_backwards(struct yaffs_dev *dev)
 		/* get the block to scan in the correct order */
 		blk = block_index[block_iter].block;
 		bi = yaffs_get_block_info(dev, blk);
-		deleted = 0;
 
 		summary_available = yaffs_summary_read(dev, dev->sum_tags, blk);
 

This effectively makes VCMA9 and smdk2410 (the two boards which had the yaffs warnings) build clean.

Amicalement,

Signature · 1 line
Albert.
#8 lore raw

PATCH 1/1 yaffs2: Fix GCC 4.6 compile warnings

Quoted 9 lines · Albert ARIBAUD

Hi Anatolij,

Quoted 4 lines · Anatolij Gustschin

Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]

[snip]

Quoted 4 lines

This effectively makes VCMA9 and smdk2410 (the two boards which had the yaffs warnings) build clean.

It takes care of the warnings, but I still see this:

Configuring for VCMA9 board...
make: *** [u-boot] Error 139 /home/scott/fsl/tc/arm-gentoo-linux-gnu/bin/arm-gentoo-linux-gnu-size:
./u-boot: File format not recognized
fs/yaffs2/libyaffs2.o: In function `cmd_yaffs_devconfig':
/home/scott/fsl/git/u-boot/upstream/fs/yaffs2/yaffs_uboot_glue.c:187:
undefined reference to `__udivdi3'
fs/yaffs2/libyaffs2.o: In function `yaffsfs_DoStat':
/home/scott/fsl/git/u-boot/upstream/fs/yaffs2/yaffsfs.c:1606: undefined reference to `__divdi3'

/home/scott/fsl/tc/arm-gentoo-linux-gnu/bin/arm-gentoo-linux-gnu-ld.bfd:
BFD (GNU Binutils) 2.21.1 assertion fail /var/tmp/portage/cross-arm-gentoo-linux-gnu/binutils-2.21.1-r1/work/binutils-2.21.1/bfd/elf32-arm.c:12478
/bin/bash: line 1: 6558 Segmentation fault (core dumped)
/home/scott/fsl/tc/arm-gentoo-linux-gnu/bin/arm-gentoo-linux-gnu-ld.bfd
-pie -T u-boot.lds -Bstatic -Ttext 0x0 $UNDEF_SYM
arch/arm/cpu/arm920t/start.o --start-group api/libapi.o arch/arm/cpu/arm920t/libarm920t.o
arch/arm/cpu/arm920t/s3c24x0/libs3c24x0.o arch/arm/lib/libarm.o
common/libcommon.o disk/libdisk.o drivers/bios_emulator/libatibiosemu.o drivers/block/libblock.o drivers/dfu/libdfu.o drivers/dma/libdma.o drivers/fpga/libfpga.o drivers/gpio/libgpio.o drivers/hwmon/libhwmon.o drivers/i2c/libi2c.o drivers/input/libinput.o drivers/misc/libmisc.o drivers/mmc/libmmc.o drivers/mtd/libmtd.o drivers/mtd/nand/libnand.o drivers/mtd/onenand/libonenand.o drivers/mtd/spi/libspi_flash.o
drivers/mtd/ubi/libubi.o drivers/net/libnet.o drivers/net/phy/libphy.o drivers/pci/libpci.o drivers/pcmcia/libpcmcia.o
drivers/power/libpower.o drivers/rtc/librtc.o
drivers/serial/libserial.o drivers/spi/libspi.o
drivers/twserial/libtws.o drivers/usb/eth/libusb_eth.o drivers/usb/gadget/libusb_gadget.o drivers/usb/host/libusb_host.o drivers/usb/musb/libusb_musb.o drivers/usb/phy/libusb_phy.o drivers/usb/ulpi/libusb_ulpi.o drivers/video/libvideo.o
drivers/watchdog/libwatchdog.o fs/cramfs/libcramfs.o
fs/ext4/libext4fs.o fs/fat/libfat.o fs/fdos/libfdos.o
fs/jffs2/libjffs2.o fs/reiserfs/libreiserfs.o fs/ubifs/libubifs.o
fs/yaffs2/libyaffs2.o fs/zfs/libzfs.o lib/libfdt/libfdt.o
lib/libgeneric.o lib/lzma/liblzma.o lib/lzo/liblzo.o lib/zlib/libz.o
net/libnet.o post/libpost.o test/libtest.o board/mpl/vcma9/libvcma9.o
--end-group /home/scott/fsl/git/u-boot/upstream/arch/arm/lib/libgcc.o
-Map u-boot.map -o u-boot
make: *** [u-boot] Error 139

This is with USE_PRIVATE_LIBGCC=yes and "gcc version 4.6.2 (Gentoo 4.6.2 p1.0, pie-0.4.5)" from Mike Frysinger's toolchain set.

Turning off USE_PRIVATE_LIBGCC produces more errors (lots of hard/soft FP
conflicts, undefined "raise", and the same linker segfault).

Is this toolchain expected to work?

-Scott

#9 lore raw

PATCH 1/1 yaffs2: Fix GCC 4.6 compile warnings

Quoted 13 lines · Scott Wood
Quoted 9 lines · Albert ARIBAUD

Hi Anatolij,

Quoted 4 lines · Anatolij Gustschin

Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]

[snip]

Quoted 2 lines
Quoted 7 lines
Quoted 2 lines

This effectively makes VCMA9 and smdk2410 (the two boards which had the yaffs warnings) build clean.

It takes care of the warnings, but I still see this:

Configuring for VCMA9 board...
make: *** [u-boot] Error 139

The linaro and ELDK 4.2, 5.2 toolchains build this fine. I would suggest grabbing one of those for ARM.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121009/4fe440d1/attachment.pgp>
#10 lore raw

PATCH 1/1 yaffs2: Fix GCC 4.6 compile warnings

Quoted 18 lines · Tom Rini
Quoted 4 lines · Scott Wood
Quoted 3 lines · Albert ARIBAUD

Hi Anatolij,

On Sat, 6 Oct 2012 11:31:03 +0200, Anatolij Gustschin

<[email protected]>

Quoted 12 lines
Quoted 6 lines
Quoted 4 lines · wrote:

Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]

[snip]

Quoted 4 lines

This effectively makes VCMA9 and smdk2410 (the two boards which had the yaffs warnings) build clean.

Quoted 7 lines
Quoted 4 lines

It takes care of the warnings, but I still see this:

Configuring for VCMA9 board...
make: *** [u-boot] Error 139

The linaro and ELDK 4.2, 5.2 toolchains build this fine. I would suggest grabbing one of those for ARM.

I'll give one of them a try, but is it expected that the compiler will be able to do 64/32 division without __udivdi3? Shouldn't yaffs2 be using lldiv() or do_div()?

-Scott

#11 lore raw

PATCH 1/1 yaffs2: Fix GCC 4.6 compile warnings

Quoted 24 lines · Scott Wood
Quoted 23 lines · Tom Rini
Quoted 4 lines · Scott Wood
Quoted 3 lines · Albert ARIBAUD

Hi Anatolij,

On Sat, 6 Oct 2012 11:31:03 +0200, Anatolij Gustschin

<[email protected]>

Quoted 16 lines
Quoted 6 lines
Quoted 4 lines · wrote:

Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]

[snip]

Quoted 4 lines

This effectively makes VCMA9 and smdk2410 (the two boards which had the yaffs warnings) build clean.

It takes care of the warnings, but I still see this:

Configuring for VCMA9 board...
make: *** [u-boot] Error 139

Quoted 6 lines
Quoted 2 lines

The linaro and ELDK 4.2, 5.2 toolchains build this fine. I would suggest grabbing one of those for ARM.

I'll give one of them a try, but is it expected that the compiler will be able to do 64/32 division without __udivdi3? Shouldn't yaffs2 be using lldiv() or do_div()?

Based on a very short skim, yes, yaffs2 looks to be buggy here and for example "end_block = mtd->size / mtd->erasesize - 1;" from yaffs_uboot_glue.c should be using mtd->erase_shift and shifting.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121009/15b543c9/attachment.pgp>
#12 lore raw
In reply to Anatolij Gustschin
Quoted 37 lines · Anatolij Gustschin

Fix:
yaffs_guts.c: In function 'yaffs_check_chunk_erased':
yaffs_guts.c:324:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_verify_chunk_written':
yaffs_guts.c:352:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_grab_chunk_cache':
yaffs_guts.c:1488:6: warning: variable 'pushout' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_check_obj_details_loaded':
yaffs_guts.c:3180:6: warning: variable 'alloc_failed' set but not used [-Wunused-but-set-variable]
yaffs_guts.c:3179:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_update_oh':
yaffs_guts.c:3288:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_guts.c: In function 'yaffs_get_obj_name':
yaffs_guts.c:4447:7: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_summary.c: In function 'yaffs_summary_read':
yaffs_summary.c:194:6: warning: variable 'sum_tags_bytes' set but not used [-Wunused-but-set-variable]
yaffs_verify.c: In function 'yaffs_verify_file':
yaffs_verify.c:227:6: warning: variable 'actual_depth' set but not used [-Wunused-but-set-variable]
yaffs_yaffs1.c: In function 'yaffs1_scan':
yaffs_yaffs1.c:26:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_chunk':
yaffs_yaffs2.c:949:6: warning: variable 'result' set but not used [-Wunused-but-set-variable]
yaffs_yaffs2.c: In function 'yaffs2_scan_backwards':
yaffs_yaffs2.c:1352:6: warning: variable 'deleted' set but not used [-Wunused-but-set-variable]

Quoted 3 lines

Applied to u-boot/master, thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121008/4943e13c/attachment.pgp>