On 27/02/19 11:17 AM, Keerthy wrote:
On 22/02/19 12:08 AM, Joe Hershberger wrote:
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?
I am trying to implement pru based ethernet driver(multiple instances)
with cpsw driver on top on am654-evm. I observed that even though i had
not started
a particular instance of my pru based device stop was getting called and
it was crashing right at the end.
Joe,
I am yet to implement a test case for this. Can this patch be applied
independently?
Regards,
Keerthy
/* 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