• Mark Brown's avatar
    driver core: Move deferred devices to the end of dpm_list before probing · 8153584e
    Mark Brown authored
    When deferred probe was originally added the idea was that devices which
    defer their probes would move themselves to the end of dpm_list in order
    to try to keep the assumptions that we're making about the list being in
    roughly the order things should be suspended correct. However this hasn't
    been what's been happening and doing it requires a lot of duplicated code
    to do the moves.
    
    Instead take a simple, brute force solution and have the deferred probe
    code push devices to the end of dpm_list before it retries the probe. This
    does mean we lock the dpm_list a bit more often but it's very simple and
    the code shouldn't be a fast path. We do the move with the deferred mutex
    dropped since doing things with fewer locks held simultaneously seems like
    a good idea.
    
    This approach was most recently suggested by Grant Likely.
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    Acked-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
    Cc: Grant Likely <grant.likely@secretlab.ca>,
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8153584e
dd.c 15.6 KB