Re: [PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-02-12 Thread Miguel Ojeda
On Mon, Jan 29, 2018 at 7:50 AM, Willy Tarreau  wrote:
> Hi,
>
> On Fri, Jan 26, 2018 at 11:19:15PM +0800, Jia-Ju Bai wrote:
>> 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.
>
> Looks good. This code is extremely old (started in 2.2) so I'm not
> surprised at all that after many changes such parts are not used
> anymore.

By the way, maybe msleep_interruptible() should be used instead?
(since I guess you want a minimum time here, no?). It would also take
care of the jiffies to ms conversion, so the whole long_jump could be
removed.

>
> Acked-by: Willy Tarreau 
>
> Willy


Re: [PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-02-12 Thread Miguel Ojeda
On Mon, Jan 29, 2018 at 7:50 AM, Willy Tarreau  wrote:
> Hi,
>
> On Fri, Jan 26, 2018 at 11:19:15PM +0800, Jia-Ju Bai wrote:
>> 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.
>
> Looks good. This code is extremely old (started in 2.2) so I'm not
> surprised at all that after many changes such parts are not used
> anymore.

By the way, maybe msleep_interruptible() should be used instead?
(since I guess you want a minimum time here, no?). It would also take
care of the jiffies to ms conversion, so the whole long_jump could be
removed.

>
> Acked-by: Willy Tarreau 
>
> Willy


Re: [PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-02-12 Thread Miguel Ojeda
On Mon, Jan 29, 2018 at 7:50 AM, Willy Tarreau  wrote:
> Hi,
>
> On Fri, Jan 26, 2018 at 11:19:15PM +0800, Jia-Ju Bai wrote:
>> 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.
>
> Looks good. This code is extremely old (started in 2.2) so I'm not
> surprised at all that after many changes such parts are not used
> anymore.
>
> Acked-by: Willy Tarreau 

Thanks for the patch and the ack, putting it in the queue.

Miguel

>
> Willy


Re: [PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-02-12 Thread Miguel Ojeda
On Mon, Jan 29, 2018 at 7:50 AM, Willy Tarreau  wrote:
> Hi,
>
> On Fri, Jan 26, 2018 at 11:19:15PM +0800, Jia-Ju Bai wrote:
>> 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.
>
> Looks good. This code is extremely old (started in 2.2) so I'm not
> surprised at all that after many changes such parts are not used
> anymore.
>
> Acked-by: Willy Tarreau 

Thanks for the patch and the ack, putting it in the queue.

Miguel

>
> Willy


Re: [PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-01-28 Thread Willy Tarreau
Hi,

On Fri, Jan 26, 2018 at 11:19:15PM +0800, Jia-Ju Bai wrote:
> 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.

Looks good. This code is extremely old (started in 2.2) so I'm not
surprised at all that after many changes such parts are not used
anymore.

Acked-by: Willy Tarreau 

Willy


Re: [PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-01-28 Thread Willy Tarreau
Hi,

On Fri, Jan 26, 2018 at 11:19:15PM +0800, Jia-Ju Bai wrote:
> 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.

Looks good. This code is extremely old (started in 2.2) so I'm not
surprised at all that after many changes such parts are not used
anymore.

Acked-by: Willy Tarreau 

Willy


[PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-01-26 Thread Jia-Ju Bai
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 
---
 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



[PATCH] auxdisplay: charlcd: delete mdelay in long_sleep

2018-01-26 Thread Jia-Ju Bai
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 
---
 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