]> err.no Git - linux-2.6/commit
endianness annotations and fixes for olympic
authorAl Viro <viro@ftp.linux.org.uk>
Sun, 16 Dec 2007 20:53:36 +0000 (20:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 28 Jan 2008 23:07:08 +0000 (15:07 -0800)
commitb710b43c306650261c01ad08100791afec78a7db
tree656c18e9d3736b84b56c1f91303c28207c424951
parentf5a3ea6f966700ae82504202fdd827f2d3c79e66
endianness annotations and fixes for olympic

* missing braces in !readl(...) & ...
* trivial endianness annotations
* in olympic_arb_cmd() the loop collecting fragments of
packet is b0rken on big-endian - we have
(next_ptr && (buf_ptr=olympic_priv->olympic_lap + ntohs(next_ptr)))
as condition and it should have swab16(), not ntohs() - it's host-endian
byteswapped, not big-endian.  So if we get more than one fragment on big-endian
host, we get screwed.
This ntohs() got missed back when the rest of those had been switched
to swab16() in 2.4.0-test2-pre1 - at a guess, nobody had hit fragmented
packets during the testing of PPC fixes.

PS: Ken Aaker cc'd on assumption that he is the same guy who'd done the
original set of PPC fixes in olympic

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/net/tokenring/olympic.c
drivers/net/tokenring/olympic.h