Fix warnings in yaffs
authorSimon Glass <sjg@chromium.org>
Tue, 15 Nov 2011 18:17:07 +0000 (18:17 +0000)
committerWolfgang Denk <wd@denx.de>
Wed, 16 Nov 2011 20:39:17 +0000 (21:39 +0100)
Sorry if this is already fixed somewhere - I could not find it.

This fixes the warnings show below.

yaffs_tagscompat.c: In function 'yaffs_TagsCompatabilityReadChunkWithTagsFromNAND':
yaffs_tagscompat.c:151: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:150: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:149: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:148: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:147: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:146: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:145: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:144: warning: dereferencing pointer 'tu' does break strict-aliasing rules
yaffs_tagscompat.c:141: note: initialized from here

Signed-off-by: Simon Glass <sjg@chromium.org>
fs/yaffs2/yaffs_tagscompat.c

index 70a8a8c72a407eb6c7e9892d23b8c212fe0b24bd..e872323b2f400b84b88aeceaa2ec6d466ba130da 100644 (file)
@@ -136,9 +136,8 @@ static void yaffs_LoadTagsIntoSpare(yaffs_Spare * sparePtr,
 }
 
 static void yaffs_GetTagsFromSpare(yaffs_Device * dev, yaffs_Spare * sparePtr,
-                                  yaffs_Tags * tagsPtr)
+                                  yaffs_TagsUnion *tu)
 {
-       yaffs_TagsUnion *tu = (yaffs_TagsUnion *) tagsPtr;
        int result;
 
        tu->asBytes[0] = sparePtr->tagByte0;
@@ -150,7 +149,7 @@ static void yaffs_GetTagsFromSpare(yaffs_Device * dev, yaffs_Spare * sparePtr,
        tu->asBytes[6] = sparePtr->tagByte6;
        tu->asBytes[7] = sparePtr->tagByte7;
 
-       result = yaffs_CheckECCOnTags(tagsPtr);
+       result = yaffs_CheckECCOnTags(&tu->asTags);
        if (result > 0) {
                dev->tagsEccFixed++;
        } else if (result < 0) {
@@ -437,7 +436,7 @@ int yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(yaffs_Device * dev,
 {
 
        yaffs_Spare spare;
-       yaffs_Tags tags;
+       yaffs_TagsUnion tags;
        yaffs_ECCResult eccResult;
 
        static yaffs_Spare spareFF;
@@ -467,10 +466,10 @@ int yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(yaffs_Device * dev,
                        if (eTags->chunkUsed) {
                                yaffs_GetTagsFromSpare(dev, &spare, &tags);
 
-                               eTags->objectId = tags.objectId;
-                               eTags->chunkId = tags.chunkId;
-                               eTags->byteCount = tags.byteCount;
-                               eTags->serialNumber = tags.serialNumber;
+                               eTags->objectId = tags.asTags.objectId;
+                               eTags->chunkId = tags.asTags.chunkId;
+                               eTags->byteCount = tags.asTags.byteCount;
+                               eTags->serialNumber = tags.asTags.serialNumber;
                        }
                }