On Wed, Dec 07, 2016 at 05:56:06PM +0100, Volodymyr Bendiuga wrote: > Since there can be multiple dsa switches stacked together but > not all of devicetree nodes available at the time of calling > dsa_dst_parse(), EPROBE_DEFER can be returned by it. When this > happens, only the last dsa switch has to be deleted by > dsa_dst_del_ds(), but not the whole list, because next time linux > cames back to this function it will try to add only the last dsa > switch which returned EPROBE_DEFER. > > Signed-off-by: Volodymyr Bendiuga <volodymyr.bendi...@westermo.se> > --- > net/dsa/dsa2.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c > index 7924c92..0a5ddaa 100644 > --- a/net/dsa/dsa2.c > +++ b/net/dsa/dsa2.c > @@ -673,8 +673,14 @@ static int _dsa_register_switch(struct dsa_switch *ds, > struct device_node *np) > } > > err = dsa_dst_parse(dst); > - if (err) > + if (err){ > + if (-EPROBE_DEFER == err) {
Hi Volodymyr Please can you turn this around, err == -EPROBE_DEFER, to make it consistent with all the other network code. With that change Reviewed-by: Andrew Lunn <and...@lunn.ch> Andrew