• Roland Dreier's avatar
    Revert "driver core: synchronize device shutdown" · aa0689b3
    Roland Dreier authored
    This reverts commit 401097ea.  The
    original changelog said:
    
        A patch series to make .shutdown execute asynchronously.  Some drivers's
        shutdown can take a lot of time.  The patches can help save some shutdown
        time.  The patches use Arjan's async API.
    
        This patch:
    
        synchronize all tasks submitted by .shutdown
    
    However, I'm not able to find any evidence that any other patches from
    this series were applied, nor am I able to find any async tasks that are
    scheduled in a .shutdown context.
    
    On the other hand, we see occasional hangs on shutdown that appear to be
    caused by the async_synchronize_full() in device_shutdown() waiting
    forever for the async probing in sd if a SCSI disk shows up at just the
    wrong time — the system starts the probe, but begins shutting down and
    tears down too much of the SCSI driver to finish the probe.
    
    If we had any async shutdown tasks, I guess the right fix would be to
    create a "shutdown" async domain and have device_shutdown() only wait
    for that domain.  But since there apparently are no async shutdown
    tasks, we can just revert the waiting.
    Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    aa0689b3
core.c 54.1 KB