On 06/13/2017 08:47 AM, Mason wrote: > On 13/06/2017 17:36, Florian Fainelli wrote: > >> On 06/13/2017 08:07 AM, Mason wrote: >> >>> I did note something that seems important. >>> If I toggle the link state in software, then connectivity breaks. >>> If I unplug the ethernet cable, and replug, connectivity remains. >> >> What does that actually mean? If you disconnect the cable a link state >> should be notified and another link state should be notified, even if >> that happens faster than the PHYLIB polling time (1s). > > Sorry for being unclear. > > If I unplug/replug the cable, ping still works afterward. > (Packet RX appears to be *not* wedged) > > If I toggle the link state in SW (set link down/set link up), > I can no longer ping afterward. > (Packet RX appears to be wedged, so ARP replies are not seen) > > Maybe the two experiments are too unrelated to consider > the different results relevant in any way?
No, they are not, this really tells you that whatever your ndo_open() and ndo_stop() functions do, they are currently broken with your particular HW. I have seen numerous problems on some of our older platforms using bcmgenet where the PHY needs to be reset *before* any MAC activity occurs, and any MAC activity even qualifies as a reset of the MAC itself, we can perform a PHY reset there because the PHY is internal, that may not be an option, and your HW is different anyway. -- Florian