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>
This commit is contained in:
parent
fdcfd77c81
commit
b46281f9c5
|
@ -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);
|
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);
|
err = typhoon_issue_command(tp, 1, &xp_cmd, 0, NULL);
|
||||||
if(err < 0)
|
if(err < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
Loading…
Reference in New Issue