ARM: 8768/1: uaccess: remove const to avoid duplicate specifier
authorStefan Agner <stefan@agner.ch>
Tue, 8 May 2018 21:51:50 +0000 (22:51 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Sat, 19 May 2018 10:53:46 +0000 (11:53 +0100)
commitdb4667a800175ede09d80fbd391c2578541121dd
treef728cf0b270ef6fcbc286d3ddc644a8d2be798e9
parentc1c386681bd73c4fc28eb5cc91cf8b7be9b409ba
ARM: 8768/1: uaccess: remove const to avoid duplicate specifier

Some users of get_user use the macro with an argument p which
is already specified as static. When using clang this leads to
a duplicate specifier:
    CC      arch/arm/kernel/process.o
  In file included from init/do_mounts.c:15:
  In file included from ./include/linux/tty.h:7:
  In file included from ./include/uapi/linux/termios.h:6:
  In file included from ./arch/arm/include/generated/uapi/asm/termios.h:1:
  ./include/asm-generic/termios.h:25:6: warning: duplicate 'const' declaration
          specifier [-Wduplicate-decl-specifier]
          if (get_user(tmp, &termio->c_iflag) < 0)
              ^
  ./arch/arm/include/asm/uaccess.h:195:3: note: expanded from macro 'get_user'
                  __get_user_check(x, p);
                  ^
  ./arch/arm/include/asm/uaccess.h:155:12: note: expanded from macro
          '__get_user_check'
                  register const typeof(*(p)) __user *__p asm("r0") = (p);

Remove the const attribute from the register declaration
to avoid the duplicate const specifier. In a test with ptrace.c
and traps.c (both using get_user with non-const arguments for p)
the generated code was exactly the same.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/include/asm/uaccess.h