of_get_phy_mode may fail and return a negative error code; the fix checks the return value of of_get_phy_mode and goes to out_release if it fails. Signed-off-by: Kangjie Lu <kjlu@xxxxxxx> --- drivers/net/ethernet/renesas/ravb_main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/ethernet/renesas/ravb_main.c index d28c8f9ca55b..791b6842eb12 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1996,6 +1996,7 @@ static int ravb_probe(struct platform_device *pdev) int error, irq, q; struct resource *res; int i; + int ret; if (!np) { dev_err(&pdev->dev, @@ -2054,7 +2055,12 @@ static int ravb_probe(struct platform_device *pdev) spin_lock_init(&priv->lock); INIT_WORK(&priv->work, ravb_tx_timeout_work); - priv->phy_interface = of_get_phy_mode(np); + ret = of_get_phy_mode(np); + if (ret < 0) { + error = -EINVAL; + goto out_release; + } + priv->phy_interface = ret; priv->no_avb_link = of_property_read_bool(np, "renesas,no-ether-link"); priv->avb_link_active_low = -- 2.17.1