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: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Fixes: b38dd98ff8
("net: stmmac: Add Toshiba Visconti SoCs glue driver")
Signed-off-by: Yuji Ishikawa <yuji2.ishikawa@toshiba.co.jp>
Reviewed-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@toshiba.co.jp>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7674b7b559
commit
928d6fe996
|
@ -49,13 +49,15 @@ struct visconti_eth {
|
|||
void __iomem *reg;
|
||||
u32 phy_intf_sel;
|
||||
struct clk *phy_ref_clk;
|
||||
struct device *dev;
|
||||
spinlock_t lock; /* lock to protect register update */
|
||||
};
|
||||
|
||||
static void visconti_eth_fix_mac_speed(void *priv, unsigned int speed)
|
||||
{
|
||||
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;
|
||||
|
||||
spin_lock_irqsave(&dwmac->lock, flags);
|
||||
|
@ -85,7 +87,9 @@ static void visconti_eth_fix_mac_speed(void *priv, unsigned int speed)
|
|||
break;
|
||||
default:
|
||||
/* 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);
|
||||
|
@ -229,6 +233,7 @@ static int visconti_eth_dwmac_probe(struct platform_device *pdev)
|
|||
|
||||
spin_lock_init(&dwmac->lock);
|
||||
dwmac->reg = stmmac_res.addr;
|
||||
dwmac->dev = &pdev->dev;
|
||||
plat_dat->bsp_priv = dwmac;
|
||||
plat_dat->fix_mac_speed = visconti_eth_fix_mac_speed;
|
||||
|
||||
|
|
Loading…
Reference in New Issue