Re: [PATCH] rtc: rtc-omap: Replace mdelay() with msleep() in omap_rtc_power_off()

From: Jia-Ju Bai
Date: Tue Aug 28 2018 - 05:06:07 EST




On 2018/8/28 16:49, Johan Hovold wrote:
On Mon, Aug 27, 2018 at 10:55:17PM +0200, Alexandre Belloni wrote:
Hi,

On 30/07/2018 21:53:14+0800, Jia-Ju Bai wrote:
omap_rtc_power_off() is never called in atomic context.
It calls mdelay() to busily wait, which is not necessary.
mdelay() can be replaced with msleep().

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

Signed-off-by: Jia-Ju Bai <baijiaju1990@xxxxxxxxx>
---
drivers/rtc/rtc-omap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index 39086398833e..ef3d09525d0f 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -476,7 +476,7 @@ static void omap_rtc_power_off(void)
* power off the system. Add a 500 ms margin for external latencies
* (e.g. debounce circuits).
*/
- mdelay(2500);
+ msleep(2500);
I'm not sure about that one because this is a poweroff function so it
doesn't really make sense to sleep versus busy waiting (all the drivers
in power/reset use mdelay())
This power-off handler is called with interrupts disabled (as mentioned
in the function header) and must not sleep.

Thanks for your reply :)

I check the code again, and find that you are right.
Sorry for my incorrect report.


Best wishes,
Jia-Ju Bai