auxdisplay: charlcd: delete mdelay in long_sleep
authorJia-Ju Bai <baijiaju1990@gmail.com>
Fri, 26 Jan 2018 15:19:15 +0000 (23:19 +0800)
committerMiguel Ojeda <miguel.ojeda.sandonis@gmail.com>
Wed, 1 Aug 2018 16:55:36 +0000 (18:55 +0200)
The function long_sleep() calls mdelay() when in an interrupt handler.
But only charlcd_clear_display() and charlcd_init_display calls
long_sleep(), and my tool finds that the two functions
are never called in an interrupt handler.
Thus mdelay() and in_interrupt() are not necessary.

This is found by a static analysis tool named DCNS written by myself.

Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
Acked-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
drivers/auxdisplay/charlcd.c

index 8673fc2b9eb8705b01711185a9f5aec63d63c846..81c22d20d9d9c568ffc2f6c191a407baee330719 100644 (file)
@@ -99,10 +99,7 @@ static atomic_t charlcd_available = ATOMIC_INIT(1);
 /* sleeps that many milliseconds with a reschedule */
 static void long_sleep(int ms)
 {
 /* sleeps that many milliseconds with a reschedule */
 static void long_sleep(int ms)
 {
-       if (in_interrupt())
-               mdelay(ms);
-       else
-               schedule_timeout_interruptible(msecs_to_jiffies(ms));
+       schedule_timeout_interruptible(msecs_to_jiffies(ms));
 }
 
 /* turn the backlight on or off */
 }
 
 /* turn the backlight on or off */