LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH v3] bus: arm-cci: remove unnecessary unreachable()
@ 2018-05-08 14:27 Stefan Agner
  2018-05-14  8:23 ` Olof Johansson
  0 siblings, 1 reply; 2+ messages in thread
From: Stefan Agner @ 2018-05-08 14:27 UTC (permalink / raw)
  To: arm, arnd
  Cc: linux, ard.biesheuvel, robin.murphy, nicolas.pitre, marc.zyngier,
	behanw, keescook, Bernhard.Rosenkranzer, mka, linux-arm-kernel,
	linux-kernel, Stefan Agner

Mixing asm and C code is not recommended in a naked function by
gcc and leads to an error when using clang:
  drivers/bus/arm-cci.c:2107:2: error: non-ASM statement in naked
  function is not supported
        unreachable();
        ^

While the function is marked __naked it actually properly return
in asm. There is no need for the unreachable() call.

GCC 7.2 generates identical object files before and after, other
than (for obvious reasons) the line numbers generated by
WANT_WARN_ON_SLOWPATH for all the WARN()s appearing later in the
file.

Suggested-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Nicolas Pitre <nico@linaro.org>
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
---
Changes in v3:
- Fix subject and enhance commit message
Changes in v2:
- Don't add assembly ASM_UNREACHABLE, just drop unreachable()

 drivers/bus/arm-cci.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/bus/arm-cci.c b/drivers/bus/arm-cci.c
index 443e4c3fd357..b8184a903583 100644
--- a/drivers/bus/arm-cci.c
+++ b/drivers/bus/arm-cci.c
@@ -371,8 +371,6 @@ asmlinkage void __naked cci_enable_port_for_self(void)
 	[sizeof_struct_cpu_port] "i" (sizeof(struct cpu_port)),
 	[sizeof_struct_ace_port] "i" (sizeof(struct cci_ace_port)),
 	[offsetof_port_phys] "i" (offsetof(struct cci_ace_port, phys)) );
-
-	unreachable();
 }
 
 /**
-- 
2.17.0

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH v3] bus: arm-cci: remove unnecessary unreachable()
  2018-05-08 14:27 [PATCH v3] bus: arm-cci: remove unnecessary unreachable() Stefan Agner
@ 2018-05-14  8:23 ` Olof Johansson
  0 siblings, 0 replies; 2+ messages in thread
From: Olof Johansson @ 2018-05-14  8:23 UTC (permalink / raw)
  To: Stefan Agner
  Cc: arm, arnd, linux, ard.biesheuvel, robin.murphy, nicolas.pitre,
	marc.zyngier, behanw, keescook, Bernhard.Rosenkranzer, mka,
	linux-arm-kernel, linux-kernel

On Tue, May 08, 2018 at 04:27:26PM +0200, Stefan Agner wrote:
> Mixing asm and C code is not recommended in a naked function by
> gcc and leads to an error when using clang:
>   drivers/bus/arm-cci.c:2107:2: error: non-ASM statement in naked
>   function is not supported
>         unreachable();
>         ^
> 
> While the function is marked __naked it actually properly return
> in asm. There is no need for the unreachable() call.
> 
> GCC 7.2 generates identical object files before and after, other
> than (for obvious reasons) the line numbers generated by
> WANT_WARN_ON_SLOWPATH for all the WARN()s appearing later in the
> file.
> 
> Suggested-by: Russell King <linux@arm.linux.org.uk>
> Signed-off-by: Stefan Agner <stefan@agner.ch>
> Acked-by: Nicolas Pitre <nico@linaro.org>
> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
> ---
> Changes in v3:
> - Fix subject and enhance commit message
> Changes in v2:
> - Don't add assembly ASM_UNREACHABLE, just drop unreachable()

Applied to next/drivers for v4.18 merge window now. Thanks!


-Olof

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-05-14  8:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-08 14:27 [PATCH v3] bus: arm-cci: remove unnecessary unreachable() Stefan Agner
2018-05-14  8:23 ` Olof Johansson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).