On Wed, Feb 07, 2007 at 03:05:39PM -0600, Dave Kleikamp wrote: > On Wed, 2007-02-07 at 13:39 -0700, Andreas Dilger wrote: > > You are right - this works fine on little endian systems, but fails on > > big endian systems where you will get the other half of the word. > > > > This has been a bug in several places already, and I wonder if the > > le*_to_cpu() and cpu_to_le*() macros shouldn't do some type checking > > instead of just casting the variable to the specified type? > > I think that sparse will catch this. To get the endian checks you need > to do something like this: > > make C=2 CF="-D__CHECK_ENDIAN__"' Indeed: CHECK fs/ext3/super.c fs/ext3/super.c:1787:8: warning: cast to restricted type fs/ext3/super.c:1789:6: warning: cast to restricted type fs/ext3/super.c:1791:8: warning: cast to restricted type fs/ext3/super.c:1793:6: warning: cast to restricted type Thanks, Johann - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html