arm: fix hvc call
authorIbai Erkiaga <ibai.erkiaga-elorza@xilinx.com>
Mon, 25 Feb 2019 10:11:45 +0000 (10:11 +0000)
committerTom Rini <trini@konsulko.com>
Mon, 22 Apr 2019 22:13:22 +0000 (18:13 -0400)
HVC call makes use of 6 mandatory arguments rather than 7 in the same way
as SMC calls. The 7th argument is optional (Client ID) for both HVC and
SMC but is implemented as 16-bit parameter and register R7 or W7. The aim
of this patch is just fix compilation error due to an invalid asm code in
the HVC call so that's why the 7th argument is removed.

The issue does not report any error in a normal build as hvc_call is not
used at all and is optimized by the compiler. Using -O0 triggers the
error so the patch is intended to fix issues on a ongoing effor to build
U-Boot with -O0.

Signed-off-by: Ibai Erkiaga <ibai.erkiaga-elorza@xilinx.com>
arch/arm/cpu/armv8/fwcall.c

index 9957c2974bc09134207ad0252052e5aabe55688e..b0aca1b72a3b9fbf732d733446941127f0551331 100644 (file)
@@ -28,7 +28,6 @@ static void hvc_call(struct pt_regs *args)
                "ldr x4, %4\n"
                "ldr x5, %5\n"
                "ldr x6, %6\n"
-               "ldr x7, %7\n"
                "hvc    #0\n"
                "str x0, %0\n"
                "str x1, %1\n"
@@ -37,7 +36,7 @@ static void hvc_call(struct pt_regs *args)
                : "+m" (args->regs[0]), "+m" (args->regs[1]),
                  "+m" (args->regs[2]), "+m" (args->regs[3])
                : "m" (args->regs[4]), "m" (args->regs[5]),
-                 "m" (args->regs[6]), "m" (args->regs[7])
+                 "m" (args->regs[6])
                : "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7",
                  "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15",
                  "x16", "x17");