diff options
author | David Miller <davem@davemloft.net> | 2008-07-24 23:38:31 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 09:28:09 -0700 |
commit | 3d6f4a20cc287a8980c6186624834cf10a70752b (patch) | |
tree | 851e6f595fe7a03ca626287be24961517cf47709 /drivers | |
parent | 43de804df8d6002059bf4af4522fa9273a19b8aa (diff) | |
download | op-kernel-dev-3d6f4a20cc287a8980c6186624834cf10a70752b.zip op-kernel-dev-3d6f4a20cc287a8980c6186624834cf10a70752b.tar.gz |
endian: Always evaluate arguments.
Changeset 7fa897b91a3ea0f16c2873b869d7a0eef05acff4 ("ide: trivial sparse
annotations") created an IDE bootup regression on big-endian systems.
In drivers/ide/ide-iops.c, function ide_fixstring() we now have the
loop:
for (p = end ; p != s;)
be16_to_cpus((u16 *)(p -= 2));
which will never terminate on big-endian because in such
a configuration be16_to_cpus() evaluates to "do { } while (0)"
Therefore, always evaluate the arguments to nop endian transformation
operations.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
0 files changed, 0 insertions, 0 deletions