Re: [PATCH] arm, vt8500, LLVMLlinux: Use mcr instead of mcr% for mach-vt8500

From: Behan Webster
Date: Wed Sep 24 2014 - 14:11:52 EST


On 09/24/14 02:16, Arnd Bergmann wrote:
On Tuesday 23 September 2014 20:44:44 Behan Webster wrote:
The ASM below does not compile with clang and is not the way that the mcr
command is used in other parts of the kernel.

arch/arm/mach-vt8500/vt8500.c:72:11: error: invalid % escape in inline assembly string
asm("mcr%? p15, 0, %0, c7, c0, 4" : : "r" (0));
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

There are other forms that are supported on different ARM instruction sets but
generally the kernel just uses mcr as it is supported in all ARM instruction
sets.
Just for confirm: both forms are actually correct and we don't need this
backported for stable, right?
My understanding is that the %? carries a condition code to the next instruction (which in this case is then ignored). So essentially in this situation both are equivalent.

Signed-off-by: Behan Webster <behanw@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Mark Charlebois <charlebm@xxxxxxxxx>
Acked-by: Will Deacon <will.deacon@xxxxxxx>
Acked-by: Arnd Bergmann <arnd@xxxxxxxx>

Tony, would you like to pick this one up and send it in a pull request
to arm-soc, or should we apply it to fixes-non-critical directly?
Thanks,

Behan

--
Behan Webster
behanw@xxxxxxxxxxxxxxxxxx

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/