usb: usleep_range is preferred over udelay where wakeup is flexible
authorSunny Kumar <sunny.kumar.roy@gmail.com>
Tue, 7 Jul 2015 06:57:03 +0000 (12:27 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Jul 2015 22:45:04 +0000 (15:45 -0700)
According to Documentation/timers/timers-howto.txt"
udelay() is only called once from a place where sleeping is allowed.
We can replace it with a call to usleep_range()
with a reasonable upper limit.

Signed-off-by: Sunny Kumar <sunny.kumar.roy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/storage/transport.c

index 540add24a12ffa428bda0e7a0db07650ecd29eab..5e67f63b2e462ffc68b5acc1a9f8557828e44489 100644 (file)
@@ -1111,7 +1111,7 @@ int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)
         * command phase and the data phase.  Some devices need a little
         * more than that, probably because of clock rate inaccuracies. */
        if (unlikely(us->fflags & US_FL_GO_SLOW))
-               udelay(125);
+               usleep_range(125, 150);
 
        if (transfer_length) {
                unsigned int pipe = srb->sc_data_direction == DMA_FROM_DEVICE ?