* [PATCH] delay: Fix ndelay() spuriously treated as udelay()
@ 2024-11-21 15:29 Frederic Weisbecker
2024-11-22 2:36 ` Chen-Yu Tsai
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Frederic Weisbecker @ 2024-11-21 15:29 UTC (permalink / raw)
To: Thomas Gleixner
Cc: LKML, Frederic Weisbecker, Chen-Yu Tsai,
Nícolas F. R. A. Prado, AngeloGioacchino Del Regno,
Anna-Maria Behnsen
A recent rework on delay functions wrongly ended up calling __udelay()
instead of __ndelay() for nanosecond delays, increasing those by 1000.
As a result hangs have been observed on boot
Restore the right function calls.
Fixes: 19e2d91d8cb1 ("delay: Rework udelay and ndelay")
Reported-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
---
include/asm-generic/delay.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/asm-generic/delay.h b/include/asm-generic/delay.h
index 76cf237b6e4c..03b0ec7afca6 100644
--- a/include/asm-generic/delay.h
+++ b/include/asm-generic/delay.h
@@ -75,11 +75,11 @@ static __always_inline void ndelay(unsigned long nsec)
{
if (__builtin_constant_p(nsec)) {
if (nsec >= DELAY_CONST_MAX)
- __bad_udelay();
+ __bad_ndelay();
else
__const_udelay(nsec * NDELAY_CONST_MULT);
} else {
- __udelay(nsec);
+ __ndelay(nsec);
}
}
#define ndelay(x) ndelay(x)
--
2.46.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] delay: Fix ndelay() spuriously treated as udelay()
2024-11-21 15:29 [PATCH] delay: Fix ndelay() spuriously treated as udelay() Frederic Weisbecker
@ 2024-11-22 2:36 ` Chen-Yu Tsai
2024-11-25 9:56 ` AngeloGioacchino Del Regno
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Chen-Yu Tsai @ 2024-11-22 2:36 UTC (permalink / raw)
To: Frederic Weisbecker
Cc: Thomas Gleixner, LKML, Nícolas F. R. A. Prado,
AngeloGioacchino Del Regno, Anna-Maria Behnsen
On Thu, Nov 21, 2024 at 11:30 PM Frederic Weisbecker
<frederic@kernel.org> wrote:
>
> A recent rework on delay functions wrongly ended up calling __udelay()
> instead of __ndelay() for nanosecond delays, increasing those by 1000.
>
> As a result hangs have been observed on boot
>
> Restore the right function calls.
>
> Fixes: 19e2d91d8cb1 ("delay: Rework udelay and ndelay")
> Reported-by: Chen-Yu Tsai <wenst@chromium.org>
> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Tested-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Thank you for the quick response! This fixed things for me.
> ---
> include/asm-generic/delay.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/asm-generic/delay.h b/include/asm-generic/delay.h
> index 76cf237b6e4c..03b0ec7afca6 100644
> --- a/include/asm-generic/delay.h
> +++ b/include/asm-generic/delay.h
> @@ -75,11 +75,11 @@ static __always_inline void ndelay(unsigned long nsec)
> {
> if (__builtin_constant_p(nsec)) {
> if (nsec >= DELAY_CONST_MAX)
> - __bad_udelay();
> + __bad_ndelay();
> else
> __const_udelay(nsec * NDELAY_CONST_MULT);
> } else {
> - __udelay(nsec);
> + __ndelay(nsec);
> }
> }
> #define ndelay(x) ndelay(x)
> --
> 2.46.0
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] delay: Fix ndelay() spuriously treated as udelay()
2024-11-21 15:29 [PATCH] delay: Fix ndelay() spuriously treated as udelay() Frederic Weisbecker
2024-11-22 2:36 ` Chen-Yu Tsai
@ 2024-11-25 9:56 ` AngeloGioacchino Del Regno
2024-11-29 10:48 ` [tip: timers/urgent] " tip-bot2 for Frederic Weisbecker
2024-12-02 14:04 ` [PATCH] " Nícolas F. R. A. Prado
3 siblings, 0 replies; 5+ messages in thread
From: AngeloGioacchino Del Regno @ 2024-11-25 9:56 UTC (permalink / raw)
To: Frederic Weisbecker, Thomas Gleixner
Cc: LKML, Chen-Yu Tsai, Nícolas F. R. A. Prado,
Anna-Maria Behnsen
Il 21/11/24 16:29, Frederic Weisbecker ha scritto:
> A recent rework on delay functions wrongly ended up calling __udelay()
> instead of __ndelay() for nanosecond delays, increasing those by 1000.
>
> As a result hangs have been observed on boot
>
> Restore the right function calls.
>
> Fixes: 19e2d91d8cb1 ("delay: Rework udelay and ndelay")
> Reported-by: Chen-Yu Tsai <wenst@chromium.org>
> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [tip: timers/urgent] delay: Fix ndelay() spuriously treated as udelay()
2024-11-21 15:29 [PATCH] delay: Fix ndelay() spuriously treated as udelay() Frederic Weisbecker
2024-11-22 2:36 ` Chen-Yu Tsai
2024-11-25 9:56 ` AngeloGioacchino Del Regno
@ 2024-11-29 10:48 ` tip-bot2 for Frederic Weisbecker
2024-12-02 14:04 ` [PATCH] " Nícolas F. R. A. Prado
3 siblings, 0 replies; 5+ messages in thread
From: tip-bot2 for Frederic Weisbecker @ 2024-11-29 10:48 UTC (permalink / raw)
To: linux-tip-commits
Cc: Chen-Yu Tsai, Frederic Weisbecker, Thomas Gleixner,
AngeloGioacchino Del Regno, x86, linux-kernel
The following commit has been merged into the timers/urgent branch of tip:
Commit-ID: 4d17c25eaf5d8b95d70726e6946e8eb94619e139
Gitweb: https://git.kernel.org/tip/4d17c25eaf5d8b95d70726e6946e8eb94619e139
Author: Frederic Weisbecker <frederic@kernel.org>
AuthorDate: Thu, 21 Nov 2024 16:29:31 +01:00
Committer: Thomas Gleixner <tglx@linutronix.de>
CommitterDate: Fri, 29 Nov 2024 11:40:22 +01:00
delay: Fix ndelay() spuriously treated as udelay()
A recent rework on delay functions wrongly ended up calling __udelay()
instead of __ndelay() for nanosecond delays, increasing those by 1000.
As a result hangs have been observed on boot
Restore the right function calls.
Fixes: 19e2d91d8cb1 ("delay: Rework udelay and ndelay")
Reported-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Chen-Yu Tsai <wenst@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Chen-Yu Tsai <wenst@chromium.org>
Link: https://lore.kernel.org/all/20241121152931.51884-1-frederic@kernel.org
---
include/asm-generic/delay.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/asm-generic/delay.h b/include/asm-generic/delay.h
index 76cf237..03b0ec7 100644
--- a/include/asm-generic/delay.h
+++ b/include/asm-generic/delay.h
@@ -75,11 +75,11 @@ static __always_inline void ndelay(unsigned long nsec)
{
if (__builtin_constant_p(nsec)) {
if (nsec >= DELAY_CONST_MAX)
- __bad_udelay();
+ __bad_ndelay();
else
__const_udelay(nsec * NDELAY_CONST_MULT);
} else {
- __udelay(nsec);
+ __ndelay(nsec);
}
}
#define ndelay(x) ndelay(x)
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] delay: Fix ndelay() spuriously treated as udelay()
2024-11-21 15:29 [PATCH] delay: Fix ndelay() spuriously treated as udelay() Frederic Weisbecker
` (2 preceding siblings ...)
2024-11-29 10:48 ` [tip: timers/urgent] " tip-bot2 for Frederic Weisbecker
@ 2024-12-02 14:04 ` Nícolas F. R. A. Prado
3 siblings, 0 replies; 5+ messages in thread
From: Nícolas F. R. A. Prado @ 2024-12-02 14:04 UTC (permalink / raw)
To: Frederic Weisbecker
Cc: Thomas Gleixner, LKML, Chen-Yu Tsai, AngeloGioacchino Del Regno,
Anna-Maria Behnsen
On Thu, Nov 21, 2024 at 04:29:31PM +0100, Frederic Weisbecker wrote:
> A recent rework on delay functions wrongly ended up calling __udelay()
> instead of __ndelay() for nanosecond delays, increasing those by 1000.
>
> As a result hangs have been observed on boot
>
> Restore the right function calls.
>
> Fixes: 19e2d91d8cb1 ("delay: Rework udelay and ndelay")
> Reported-by: Chen-Yu Tsai <wenst@chromium.org>
> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
It's possible to boot again on MT8195-Cherry-Tomato with this patch applied on
top of next-20241128.
Thanks,
Nícolas
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2024-12-02 14:04 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-21 15:29 [PATCH] delay: Fix ndelay() spuriously treated as udelay() Frederic Weisbecker
2024-11-22 2:36 ` Chen-Yu Tsai
2024-11-25 9:56 ` AngeloGioacchino Del Regno
2024-11-29 10:48 ` [tip: timers/urgent] " tip-bot2 for Frederic Weisbecker
2024-12-02 14:04 ` [PATCH] " Nícolas F. R. A. Prado
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.