From: Frederic Weisbecker Date: Thu, 21 Nov 2024 15:29:31 +0000 (+0100) Subject: delay: Fix ndelay() spuriously treated as udelay() X-Git-Tag: v6.13-rc1~3^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d17c25eaf5d8b95d70726e6946e8eb94619e139;p=thirdparty%2Flinux.git 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 Signed-off-by: Frederic Weisbecker Signed-off-by: Thomas Gleixner Tested-by: Chen-Yu Tsai Reviewed-by: AngeloGioacchino Del Regno Reviewed-by: Chen-Yu Tsai Link: https://lore.kernel.org/all/20241121152931.51884-1-frederic@kernel.org --- diff --git a/include/asm-generic/delay.h b/include/asm-generic/delay.h index 76cf237b6e4cb..03b0ec7afca6f 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)