rtc: r7301: Fix a possible sleep-in-atomic bug in rtc7301_read_time
The driver may sleep under a spinlock. The function call path is: rtc7301_read_time (acquire the spinlock) rtc7301_wait_while_busy usleep_range --> may sleep To fix it, usleep_range is replaced with udelay. This bug is found by my static analysis tool(DSAC) and checked by my code review. Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
This commit is contained in:
Родитель
2da6877f0e
Коммит
cd8c0bb2bd
|
@ -95,7 +95,7 @@ static int rtc7301_wait_while_busy(struct rtc7301_priv *priv)
|
|||
if (!(val & RTC7301_CONTROL_BUSY))
|
||||
return 0;
|
||||
|
||||
usleep_range(200, 300);
|
||||
udelay(300);
|
||||
}
|
||||
|
||||
return -ETIMEDOUT;
|
||||
|
|
Загрузка…
Ссылка в новой задаче