powerpc: Fix build errors with newer binutils
authorAnders Roxell <anders.roxell@linaro.org>
Thu, 24 Feb 2022 16:22:14 +0000 (17:22 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 1 Mar 2022 12:51:08 +0000 (23:51 +1100)
commit8667d0d64dd1f84fd41b5897fd87fa9113ae05e3
tree4cfb5b41d6b84137540de6224655a96c7373c6de
parenta633cb1edddaa643fadc70abc88f89a408fa834a
powerpc: Fix build errors with newer binutils

Building tinyconfig with gcc (Debian 11.2.0-16) and assembler (Debian
2.37.90.20220207) the following build error shows up:

  {standard input}: Assembler messages:
  {standard input}:1190: Error: unrecognized opcode: `stbcix'
  {standard input}:1433: Error: unrecognized opcode: `lwzcix'
  {standard input}:1453: Error: unrecognized opcode: `stbcix'
  {standard input}:1460: Error: unrecognized opcode: `stwcix'
  {standard input}:1596: Error: unrecognized opcode: `stbcix'
  ...

Rework to add assembler directives [1] around the instruction. Going
through them one by one shows that the changes should be safe.  Like
__get_user_atomic_128_aligned() is only called in p9_hmi_special_emu(),
which according to the name is specific to power9.  And __raw_rm_read*()
are only called in things that are powernv or book3s_hv specific.

[1] https://sourceware.org/binutils/docs/as/PowerPC_002dPseudo.html#PowerPC_002dPseudo

Cc: stable@vger.kernel.org
Co-developed-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Reviewed-by: Segher Boessenkool <segher@kernel.crashing.org>
[mpe: Make commit subject more descriptive]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220224162215.3406642-2-anders.roxell@linaro.org
arch/powerpc/include/asm/io.h
arch/powerpc/include/asm/uaccess.h
arch/powerpc/platforms/powernv/rng.c