Commit 928d6fe9 authored by Yuji Ishikawa's avatar Yuji Ishikawa Committed by David S. Miller

net: stmmac: dwmac-visconti: No change to ETHER_CLOCK_SEL for unexpected speed request.

Variable clk_sel_val is not initialized in the default case of the first switch statement.
In that case, the function should return immediately without any changes to the hardware.
Reported-by: default avatarkernel test robot <lkp@intel.com>
Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Fixes: b38dd98f ("net: stmmac: Add Toshiba Visconti SoCs glue driver")
Signed-off-by: default avatarYuji Ishikawa <yuji2.ishikawa@toshiba.co.jp>
Reviewed-by: default avatarNobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7674b7b5
...@@ -49,13 +49,15 @@ struct visconti_eth { ...@@ -49,13 +49,15 @@ struct visconti_eth {
void __iomem *reg; void __iomem *reg;
u32 phy_intf_sel; u32 phy_intf_sel;
struct clk *phy_ref_clk; struct clk *phy_ref_clk;
struct device *dev;
spinlock_t lock; /* lock to protect register update */ spinlock_t lock; /* lock to protect register update */
}; };
static void visconti_eth_fix_mac_speed(void *priv, unsigned int speed) static void visconti_eth_fix_mac_speed(void *priv, unsigned int speed)
{ {
struct visconti_eth *dwmac = priv; struct visconti_eth *dwmac = priv;
unsigned int val, clk_sel_val; struct net_device *netdev = dev_get_drvdata(dwmac->dev);
unsigned int val, clk_sel_val = 0;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&dwmac->lock, flags); spin_lock_irqsave(&dwmac->lock, flags);
...@@ -85,7 +87,9 @@ static void visconti_eth_fix_mac_speed(void *priv, unsigned int speed) ...@@ -85,7 +87,9 @@ static void visconti_eth_fix_mac_speed(void *priv, unsigned int speed)
break; break;
default: default:
/* No bit control */ /* No bit control */
break; netdev_err(netdev, "Unsupported speed request (%d)", speed);
spin_unlock_irqrestore(&dwmac->lock, flags);
return;
} }
writel(val, dwmac->reg + MAC_CTRL_REG); writel(val, dwmac->reg + MAC_CTRL_REG);
...@@ -229,6 +233,7 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev) ...@@ -229,6 +233,7 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev)
spin_lock_init(&dwmac->lock); spin_lock_init(&dwmac->lock);
dwmac->reg = stmmac_res.addr; dwmac->reg = stmmac_res.addr;
dwmac->dev = &pdev->dev;
plat_dat->bsp_priv = dwmac; plat_dat->bsp_priv = dwmac;
plat_dat->fix_mac_speed = visconti_eth_fix_mac_speed; plat_dat->fix_mac_speed = visconti_eth_fix_mac_speed;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment