diff mbox series

[v4,01/20] powerpc: Remove asmlinkage from syscall handler definitions

Message ID 20220824020548.62625-2-rmclure@linux.ibm.com (mailing list archive)
State Changes Requested
Headers show
Series powerpc: Syscall wrapper and register clearing | expand

Commit Message

Rohan McLure Aug. 24, 2022, 2:05 a.m. UTC
The asmlinkage macro has no special meaning in powerpc, and prior to
this patch is used sporadically on some syscall handler definitions. On
architectures that do not define asmlinkage, it resolves to extern "C"
for C++ compilers and a nop otherwise. The current invocations of
asmlinkage provide far from complete support for C++ toolchains, and so
the macro serves no purpose in powerpc.

Remove all invocations of asmlinkage in arch/powerpc. These incidentally
only occur in syscall definitions and prototypes.

Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>
---
V2 -> V3: new patch
---
 arch/powerpc/include/asm/syscalls.h | 16 ++++++++--------
 arch/powerpc/kernel/sys_ppc32.c     |  8 ++++----
 2 files changed, 12 insertions(+), 12 deletions(-)

Comments

Andrew Donnellan Aug. 25, 2022, 7:04 a.m. UTC | #1
On Wed, 2022-08-24 at 12:05 +1000, Rohan McLure wrote:
> The asmlinkage macro has no special meaning in powerpc, and prior to
> this patch is used sporadically on some syscall handler definitions.
> On
> architectures that do not define asmlinkage, it resolves to extern
> "C"
> for C++ compilers and a nop otherwise. The current invocations of
> asmlinkage provide far from complete support for C++ toolchains, and
> so
> the macro serves no purpose in powerpc.
> 
> Remove all invocations of asmlinkage in arch/powerpc. These
> incidentally
> only occur in syscall definitions and prototypes.
> 
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>

This does indeed get rid of every reference to asmlinkage in
arch/powerpc.

Reviewed-by: Andrew Donnellan <ajd@linux.ibm.com>

> ---
> V2 -> V3: new patch
> ---
>  arch/powerpc/include/asm/syscalls.h | 16 ++++++++--------
>  arch/powerpc/kernel/sys_ppc32.c     |  8 ++++----
>  2 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/syscalls.h
> b/arch/powerpc/include/asm/syscalls.h
> index a2b13e55254f..21c2faaa2957 100644
> --- a/arch/powerpc/include/asm/syscalls.h
> +++ b/arch/powerpc/include/asm/syscalls.h
> @@ -10,14 +10,14 @@
>  
>  struct rtas_args;
>  
> -asmlinkage long sys_mmap(unsigned long addr, size_t len,
> -               unsigned long prot, unsigned long flags,
> -               unsigned long fd, off_t offset);
> -asmlinkage long sys_mmap2(unsigned long addr, size_t len,
> -               unsigned long prot, unsigned long flags,
> -               unsigned long fd, unsigned long pgoff);
> -asmlinkage long ppc64_personality(unsigned long personality);
> -asmlinkage long sys_rtas(struct rtas_args __user *uargs);
> +long sys_mmap(unsigned long addr, size_t len,
> +             unsigned long prot, unsigned long flags,
> +             unsigned long fd, off_t offset);
> +long sys_mmap2(unsigned long addr, size_t len,
> +              unsigned long prot, unsigned long flags,
> +              unsigned long fd, unsigned long pgoff);
> +long ppc64_personality(unsigned long personality);
> +long sys_rtas(struct rtas_args __user *uargs);
>  int ppc_select(int n, fd_set __user *inp, fd_set __user *outp,
>                fd_set __user *exp, struct __kernel_old_timeval __user
> *tvp);
>  long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32
> offset_low,
> diff --git a/arch/powerpc/kernel/sys_ppc32.c
> b/arch/powerpc/kernel/sys_ppc32.c
> index 16ff0399a257..f4edcc9489fb 100644
> --- a/arch/powerpc/kernel/sys_ppc32.c
> +++ b/arch/powerpc/kernel/sys_ppc32.c
> @@ -85,20 +85,20 @@ compat_ssize_t compat_sys_readahead(int fd, u32
> r4, u32 offset1, u32 offset2, u3
>         return ksys_readahead(fd, merge_64(offset1, offset2), count);
>  }
>  
> -asmlinkage int compat_sys_truncate64(const char __user * path, u32
> reg4,
> +int compat_sys_truncate64(const char __user * path, u32 reg4,
>                                 unsigned long len1, unsigned long
> len2)
>  {
>         return ksys_truncate(path, merge_64(len1, len2));
>  }
>  
> -asmlinkage long compat_sys_fallocate(int fd, int mode, u32 offset1,
> u32 offset2,
> +long compat_sys_fallocate(int fd, int mode, u32 offset1, u32
> offset2,
>                                      u32 len1, u32 len2)
>  {
>         return ksys_fallocate(fd, mode, ((loff_t)offset1 << 32) |
> offset2,
>                              merge_64(len1, len2));
>  }
>  
> -asmlinkage int compat_sys_ftruncate64(unsigned int fd, u32 reg4,
> unsigned long len1,
> +int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long
> len1,
>                                  unsigned long len2)
>  {
>         return ksys_ftruncate(fd, merge_64(len1, len2));
> @@ -111,7 +111,7 @@ long ppc32_fadvise64(int fd, u32 unused, u32
> offset1, u32 offset2,
>                                  advice);
>  }
>  
> -asmlinkage long compat_sys_sync_file_range2(int fd, unsigned int
> flags,
> +long compat_sys_sync_file_range2(int fd, unsigned int flags,
>                                    unsigned offset1, unsigned
> offset2,
>                                    unsigned nbytes1, unsigned
> nbytes2)
>  {
Nicholas Piggin Sept. 12, 2022, 8:20 a.m. UTC | #2
On Wed Aug 24, 2022 at 12:05 PM AEST, Rohan McLure wrote:
> The asmlinkage macro has no special meaning in powerpc, and prior to
> this patch is used sporadically on some syscall handler definitions. On
> architectures that do not define asmlinkage, it resolves to extern "C"
> for C++ compilers and a nop otherwise. The current invocations of
> asmlinkage provide far from complete support for C++ toolchains, and so
> the macro serves no purpose in powerpc.
>
> Remove all invocations of asmlinkage in arch/powerpc. These incidentally
> only occur in syscall definitions and prototypes.
>
> Signed-off-by: Rohan McLure <rmclure@linux.ibm.com>

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
diff mbox series

Patch

diff --git a/arch/powerpc/include/asm/syscalls.h b/arch/powerpc/include/asm/syscalls.h
index a2b13e55254f..21c2faaa2957 100644
--- a/arch/powerpc/include/asm/syscalls.h
+++ b/arch/powerpc/include/asm/syscalls.h
@@ -10,14 +10,14 @@ 
 
 struct rtas_args;
 
-asmlinkage long sys_mmap(unsigned long addr, size_t len,
-		unsigned long prot, unsigned long flags,
-		unsigned long fd, off_t offset);
-asmlinkage long sys_mmap2(unsigned long addr, size_t len,
-		unsigned long prot, unsigned long flags,
-		unsigned long fd, unsigned long pgoff);
-asmlinkage long ppc64_personality(unsigned long personality);
-asmlinkage long sys_rtas(struct rtas_args __user *uargs);
+long sys_mmap(unsigned long addr, size_t len,
+	      unsigned long prot, unsigned long flags,
+	      unsigned long fd, off_t offset);
+long sys_mmap2(unsigned long addr, size_t len,
+	       unsigned long prot, unsigned long flags,
+	       unsigned long fd, unsigned long pgoff);
+long ppc64_personality(unsigned long personality);
+long sys_rtas(struct rtas_args __user *uargs);
 int ppc_select(int n, fd_set __user *inp, fd_set __user *outp,
 	       fd_set __user *exp, struct __kernel_old_timeval __user *tvp);
 long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low,
diff --git a/arch/powerpc/kernel/sys_ppc32.c b/arch/powerpc/kernel/sys_ppc32.c
index 16ff0399a257..f4edcc9489fb 100644
--- a/arch/powerpc/kernel/sys_ppc32.c
+++ b/arch/powerpc/kernel/sys_ppc32.c
@@ -85,20 +85,20 @@  compat_ssize_t compat_sys_readahead(int fd, u32 r4, u32 offset1, u32 offset2, u3
 	return ksys_readahead(fd, merge_64(offset1, offset2), count);
 }
 
-asmlinkage int compat_sys_truncate64(const char __user * path, u32 reg4,
+int compat_sys_truncate64(const char __user * path, u32 reg4,
 				unsigned long len1, unsigned long len2)
 {
 	return ksys_truncate(path, merge_64(len1, len2));
 }
 
-asmlinkage long compat_sys_fallocate(int fd, int mode, u32 offset1, u32 offset2,
+long compat_sys_fallocate(int fd, int mode, u32 offset1, u32 offset2,
 				     u32 len1, u32 len2)
 {
 	return ksys_fallocate(fd, mode, ((loff_t)offset1 << 32) | offset2,
 			     merge_64(len1, len2));
 }
 
-asmlinkage int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long len1,
+int compat_sys_ftruncate64(unsigned int fd, u32 reg4, unsigned long len1,
 				 unsigned long len2)
 {
 	return ksys_ftruncate(fd, merge_64(len1, len2));
@@ -111,7 +111,7 @@  long ppc32_fadvise64(int fd, u32 unused, u32 offset1, u32 offset2,
 				 advice);
 }
 
-asmlinkage long compat_sys_sync_file_range2(int fd, unsigned int flags,
+long compat_sys_sync_file_range2(int fd, unsigned int flags,
 				   unsigned offset1, unsigned offset2,
 				   unsigned nbytes1, unsigned nbytes2)
 {