• Lennert Buytenhek's avatar
    phylib: fix premature freeing of struct mii_bus · 3e44017b
    Lennert Buytenhek authored
    Commit 46abc021 ("phylib: give mdio
    buses a device tree presence") added a call to device_unregister() in
    a situation where the caller did not intend for the device to be
    freed yet, but apart from just unregistering the device from the
    system, device_unregister() does an additional put_device() that is
    intended to free it.
    
    The right function to use in this situation is device_del(), which
    unregisters the device from the system like device_unregister() does,
    but without dropping the reference count an additional time.
    
    Bug report from Bryan Wu <cooloney@kernel.org>.
    Signed-off-by: default avatarLennert Buytenhek <buytenh@marvell.com>
    Tested-by: default avatarBryan Wu <cooloney@kernel.org>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    3e44017b
mdio_bus.c 7.2 KB