• Tejun Heo's avatar
    usb: don't use PREPARE_DELAYED_WORK · 77fa83cf
    Tejun Heo authored
    PREPARE_[DELAYED_]WORK() are being phased out.  They have few users
    and a nasty surprise in terms of reentrancy guarantee as workqueue
    considers work items to be different if they don't have the same work
    function.
    
    usb_hub->init_work is multiplexed with multiple work functions;
    however, the work item is never queued while in-flight, so we can
    simply use INIT_DELAYED_WORK() before each queueing.
    
    It would probably be best to route this with other related updates
    through the workqueue tree.
    
    Lightly tested.
    
    v2: Greg and Alan confirm that the work item is never queued while
        in-flight.  Simply use INIT_DELAYED_WORK().
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Alan Stern <stern@rowland.harvard.edu>
    Cc: linux-usb@vger.kernel.org
    77fa83cf
hub.c 156 KB