stmmac: fix a bug while checking the HW cap reg (v2)
authorGiuseppe CAVALLARO <peppe.cavallaro@st.com>
Wed, 26 Oct 2011 19:43:07 +0000 (19:43 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 Oct 2011 03:17:11 +0000 (23:17 -0400)
The patch fixes a bug while checking the HW cap reg
on old MAC10/100 where this feature is not available.

Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c

index aeaa15b..fcdd5a2 100644 (file)
@@ -812,9 +812,10 @@ static u32 stmmac_get_synopsys_id(struct stmmac_priv *priv)
  */
 static int stmmac_get_hw_features(struct stmmac_priv *priv)
 {
-       u32 hw_cap = priv->hw->dma->get_hw_feature(priv->ioaddr);
+       u32 hw_cap = 0;
+       if (priv->hw->dma->get_hw_feature) {
+               hw_cap = priv->hw->dma->get_hw_feature(priv->ioaddr);
 
-       if (likely(hw_cap)) {
                priv->dma_cap.mbps_10_100 = (hw_cap & DMA_HW_FEAT_MIISEL);
                priv->dma_cap.mbps_1000 = (hw_cap & DMA_HW_FEAT_GMIISEL) >> 1;
                priv->dma_cap.half_duplex = (hw_cap & DMA_HW_FEAT_HDSEL) >> 2;