Subject: Re: [PATCH] Gigabit Ethernet driver of Topcliff PCH

From: Stephen Hemminger <[email-masked]>
Date: Thu, 26 Aug 2010 08:40:22 -0700

On Thu, 26 Aug 2010 18:56:55 +0900
Masayuki Ohtake <[email-masked]> 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;

--