Messages in this thread Patch in this message | | | From | Jia-Ju Bai <> | Subject | [PATCH] auxdisplay: charlcd: delete mdelay in long_sleep | Date | Fri, 26 Jan 2018 23:19:15 +0800 |
| |
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> --- drivers/auxdisplay/charlcd.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/auxdisplay/charlcd.c b/drivers/auxdisplay/charlcd.c index 642afd8..9e84795 100644 --- a/drivers/auxdisplay/charlcd.c +++ b/drivers/auxdisplay/charlcd.c @@ -102,10 +102,7 @@ struct charlcd_priv { /* 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 */ -- 1.7.9.5
| |