On Wed, Feb 20, 2019 at 6:33 AM Keerthy <j-keer...@ti.com> wrote: > > Currently stop is being called unconditionally without even > checking if start is called. In case of multiple instances eth > being present many devices might just be initialized without > a start call in such cases stop might lead unpredictable behaviors > including aborts and crashes. Hence add a check before calling stop. > > Signed-off-by: Keerthy <j-keer...@ti.com> > --- > net/eth-uclass.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/eth-uclass.c b/net/eth-uclass.c > index 2ef20df192..26f7e0b8cd 100644 > --- a/net/eth-uclass.c > +++ b/net/eth-uclass.c > @@ -531,7 +531,8 @@ static int eth_pre_remove(struct udevice *dev) > { > struct eth_pdata *pdata = dev->platdata; > > - eth_get_ops(dev)->stop(dev); > + if (eth_is_active(dev)) > + eth_get_ops(dev)->stop(dev);
This seems reasonable... What was the case that provoked an issue? Which driver was having trouble? > > /* clear the MAC address */ > memset(pdata->enetaddr, 0, ARP_HLEN); > -- > 2.17.1 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > https://lists.denx.de/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot