Re: [PATCH] Gigabit Ethernet driver of Topcliff PCH

Stephen Hemminger
2010-08-26T15:40:26Z

On Thu, 26 Aug 2010 18:56:55 +0900
Masayuki Ohtake <masa-korg@dsn.okisemi.com> wrote:

> +static int pch_gbe_get_settings(struct net_device *netdev,
> + struct ethtool_cmd *ecmd)
> +{
> + struct pch_gbe_adapter *adapter = netdev_priv(netdev);
> + int ret;
> +
> + PCH_GBE_DEBUG("ethtool: %s\n", __func__);
> +
> + ret = mii_ethtool_gset(&adapter->mii, ecmd);
> + ecmd->supported &= (u32) (~SUPPORTED_TP);
> + ecmd->supported &= (u32) (~SUPPORTED_1000baseT_Half);
> + ecmd->advertising &= (u32) (~ADVERTISED_TP);
> + ecmd->advertising &= (u32) (~ADVERTISED_1000baseT_Half);
> +
> + if (netif_carrier_ok(adapter->netdev)) {
> + ;
> + } else {
> + ecmd->speed = 0xFFFF;
> + ecmd->duplex = 0xFF;
> + }
> + return ret;
> +}

No need for cast to u32 on the masking:
ecmd->supported &= ~(SUPPORTED_TP | SUPPORTED_1000baseT_Half);
ecmd->advertising &= ~(ADVERTISED_TP | ADVERTISED_1000baseT_Half);

Awkward use of if, and don't set other bits in duplex
if (!netif_carrier_ok(adapter->netdev))
ecmd->speed = -1;

--