[U-Boot] [PATCH] 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]
Signed-off-by: Anatolij Gustschin agust@denx.de Cc: Charles Manning cdhmanning@gmail.com --- 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(-)
diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c index 00d1c5a..21441fd 100644 --- a/fs/yaffs2/yaffs_guts.c +++ b/fs/yaffs2/yaffs_guts.c @@ -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); diff --git a/fs/yaffs2/yaffs_summary.c b/fs/yaffs2/yaffs_summary.c index 6f3c783..46e42f6 100644 --- a/fs/yaffs2/yaffs_summary.c +++ b/fs/yaffs2/yaffs_summary.c @@ -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; diff --git a/fs/yaffs2/yaffs_verify.c b/fs/yaffs2/yaffs_verify.c index db48e56..97734a9 100644 --- a/fs/yaffs2/yaffs_verify.c +++ b/fs/yaffs2/yaffs_verify.c @@ -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. diff --git a/fs/yaffs2/yaffs_yaffs1.c b/fs/yaffs2/yaffs_yaffs1.c index d277e20..357d8f7 100644 --- a/fs/yaffs2/yaffs_yaffs1.c +++ b/fs/yaffs2/yaffs_yaffs1.c @@ -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;
diff --git a/fs/yaffs2/yaffs_yaffs2.c b/fs/yaffs2/yaffs_yaffs2.c index f1dc972..f76dcae 100644 --- a/fs/yaffs2/yaffs_yaffs2.c +++ b/fs/yaffs2/yaffs_yaffs2.c @@ -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);

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,

Hi,
On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
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,
Seems like sricharan@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,

On Sat, Oct 6, 2012 at 4:34 AM, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
Hi,
On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
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,
Seems like sricharan@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

On Monday 08 October 2012 10:05 PM, Tom Rini wrote:
On Sat, Oct 6, 2012 at 4:34 AM, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
Hi,
On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
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,
Seems like sricharan@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
Thats right. They are currently build with THUMB mode.
Regards, Sricharan

Hi R,
On Tue, 9 Oct 2012 11:16:06 +0530, R Sricharan r.sricharan@ti.com wrote:
On Monday 08 October 2012 10:05 PM, Tom Rini wrote:
On Sat, Oct 6, 2012 at 4:34 AM, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
Hi,
On Sat, 6 Oct 2012 13:02:49 +0200, Albert ARIBAUD albert.u.boot@aribaud.net wrote:
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,
Seems like sricharan@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
Apologies for messing Sricharan's e-mail.
Thats right. They are currently build with THUMB mode.
Thanks.
Regards, Sricharan
Amicalement,

On Sat, Oct 06, 2012 at 01:02:49PM +0200, Albert ARIBAUD wrote:
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!
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.

Hi Anatolij,
On Sat, 6 Oct 2012 11:31:03 +0200, Anatolij Gustschin agust@denx.de 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] 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]
Signed-off-by: Anatolij Gustschin agust@denx.de Cc: Charles Manning cdhmanning@gmail.com
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(-)
diff --git a/fs/yaffs2/yaffs_guts.c b/fs/yaffs2/yaffs_guts.c index 00d1c5a..21441fd 100644 --- a/fs/yaffs2/yaffs_guts.c +++ b/fs/yaffs2/yaffs_guts.c @@ -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)
} yaffs_release_temp_buffer(dev, buf);alloc_failed = 1; /* Not returned */
} @@ -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,
} yaffs_load_name_from_oh(obj->my_dev, name, oh->name, buffer_size);buffer, NULL);
diff --git a/fs/yaffs2/yaffs_summary.c b/fs/yaffs2/yaffs_summary.c index 6f3c783..46e42f6 100644 --- a/fs/yaffs2/yaffs_summary.c +++ b/fs/yaffs2/yaffs_summary.c @@ -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;
diff --git a/fs/yaffs2/yaffs_verify.c b/fs/yaffs2/yaffs_verify.c index db48e56..97734a9 100644 --- a/fs/yaffs2/yaffs_verify.c +++ b/fs/yaffs2/yaffs_verify.c @@ -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.
diff --git a/fs/yaffs2/yaffs_yaffs1.c b/fs/yaffs2/yaffs_yaffs1.c index d277e20..357d8f7 100644 --- a/fs/yaffs2/yaffs_yaffs1.c +++ b/fs/yaffs2/yaffs_yaffs1.c @@ -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;
diff --git a/fs/yaffs2/yaffs_yaffs2.c b/fs/yaffs2/yaffs_yaffs2.c index f1dc972..f76dcae 100644 --- a/fs/yaffs2/yaffs_yaffs2.c +++ b/fs/yaffs2/yaffs_yaffs2.c @@ -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);
dev->tags_used++; } else { dev->summary_used++;yaffs_rd_chunk_tags_nand(dev, chunk, NULL, &tags);
@@ -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);
Tested-by: Albert ARIBAUD albert.u.boot@aribaud.net
This effectively makes VCMA9 and smdk2410 (the two boards which had the yaffs warnings) build clean.
Amicalement,

On 10/06/2012 11:59:17 AM, Albert ARIBAUD wrote:
Hi Anatolij,
On Sat, 6 Oct 2012 11:31:03 +0200, Anatolij Gustschin agust@denx.de 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]
Tested-by: Albert ARIBAUD albert.u.boot@aribaud.net
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

On Tue, Oct 09, 2012 at 01:09:22PM -0500, Scott Wood wrote:
On 10/06/2012 11:59:17 AM, Albert ARIBAUD wrote:
Hi Anatolij,
On Sat, 6 Oct 2012 11:31:03 +0200, Anatolij Gustschin agust@denx.de 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]
Tested-by: Albert ARIBAUD albert.u.boot@aribaud.net
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.

On 10/09/2012 01:51:14 PM, Tom Rini wrote:
On Tue, Oct 09, 2012 at 01:09:22PM -0500, Scott Wood wrote:
On 10/06/2012 11:59:17 AM, Albert ARIBAUD wrote:
Hi Anatolij,
On Sat, 6 Oct 2012 11:31:03 +0200, Anatolij Gustschin
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]
Tested-by: Albert ARIBAUD albert.u.boot@aribaud.net
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.
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

On Tue, Oct 09, 2012 at 02:08:13PM -0500, Scott Wood wrote:
On 10/09/2012 01:51:14 PM, Tom Rini wrote:
On Tue, Oct 09, 2012 at 01:09:22PM -0500, Scott Wood wrote:
On 10/06/2012 11:59:17 AM, Albert ARIBAUD wrote:
Hi Anatolij,
On Sat, 6 Oct 2012 11:31:03 +0200, Anatolij Gustschin
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]
Tested-by: Albert ARIBAUD albert.u.boot@aribaud.net
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.
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.

On Fri, Oct 05, 2012 at 11:31:03PM -0000, Anatolij Gustschin 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] 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]
Signed-off-by: Anatolij Gustschin agust@denx.de Cc: Charles Manning cdhmanning@gmail.com Tested-by: Albert ARIBAUD albert.u.boot@aribaud.net
Applied to u-boot/master, thanks!
participants (5)
-
Albert ARIBAUD
-
Anatolij Gustschin
-
R Sricharan
-
Scott Wood
-
Tom Rini