diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2007-12-21 01:20:43 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-12-22 22:53:05 -0500 |
commit | b46281f9c5d6ab7b6e412e83f8c62cecf4ebbdfd (patch) | |
tree | 036d3829622cb10bbcc467e56598d70c1ae565de /drivers/net/typhoon.c | |
parent | fdcfd77c813ef7997a60856812805f4cfbeb6222 (diff) |
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>
Diffstat (limited to 'drivers/net/typhoon.c')
-rw-r--r-- | drivers/net/typhoon.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/typhoon.c b/drivers/net/typhoon.c index 497c5846ded7..16d443b71264 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) | |||
1157 | } | 1157 | } |
1158 | 1158 | ||
1159 | INIT_COMMAND_NO_RESPONSE(&xp_cmd, TYPHOON_CMD_XCVR_SELECT); | 1159 | INIT_COMMAND_NO_RESPONSE(&xp_cmd, TYPHOON_CMD_XCVR_SELECT); |
1160 | xp_cmd.parm1 = cpu_to_le16(xcvr); | 1160 | xp_cmd.parm1 = xcvr; |
1161 | err = typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL); | 1161 | err = typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL); |
1162 | if(err < 0) | 1162 | if(err < 0) |
1163 | goto out; | 1163 | goto out; |