Re: [PATCH net-next] netxen: explicity handle pause autoneg parameter
flat view
From: Flavio Leitner <hidden>
Date: 2012-10-27 00:37:22
On Fri, 26 Oct 2012 22:10:42 +0100 Ben Hutchings [off-list ref] wrote:
On Fri, 2012-10-26 at 15:17 -0200, Flavio Leitner wrote:quoted
The hardware doesn't support controlling pause frames autoneg, so report that back correctly to userspace. Signed-off-by: Flavio Leitner <redacted> --- drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c | 6 ++++++ 1 file changed, 6 insertions(+) I don't have the hardware handy to test this, so I appreciate if someone could do it.diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c index 10468e7..b4b46f9 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_ethtool.c@@ -488,6 +488,8 @@ netxen_nic_get_pauseparam(struct net_device *dev, __u32 val; int port = adapter->physical_port; + pause->autoneg = AUTONEG_DISABLE;AUTONEG_DISABLE is really meant for use in ethtool_cmd::autoneg, not ethtool_pauseparam::autoneg. (Though they are both really booleans so this works in practice.)
I saw few places using it. I will change to 0 instead, though as the meaning for both use-cases are the same (auto negotiation being enabled or disabled) and probably won't change, maybe we could just share.
quoted
if (adapter->ahw.port_type == NETXEN_NIC_GBE) { if ((port < 0) || (port >= NETXEN_NIU_MAX_GBE_PORTS)) return;@@ -532,6 +534,10 @@ netxen_nic_set_pauseparam(struct net_device *dev, struct netxen_adapter *adapter = netdev_priv(dev); __u32 val; int port = adapter->physical_port; + + if (pause->autoneg) + return -EOPNOTSUPP;Should be -EINVAL; the operation (ETHTOOL_SPAUSEPARAM) is supported but not these particular arguments.
agree, fixing on v2. thanks, fbl