mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 13:22:57 +00:00
powerpc/fsl: Fix mfpmr build errors with newer binutils
[ Upstream commit 5f491356b7
]
Binutils 2.38 complains about the use of mfpmr when building
ppc6xx_defconfig:
CC arch/powerpc/kernel/pmc.o
{standard input}: Assembler messages:
{standard input}:45: Error: unrecognized opcode: `mfpmr'
{standard input}:56: Error: unrecognized opcode: `mtpmr'
This is because by default the kernel is built with -mcpu=powerpc, and
the mt/mfpmr instructions are not defined.
It can be avoided by enabling CONFIG_E300C3_CPU, but just adding that to
the defconfig will leave open the possibility of randconfig failures.
So add machine directives around the mt/mfpmr instructions to tell
binutils how to assemble them.
Cc: stable@vger.kernel.org
Reported-by: Jan-Benedict Glaw <jbglaw@lug-owl.de>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240229122521.762431-3-mpe@ellerman.id.au
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
7b6cc33593
commit
5b5e1ed80a
1 changed files with 9 additions and 2 deletions
|
@ -12,9 +12,16 @@
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
/* Performance Monitor Registers */
|
/* Performance Monitor Registers */
|
||||||
#define mfpmr(rn) ({unsigned int rval; \
|
#define mfpmr(rn) ({unsigned int rval; \
|
||||||
asm volatile("mfpmr %0," __stringify(rn) \
|
asm volatile(".machine push; " \
|
||||||
|
".machine e300; " \
|
||||||
|
"mfpmr %0," __stringify(rn) ";" \
|
||||||
|
".machine pop; " \
|
||||||
: "=r" (rval)); rval;})
|
: "=r" (rval)); rval;})
|
||||||
#define mtpmr(rn, v) asm volatile("mtpmr " __stringify(rn) ",%0" : : "r" (v))
|
#define mtpmr(rn, v) asm volatile(".machine push; " \
|
||||||
|
".machine e300; " \
|
||||||
|
"mtpmr " __stringify(rn) ",%0; " \
|
||||||
|
".machine pop; " \
|
||||||
|
: : "r" (v))
|
||||||
#endif /* __ASSEMBLY__ */
|
#endif /* __ASSEMBLY__ */
|
||||||
|
|
||||||
/* Freescale Book E Performance Monitor APU Registers */
|
/* Freescale Book E Performance Monitor APU Registers */
|
||||||
|
|
Loading…
Reference in a new issue