• Pavel Fedin's avatar
    net: smsc911x: Fix crash if loopback test fails · b43c142f
    Pavel Fedin authored
    On certain hardware in certain situations loopback test fails and the
    driver gets removed. During mdiobus_unregister() instance of PHY driver
    gets disposed. But by this time it has already been started using
    phy_connect_direct().
    
    PHY driver uses DELAYED_WORK in order to maintain its state. Attempting
    to dispose the driver without calling phy_disconnect() causes deallocation
    of DELAYED_WORK being active. This shortly causes a bad crash in timer
    code.
    
    The problem can be discovered by enabling CONFIG_DEBUG_OBJECTS_TIMERS and
    CONFIG_DEBUG_OBJECTS_FREE
    Signed-off-by: default avatarPavel Fedin <p.fedin@samsung.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b43c142f
smsc911x.c 70.1 KB