arch_cpu_idle_dead() doesn't return. Make that more explicit with a
BUG().
BUG() is preferable to unreachable() because BUG() is a more explicit
failure mode and avoids undefined behavior like falling off the edge of
the function into whatever code happens to be next.
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
arch/arm/kernel/smp.c | 2 ++
1 file changed, 2 insertions(+)
From: "Russell King (Oracle)" <linux@armlinux.org.uk> Date: 2023-02-14 11:16:02
On Mon, Feb 13, 2023 at 11:05:37PM -0800, Josh Poimboeuf wrote:
arch_cpu_idle_dead() doesn't return. Make that more explicit with a
BUG().
BUG() is preferable to unreachable() because BUG() is a more explicit
failure mode and avoids undefined behavior like falling off the edge of
the function into whatever code happens to be next.
This is silly. Just mark the function __noreturn and be done with it.
If the CPU ever executes code past the "b" instruction, it's already
really broken that the extra instructions that BUG() gives will be
meaningless.
This patch does nothing except add yet more bloat the kernel.
Sorry, but NAK.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
On Tue, Feb 14, 2023 at 11:15:23AM +0000, Russell King (Oracle) wrote:
On Mon, Feb 13, 2023 at 11:05:37PM -0800, Josh Poimboeuf wrote:
quoted
arch_cpu_idle_dead() doesn't return. Make that more explicit with a
BUG().
BUG() is preferable to unreachable() because BUG() is a more explicit
failure mode and avoids undefined behavior like falling off the edge of
the function into whatever code happens to be next.
This is silly. Just mark the function __noreturn and be done with it.
If the CPU ever executes code past the "b" instruction, it's already
really broken that the extra instructions that BUG() gives will be
meaningless.
This patch does nothing except add yet more bloat the kernel.
Sorry, but NAK.
Problem is, the compiler can't read inline asm. So you'd get a
"'noreturn' function does return" warning.
We can do an unreachable() instead of a BUG() here if you prefer
undefined behavior.
--
Josh
From: "Russell King (Oracle)" <linux@armlinux.org.uk> Date: 2023-02-14 22:02:40
On Tue, Feb 14, 2023 at 10:39:26AM -0800, Josh Poimboeuf wrote:
On Tue, Feb 14, 2023 at 11:15:23AM +0000, Russell King (Oracle) wrote:
quoted
On Mon, Feb 13, 2023 at 11:05:37PM -0800, Josh Poimboeuf wrote:
quoted
arch_cpu_idle_dead() doesn't return. Make that more explicit with a
BUG().
BUG() is preferable to unreachable() because BUG() is a more explicit
failure mode and avoids undefined behavior like falling off the edge of
the function into whatever code happens to be next.
This is silly. Just mark the function __noreturn and be done with it.
If the CPU ever executes code past the "b" instruction, it's already
really broken that the extra instructions that BUG() gives will be
meaningless.
This patch does nothing except add yet more bloat the kernel.
Sorry, but NAK.
Problem is, the compiler can't read inline asm. So you'd get a
"'noreturn' function does return" warning.
We can do an unreachable() instead of a BUG() here if you prefer
undefined behavior.
arch_cpu_idle_dead() doesn't return. Make that visible to the compiler
with an unreachable() code annotation.
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
---
arch/arm/kernel/smp.c | 2 ++
1 file changed, 2 insertions(+)