On 02/11/2016 04:39 PM, Vivien Didelot wrote: > Hi Sascha, > > Sascha Hauer <s.ha...@pengutronix.de> writes: > >> The phy has not been initialized, disconnecting it in the error >> path results in a NULL pointer exception. Drop the phy_disconnect >> from the error path. >> >> Signed-off-by: Sascha Hauer <s.ha...@pengutronix.de> >> --- >> net/dsa/slave.c | 1 - >> 1 file changed, 1 deletion(-) >> >> diff --git a/net/dsa/slave.c b/net/dsa/slave.c >> index 40b9ca7..91e3b2f 100644 >> --- a/net/dsa/slave.c >> +++ b/net/dsa/slave.c >> @@ -1194,7 +1194,6 @@ int dsa_slave_create(struct dsa_switch *ds, struct >> device *parent, >> if (ret) { >> netdev_err(master, "error %d registering interface %s\n", >> ret, slave_dev->name); >> - phy_disconnect(p->phy); >> ds->ports[port] = NULL; >> free_netdev(slave_dev); >> return ret; > > I'm adding Neil in the loop, since he did some work similar to this, if > I'm not mistaken. > > Thanks, > -v >
He's right, the phy is not yet created in this error path. Acked-by: Neil Armstrong <narmstr...@baylibre.com> Thanks Vivien, Neil