Skip to content
  • Jia-Ju Bai's avatar
    usb: storage: Replace mdelay with msleep in init_freecom · 2a3dae10
    Jia-Ju Bai authored
    
    
    init_freecom() is never called in atomic context.
    
    init_freecom() is set as ".initFunction" through UNUSUAL_DEV().
    And ->initFunction() is only called by usb_stor_acquire_resources(),
    which is only called by usb_stor_probe2().
    usb_stor_probe2() is called by *_probe() functions (like alauda_probe())
    for each USB driver.
    *_probe() functions are set ".probe" in struct usb_driver.
    These functions are not called in atomic context.
    
    Despite never getting called from atomic context, init_freecom()
    calls mdelay() to busily wait.
    This is not necessary and can be replaced with msleep() to
    avoid busy waiting.
    
    This is found by a static analysis tool named DCNS written by myself.
    And I also manually check it.
    
    Signed-off-by: default avatarJia-Ju Bai <baijiaju1990@gmail.com>
    Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    2a3dae10