summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2007-12-21 06:20:43 +0000
committerJeff Garzik <jeff@garzik.org>2007-12-22 22:53:05 -0500
commitb46281f9c5d6ab7b6e412e83f8c62cecf4ebbdfd (patch)
tree036d3829622cb10bbcc467e56598d70c1ae565de
parentfdcfd77c813ef7997a60856812805f4cfbeb6222 (diff)
downloadop-kernel-dev-b46281f9c5d6ab7b6e412e83f8c62cecf4ebbdfd.zip
op-kernel-dev-b46281f9c5d6ab7b6e412e83f8c62cecf4ebbdfd.tar.gz
typhoon: set_settings broken on big-endian
One cpu_to_le16() too many when passing argument for TYPHOON_CMD_XCVR_SELECT; we end up passing host-endian while the hardware expects little-endian. The other place doing that (typhoon_start_runtime()) does the right thing, so the card will recover at the next ifconfig up/tx timeout/resume, which limits the amount of mess, but still, WTF? Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r--drivers/net/typhoon.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c
index 497c584..16d443b 100644
--- a/drivers/net/typhoon.c
+++ b/drivers/net/typhoon.c
@@ -1157,7 +1157,7 @@ typhoon_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
}
INIT_COMMAND_NO_RESPONSE(&xp_cmd, TYPHOON_CMD_XCVR_SELECT);
- xp_cmd.parm1 = cpu_to_le16(xcvr);
+ xp_cmd.parm1 = xcvr;
err = typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL);
if(err < 0)
goto out;
OpenPOWER on IntegriCloud