All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Will Deacon <will.deacon@arm.com>
Subject: [PATCH v2 17/31] arm64: System calls handling
Date: Tue, 14 Aug 2012 18:52:18 +0100	[thread overview]
Message-ID: <1344966752-16102-18-git-send-email-catalin.marinas@arm.com> (raw)
In-Reply-To: <1344966752-16102-1-git-send-email-catalin.marinas@arm.com>

This patch adds support for system calls coming from 64-bit
applications. It uses the asm-generic/unistd.h definitions with the
canonical set of system calls. The private system calls are only used
for 32-bit (compat) applications as 64-bit ones can set the TLS and
flush the caches entirely from user space.

The sys_call_table is just an array defined in a C file and it contains
pointers to the syscall functions. The array is 4KB aligned to allow the
use of the ADRP instruction (longer range ADR) in entry.S.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 arch/arm64/include/asm/stat.h     |   63 +++++++++++++++++
 arch/arm64/include/asm/statfs.h   |   23 ++++++
 arch/arm64/include/asm/syscalls.h |   40 +++++++++++
 arch/arm64/include/asm/unistd.h   |   27 +++++++
 arch/arm64/kernel/sys.c           |  138 +++++++++++++++++++++++++++++++++++++
 5 files changed, 291 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm64/include/asm/stat.h
 create mode 100644 arch/arm64/include/asm/statfs.h
 create mode 100644 arch/arm64/include/asm/syscalls.h
 create mode 100644 arch/arm64/include/asm/unistd.h
 create mode 100644 arch/arm64/kernel/sys.c

diff --git a/arch/arm64/include/asm/stat.h b/arch/arm64/include/asm/stat.h
new file mode 100644
index 0000000..f63a680
--- /dev/null
+++ b/arch/arm64/include/asm/stat.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef __ASM_STAT_H
+#define __ASM_STAT_H
+
+#include <asm-generic/stat.h>
+
+#if defined(__KERNEL__) && defined(CONFIG_AARCH32_EMULATION)
+
+#include <asm/compat.h>
+
+/* This matches struct stat64 in glibc2.1, hence the absolutely
+ * insane amounts of padding around dev_t's.
+ * Note: The kernel zero's the padded region because glibc might read them
+ * in the hope that the kernel has stretched to using larger sizes.
+ */
+struct stat64 {
+	compat_u64	st_dev;
+	unsigned char   __pad0[4];
+
+#define STAT64_HAS_BROKEN_ST_INO	1
+	compat_ulong_t	__st_ino;
+	compat_uint_t	st_mode;
+	compat_uint_t	st_nlink;
+
+	compat_ulong_t	st_uid;
+	compat_ulong_t	st_gid;
+
+	compat_u64	st_rdev;
+	unsigned char   __pad3[4];
+
+	compat_s64	st_size;
+	compat_ulong_t	st_blksize;
+	compat_u64	st_blocks;	/* Number 512-byte blocks allocated. */
+
+	compat_ulong_t	st_atime;
+	compat_ulong_t	st_atime_nsec;
+
+	compat_ulong_t	st_mtime;
+	compat_ulong_t	st_mtime_nsec;
+
+	compat_ulong_t	st_ctime;
+	compat_ulong_t	st_ctime_nsec;
+
+	compat_u64	st_ino;
+};
+
+#endif
+
+#endif
diff --git a/arch/arm64/include/asm/statfs.h b/arch/arm64/include/asm/statfs.h
new file mode 100644
index 0000000..6f62190
--- /dev/null
+++ b/arch/arm64/include/asm/statfs.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef __ASM_STATFS_H
+#define __ASM_STATFS_H
+
+#define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed,aligned(4)))
+
+#include <asm-generic/statfs.h>
+
+#endif
diff --git a/arch/arm64/include/asm/syscalls.h b/arch/arm64/include/asm/syscalls.h
new file mode 100644
index 0000000..09ff335
--- /dev/null
+++ b/arch/arm64/include/asm/syscalls.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef __ASM_SYSCALLS_H
+#define __ASM_SYSCALLS_H
+
+#include <linux/linkage.h>
+#include <linux/compiler.h>
+#include <linux/signal.h>
+
+/*
+ * System call wrappers implemented in kernel/entry.S.
+ */
+asmlinkage long sys_execve_wrapper(const char __user *filename,
+				   const char __user *const __user *argv,
+				   const char __user *const __user *envp);
+asmlinkage long sys_clone_wrapper(unsigned long clone_flags,
+				  unsigned long newsp,
+				  void __user *parent_tid,
+				  unsigned long tls_val,
+				  void __user *child_tid);
+asmlinkage long sys_rt_sigreturn_wrapper(void);
+asmlinkage long sys_sigaltstack_wrapper(const stack_t __user *uss,
+					stack_t __user *uoss);
+
+#include <asm-generic/syscalls.h>
+
+#endif	/* __ASM_SYSCALLS_H */
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
new file mode 100644
index 0000000..b00718c
--- /dev/null
+++ b/arch/arm64/include/asm/unistd.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#if !defined(__ASM_UNISTD_H) || defined(__SYSCALL)
+#define __ASM_UNISTD_H
+
+#ifndef __SYSCALL_COMPAT
+#include <asm-generic/unistd.h>
+#endif
+
+#if defined(__KERNEL__) && defined(CONFIG_AARCH32_EMULATION)
+#include <asm/unistd32.h>
+#endif
+
+#endif /* __ASM_UNISTD_H */
diff --git a/arch/arm64/kernel/sys.c b/arch/arm64/kernel/sys.c
new file mode 100644
index 0000000..905fcfb
--- /dev/null
+++ b/arch/arm64/kernel/sys.c
@@ -0,0 +1,138 @@
+/*
+ * AArch64-specific system calls implementation
+ *
+ * Copyright (C) 2012 ARM Ltd.
+ * Author: Catalin Marinas <catalin.marinas@arm.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/export.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/syscalls.h>
+
+/*
+ * Clone a task - this clones the calling program thread.
+ */
+asmlinkage long sys_clone(unsigned long clone_flags, unsigned long newsp,
+			  int __user *parent_tidptr, unsigned long tls_val,
+			  int __user *child_tidptr, struct pt_regs *regs)
+{
+	if (!newsp)
+		newsp = regs->sp;
+	/* 16-byte aligned stack mandatory on AArch64 */
+	if (newsp & 15)
+		return -EINVAL;
+	return do_fork(clone_flags, newsp, regs, 0, parent_tidptr, child_tidptr);
+}
+
+/*
+ * sys_execve() executes a new program.
+ */
+asmlinkage long sys_execve(const char __user *filenamei,
+			   const char __user *const __user *argv,
+			   const char __user *const __user *envp,
+			   struct pt_regs *regs)
+{
+	long error;
+	char * filename;
+
+	filename = getname(filenamei);
+	error = PTR_ERR(filename);
+	if (IS_ERR(filename))
+		goto out;
+	error = do_execve(filename, argv, envp, regs);
+	putname(filename);
+out:
+	return error;
+}
+
+int kernel_execve(const char *filename,
+		  const char *const argv[],
+		  const char *const envp[])
+{
+	struct pt_regs regs;
+	int ret;
+
+	memset(&regs, 0, sizeof(struct pt_regs));
+	ret = do_execve(filename,
+			(const char __user *const __user *)argv,
+			(const char __user *const __user *)envp, &regs);
+	if (ret < 0)
+		goto out;
+
+	/*
+	 * Save argc to the register structure for userspace.
+	 */
+	regs.regs[0] = ret;
+
+	/*
+	 * We were successful.  We won't be returning to our caller, but
+	 * instead to user space by manipulating the kernel stack.
+	 */
+	asm(	"add	x0, %0, %1\n\t"
+		"mov	x1, %2\n\t"
+		"mov	x2, %3\n\t"
+		"bl	memmove\n\t"	/* copy regs to top of stack */
+		"mov	x27, #0\n\t"	/* not a syscall */
+		"mov	x28, %0\n\t"	/* thread structure */
+		"mov	sp, x0\n\t"	/* reposition stack pointer */
+		"b	ret_to_user"
+		:
+		: "r" (current_thread_info()),
+		  "Ir" (THREAD_START_SP - sizeof(regs)),
+		  "r" (&regs),
+		  "Ir" (sizeof(regs))
+		: "x0", "x1", "x2", "x27", "x28", "x30", "memory");
+
+ out:
+	return ret;
+}
+EXPORT_SYMBOL(kernel_execve);
+
+asmlinkage long sys_mmap(unsigned long addr, unsigned long len,
+			 unsigned long prot, unsigned long flags,
+			 unsigned long fd, off_t off)
+{
+	if (offset_in_page(off) != 0)
+		return -EINVAL;
+
+	return sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT);
+}
+
+/*
+ * Wrappers to pass the pt_regs argument.
+ */
+#define sys_execve		sys_execve_wrapper
+#define sys_clone		sys_clone_wrapper
+#define sys_rt_sigreturn	sys_rt_sigreturn_wrapper
+#define sys_sigaltstack		sys_sigaltstack_wrapper
+
+#include <asm/syscalls.h>
+
+#undef __SYSCALL
+#define __SYSCALL(nr, sym)	[nr] = sym,
+
+/*
+ * The sys_call_table array must be 4K aligned to be accessible from
+ * kernel/entry.S.
+ */
+void *sys_call_table[__NR_syscalls] __aligned(4096) = {
+	[0 ... __NR_syscalls - 1] = sys_ni_syscall,
+#include <asm/unistd.h>
+};


WARNING: multiple messages have this Message-ID (diff)
From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 17/31] arm64: System calls handling
Date: Tue, 14 Aug 2012 18:52:18 +0100	[thread overview]
Message-ID: <1344966752-16102-18-git-send-email-catalin.marinas@arm.com> (raw)
In-Reply-To: <1344966752-16102-1-git-send-email-catalin.marinas@arm.com>

This patch adds support for system calls coming from 64-bit
applications. It uses the asm-generic/unistd.h definitions with the
canonical set of system calls. The private system calls are only used
for 32-bit (compat) applications as 64-bit ones can set the TLS and
flush the caches entirely from user space.

The sys_call_table is just an array defined in a C file and it contains
pointers to the syscall functions. The array is 4KB aligned to allow the
use of the ADRP instruction (longer range ADR) in entry.S.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
 arch/arm64/include/asm/stat.h     |   63 +++++++++++++++++
 arch/arm64/include/asm/statfs.h   |   23 ++++++
 arch/arm64/include/asm/syscalls.h |   40 +++++++++++
 arch/arm64/include/asm/unistd.h   |   27 +++++++
 arch/arm64/kernel/sys.c           |  138 +++++++++++++++++++++++++++++++++++++
 5 files changed, 291 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm64/include/asm/stat.h
 create mode 100644 arch/arm64/include/asm/statfs.h
 create mode 100644 arch/arm64/include/asm/syscalls.h
 create mode 100644 arch/arm64/include/asm/unistd.h
 create mode 100644 arch/arm64/kernel/sys.c

diff --git a/arch/arm64/include/asm/stat.h b/arch/arm64/include/asm/stat.h
new file mode 100644
index 0000000..f63a680
--- /dev/null
+++ b/arch/arm64/include/asm/stat.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef __ASM_STAT_H
+#define __ASM_STAT_H
+
+#include <asm-generic/stat.h>
+
+#if defined(__KERNEL__) && defined(CONFIG_AARCH32_EMULATION)
+
+#include <asm/compat.h>
+
+/* This matches struct stat64 in glibc2.1, hence the absolutely
+ * insane amounts of padding around dev_t's.
+ * Note: The kernel zero's the padded region because glibc might read them
+ * in the hope that the kernel has stretched to using larger sizes.
+ */
+struct stat64 {
+	compat_u64	st_dev;
+	unsigned char   __pad0[4];
+
+#define STAT64_HAS_BROKEN_ST_INO	1
+	compat_ulong_t	__st_ino;
+	compat_uint_t	st_mode;
+	compat_uint_t	st_nlink;
+
+	compat_ulong_t	st_uid;
+	compat_ulong_t	st_gid;
+
+	compat_u64	st_rdev;
+	unsigned char   __pad3[4];
+
+	compat_s64	st_size;
+	compat_ulong_t	st_blksize;
+	compat_u64	st_blocks;	/* Number 512-byte blocks allocated. */
+
+	compat_ulong_t	st_atime;
+	compat_ulong_t	st_atime_nsec;
+
+	compat_ulong_t	st_mtime;
+	compat_ulong_t	st_mtime_nsec;
+
+	compat_ulong_t	st_ctime;
+	compat_ulong_t	st_ctime_nsec;
+
+	compat_u64	st_ino;
+};
+
+#endif
+
+#endif
diff --git a/arch/arm64/include/asm/statfs.h b/arch/arm64/include/asm/statfs.h
new file mode 100644
index 0000000..6f62190
--- /dev/null
+++ b/arch/arm64/include/asm/statfs.h
@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef __ASM_STATFS_H
+#define __ASM_STATFS_H
+
+#define ARCH_PACK_COMPAT_STATFS64 __attribute__((packed,aligned(4)))
+
+#include <asm-generic/statfs.h>
+
+#endif
diff --git a/arch/arm64/include/asm/syscalls.h b/arch/arm64/include/asm/syscalls.h
new file mode 100644
index 0000000..09ff335
--- /dev/null
+++ b/arch/arm64/include/asm/syscalls.h
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#ifndef __ASM_SYSCALLS_H
+#define __ASM_SYSCALLS_H
+
+#include <linux/linkage.h>
+#include <linux/compiler.h>
+#include <linux/signal.h>
+
+/*
+ * System call wrappers implemented in kernel/entry.S.
+ */
+asmlinkage long sys_execve_wrapper(const char __user *filename,
+				   const char __user *const __user *argv,
+				   const char __user *const __user *envp);
+asmlinkage long sys_clone_wrapper(unsigned long clone_flags,
+				  unsigned long newsp,
+				  void __user *parent_tid,
+				  unsigned long tls_val,
+				  void __user *child_tid);
+asmlinkage long sys_rt_sigreturn_wrapper(void);
+asmlinkage long sys_sigaltstack_wrapper(const stack_t __user *uss,
+					stack_t __user *uoss);
+
+#include <asm-generic/syscalls.h>
+
+#endif	/* __ASM_SYSCALLS_H */
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
new file mode 100644
index 0000000..b00718c
--- /dev/null
+++ b/arch/arm64/include/asm/unistd.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2012 ARM Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+#if !defined(__ASM_UNISTD_H) || defined(__SYSCALL)
+#define __ASM_UNISTD_H
+
+#ifndef __SYSCALL_COMPAT
+#include <asm-generic/unistd.h>
+#endif
+
+#if defined(__KERNEL__) && defined(CONFIG_AARCH32_EMULATION)
+#include <asm/unistd32.h>
+#endif
+
+#endif /* __ASM_UNISTD_H */
diff --git a/arch/arm64/kernel/sys.c b/arch/arm64/kernel/sys.c
new file mode 100644
index 0000000..905fcfb
--- /dev/null
+++ b/arch/arm64/kernel/sys.c
@@ -0,0 +1,138 @@
+/*
+ * AArch64-specific system calls implementation
+ *
+ * Copyright (C) 2012 ARM Ltd.
+ * Author: Catalin Marinas <catalin.marinas@arm.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/export.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/syscalls.h>
+
+/*
+ * Clone a task - this clones the calling program thread.
+ */
+asmlinkage long sys_clone(unsigned long clone_flags, unsigned long newsp,
+			  int __user *parent_tidptr, unsigned long tls_val,
+			  int __user *child_tidptr, struct pt_regs *regs)
+{
+	if (!newsp)
+		newsp = regs->sp;
+	/* 16-byte aligned stack mandatory on AArch64 */
+	if (newsp & 15)
+		return -EINVAL;
+	return do_fork(clone_flags, newsp, regs, 0, parent_tidptr, child_tidptr);
+}
+
+/*
+ * sys_execve() executes a new program.
+ */
+asmlinkage long sys_execve(const char __user *filenamei,
+			   const char __user *const __user *argv,
+			   const char __user *const __user *envp,
+			   struct pt_regs *regs)
+{
+	long error;
+	char * filename;
+
+	filename = getname(filenamei);
+	error = PTR_ERR(filename);
+	if (IS_ERR(filename))
+		goto out;
+	error = do_execve(filename, argv, envp, regs);
+	putname(filename);
+out:
+	return error;
+}
+
+int kernel_execve(const char *filename,
+		  const char *const argv[],
+		  const char *const envp[])
+{
+	struct pt_regs regs;
+	int ret;
+
+	memset(&regs, 0, sizeof(struct pt_regs));
+	ret = do_execve(filename,
+			(const char __user *const __user *)argv,
+			(const char __user *const __user *)envp, &regs);
+	if (ret < 0)
+		goto out;
+
+	/*
+	 * Save argc to the register structure for userspace.
+	 */
+	regs.regs[0] = ret;
+
+	/*
+	 * We were successful.  We won't be returning to our caller, but
+	 * instead to user space by manipulating the kernel stack.
+	 */
+	asm(	"add	x0, %0, %1\n\t"
+		"mov	x1, %2\n\t"
+		"mov	x2, %3\n\t"
+		"bl	memmove\n\t"	/* copy regs to top of stack */
+		"mov	x27, #0\n\t"	/* not a syscall */
+		"mov	x28, %0\n\t"	/* thread structure */
+		"mov	sp, x0\n\t"	/* reposition stack pointer */
+		"b	ret_to_user"
+		:
+		: "r" (current_thread_info()),
+		  "Ir" (THREAD_START_SP - sizeof(regs)),
+		  "r" (&regs),
+		  "Ir" (sizeof(regs))
+		: "x0", "x1", "x2", "x27", "x28", "x30", "memory");
+
+ out:
+	return ret;
+}
+EXPORT_SYMBOL(kernel_execve);
+
+asmlinkage long sys_mmap(unsigned long addr, unsigned long len,
+			 unsigned long prot, unsigned long flags,
+			 unsigned long fd, off_t off)
+{
+	if (offset_in_page(off) != 0)
+		return -EINVAL;
+
+	return sys_mmap_pgoff(addr, len, prot, flags, fd, off >> PAGE_SHIFT);
+}
+
+/*
+ * Wrappers to pass the pt_regs argument.
+ */
+#define sys_execve		sys_execve_wrapper
+#define sys_clone		sys_clone_wrapper
+#define sys_rt_sigreturn	sys_rt_sigreturn_wrapper
+#define sys_sigaltstack		sys_sigaltstack_wrapper
+
+#include <asm/syscalls.h>
+
+#undef __SYSCALL
+#define __SYSCALL(nr, sym)	[nr] = sym,
+
+/*
+ * The sys_call_table array must be 4K aligned to be accessible from
+ * kernel/entry.S.
+ */
+void *sys_call_table[__NR_syscalls] __aligned(4096) = {
+	[0 ... __NR_syscalls - 1] = sys_ni_syscall,
+#include <asm/unistd.h>
+};

  parent reply	other threads:[~2012-08-14 17:54 UTC|newest]

Thread overview: 442+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-14 17:52 [PATCH v2 00/31] AArch64 Linux kernel port Catalin Marinas
2012-08-14 17:52 ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 01/31] arm64: Assembly macros and definitions Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 12:57   ` Arnd Bergmann
2012-08-15 12:57     ` Arnd Bergmann
2012-08-14 17:52 ` [PATCH v2 02/31] arm64: Kernel booting and initialisation Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 23:06   ` Olof Johansson
2012-08-14 23:06     ` Olof Johansson
2012-08-15 17:37     ` Catalin Marinas
2012-08-15 17:37       ` Catalin Marinas
2012-08-15 17:37       ` Catalin Marinas
2012-08-15 19:03       ` Olof Johansson
2012-08-15 19:03         ` Olof Johansson
2012-08-15 19:03         ` Olof Johansson
2012-08-15 19:03         ` Olof Johansson
2012-08-15 19:53         ` Catalin Marinas
2012-08-15 19:53           ` Catalin Marinas
2012-08-15 19:53           ` Catalin Marinas
2012-08-15 19:53           ` Catalin Marinas
2012-08-15 13:20   ` Arnd Bergmann
2012-08-15 13:20     ` Arnd Bergmann
2012-08-15 17:06     ` Olof Johansson
2012-08-15 17:06       ` Olof Johansson
2012-08-16 12:53     ` Catalin Marinas
2012-08-16 12:53       ` Catalin Marinas
2012-08-16 12:53       ` Catalin Marinas
2012-08-16 18:59   ` Nicolas Pitre
2012-08-16 18:59     ` Nicolas Pitre
2012-08-17 11:20     ` Arnd Bergmann
2012-08-17 11:20       ` Arnd Bergmann
2012-08-17 13:45       ` Catalin Marinas
2012-08-17 13:45         ` Catalin Marinas
2012-08-17 13:45         ` Catalin Marinas
2012-08-17 18:21       ` Nicolas Pitre
2012-08-17 18:21         ` Nicolas Pitre
2012-08-17  8:56   ` Tony Lindgren
2012-08-17  8:56     ` Tony Lindgren
2012-08-17  9:41   ` Santosh Shilimkar
2012-08-17  9:41     ` Santosh Shilimkar
2012-08-17 10:05     ` Catalin Marinas
2012-08-17 10:05       ` Catalin Marinas
2012-08-17 10:05       ` Catalin Marinas
2012-08-17 10:05       ` Catalin Marinas
2012-08-17 10:10       ` Shilimkar, Santosh
2012-08-17 10:10         ` Shilimkar, Santosh
2012-08-17 10:10         ` Shilimkar, Santosh
2012-08-17 13:13         ` Tony Lindgren
2012-08-17 13:13           ` Tony Lindgren
2012-08-17 13:13           ` Tony Lindgren
2012-08-17 13:48           ` Catalin Marinas
2012-08-17 13:48             ` Catalin Marinas
2012-08-17 13:48             ` Catalin Marinas
2012-08-24  9:50           ` Catalin Marinas
2012-08-24  9:50             ` Catalin Marinas
2012-08-24  9:50             ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 03/31] arm64: Exception handling Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 23:29   ` Olof Johansson
2012-08-14 23:29     ` Olof Johansson
2012-08-14 23:47     ` Thomas Gleixner
2012-08-14 23:47       ` Thomas Gleixner
2012-08-15 13:03   ` Arnd Bergmann
2012-08-15 13:03     ` Arnd Bergmann
2012-08-16 10:05     ` Will Deacon
2012-08-16 10:05       ` Will Deacon
2012-08-16 10:05       ` Will Deacon
2012-08-16 10:05       ` Will Deacon
2012-08-16 11:54       ` Arnd Bergmann
2012-08-16 11:54         ` Arnd Bergmann
2012-08-16 11:54         ` Arnd Bergmann
2012-08-14 17:52 ` [PATCH v2 04/31] arm64: MMU definitions Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 13:30   ` Arnd Bergmann
2012-08-15 13:30     ` Arnd Bergmann
2012-08-15 13:39     ` Catalin Marinas
2012-08-15 13:39       ` Catalin Marinas
2012-08-15 13:39       ` Catalin Marinas
2012-08-15 16:34     ` Geert Uytterhoeven
2012-08-15 16:34       ` Geert Uytterhoeven
2012-08-15 16:45       ` Catalin Marinas
2012-08-15 16:45         ` Catalin Marinas
2012-08-15 16:45         ` Catalin Marinas
2012-08-17  9:04   ` Tony Lindgren
2012-08-17  9:04     ` Tony Lindgren
2012-08-17  9:21     ` Catalin Marinas
2012-08-17  9:21       ` Catalin Marinas
2012-08-17  9:21       ` Catalin Marinas
2012-08-17  9:38       ` Tony Lindgren
2012-08-17  9:38         ` Tony Lindgren
2012-08-17  9:38         ` Tony Lindgren
2012-08-14 17:52 ` [PATCH v2 05/31] arm64: MMU initialisation Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 13:45   ` Arnd Bergmann
2012-08-15 13:45     ` Arnd Bergmann
2012-08-17 10:06   ` Santosh Shilimkar
2012-08-17 10:06     ` Santosh Shilimkar
2012-08-17 10:15     ` Catalin Marinas
2012-08-17 10:15       ` Catalin Marinas
2012-08-17 10:15       ` Catalin Marinas
2012-08-17 10:25       ` Shilimkar, Santosh
2012-08-17 10:25         ` Shilimkar, Santosh
2012-08-17 10:25         ` Shilimkar, Santosh
2012-08-14 17:52 ` [PATCH v2 06/31] arm64: MMU fault handling and page table management Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 13:47   ` Arnd Bergmann
2012-08-15 13:47     ` Arnd Bergmann
2012-08-17 16:07     ` Catalin Marinas
2012-08-17 16:07       ` Catalin Marinas
2012-08-17 16:07       ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 07/31] arm64: Process management Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 23:50   ` Olof Johansson
2012-08-14 23:50     ` Olof Johansson
2012-09-14 17:33     ` Catalin Marinas
2012-09-14 17:33       ` Catalin Marinas
2012-09-14 17:33       ` Catalin Marinas
2012-09-16  0:29       ` Olof Johansson
2012-09-16  0:29         ` Olof Johansson
2012-09-16  0:29         ` Olof Johansson
2012-08-15 13:53   ` Arnd Bergmann
2012-08-15 13:53     ` Arnd Bergmann
2012-08-17 16:15     ` Catalin Marinas
2012-08-17 16:15       ` Catalin Marinas
2012-08-17 16:15       ` Catalin Marinas
2012-08-16 15:09   ` Tobias Klauser
2012-08-16 15:09     ` Tobias Klauser
2012-08-14 17:52 ` [PATCH v2 08/31] arm64: CPU support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15  0:10   ` Olof Johansson
2012-08-15  0:10     ` Olof Johansson
2012-08-20 15:57     ` Catalin Marinas
2012-08-20 15:57       ` Catalin Marinas
2012-08-20 15:57       ` Catalin Marinas
2012-08-20 20:47       ` Arnd Bergmann
2012-08-20 20:47         ` Arnd Bergmann
2012-08-20 20:47         ` Arnd Bergmann
2012-08-21  9:50         ` Catalin Marinas
2012-08-21  9:50           ` Catalin Marinas
2012-08-21  9:50           ` Catalin Marinas
2012-09-14 17:38     ` Catalin Marinas
2012-09-14 17:38       ` Catalin Marinas
2012-09-14 17:38       ` Catalin Marinas
2012-08-15 13:56   ` Arnd Bergmann
2012-08-15 13:56     ` Arnd Bergmann
2012-08-20 16:00     ` Catalin Marinas
2012-08-20 16:00       ` Catalin Marinas
2012-08-20 16:00       ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 09/31] arm64: Cache maintenance routines Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-17  9:57   ` Santosh Shilimkar
2012-08-17  9:57     ` Santosh Shilimkar
2012-08-17  9:57     ` Santosh Shilimkar
2012-08-17 10:07     ` Catalin Marinas
2012-08-17 10:07       ` Catalin Marinas
2012-08-17 10:07       ` Catalin Marinas
2012-08-17 10:12       ` Shilimkar, Santosh
2012-08-17 10:12         ` Shilimkar, Santosh
2012-08-17 10:12         ` Shilimkar, Santosh
2012-08-14 17:52 ` [PATCH v2 10/31] arm64: TLB maintenance functionality Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 11/31] arm64: IRQ handling Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 23:22   ` Aaro Koskinen
2012-08-14 23:22     ` Aaro Koskinen
2012-08-14 17:52 ` [PATCH v2 12/31] arm64: Atomic operations Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15  0:21   ` Olof Johansson
2012-08-15  0:21     ` Olof Johansson
2012-08-14 17:52 ` [PATCH v2 13/31] arm64: Device specific operations Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15  0:33   ` Olof Johansson
2012-08-15  0:33     ` Olof Johansson
2012-09-14 17:29     ` Catalin Marinas
2012-09-14 17:29       ` Catalin Marinas
2012-09-14 17:29       ` Catalin Marinas
2012-09-14 17:31       ` Arnd Bergmann
2012-09-14 17:31         ` Arnd Bergmann
2012-09-14 17:31         ` Arnd Bergmann
2012-09-14 17:39         ` Catalin Marinas
2012-09-14 17:39           ` Catalin Marinas
2012-09-14 17:39           ` Catalin Marinas
2012-09-16  0:28           ` Olof Johansson
2012-09-16  0:28             ` Olof Johansson
2012-09-16  0:28             ` Olof Johansson
2012-08-15 16:13   ` Arnd Bergmann
2012-08-15 16:13     ` Arnd Bergmann
2012-08-17  9:19   ` Tony Lindgren
2012-08-17  9:19     ` Tony Lindgren
2012-08-17  9:19     ` Tony Lindgren
2012-08-14 17:52 ` [PATCH v2 14/31] arm64: DMA mapping API Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15  0:40   ` Olof Johansson
2012-08-15  0:40     ` Olof Johansson
2012-08-15  0:40     ` Olof Johansson
2012-08-21 13:05     ` Catalin Marinas
2012-08-21 13:05       ` Catalin Marinas
2012-08-21 13:05       ` Catalin Marinas
2012-08-15 16:16   ` Arnd Bergmann
2012-08-15 16:16     ` Arnd Bergmann
2012-08-21 12:59     ` Catalin Marinas
2012-08-21 12:59       ` Catalin Marinas
2012-08-21 12:59       ` Catalin Marinas
2012-08-21 12:59       ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 15/31] arm64: SMP support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15  0:49   ` Olof Johansson
2012-08-15  0:49     ` Olof Johansson
2012-08-15 13:04   ` Arnd Bergmann
2012-08-15 13:04     ` Arnd Bergmann
2012-08-17  9:21   ` Tony Lindgren
2012-08-17  9:21     ` Tony Lindgren
2012-08-17  9:32     ` Catalin Marinas
2012-08-17  9:32       ` Catalin Marinas
2012-08-17  9:32       ` Catalin Marinas
2012-08-17  9:39       ` Tony Lindgren
2012-08-17  9:39         ` Tony Lindgren
2012-08-17  9:39         ` Tony Lindgren
2012-08-14 17:52 ` [PATCH v2 16/31] arm64: ELF definitions Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 14:15   ` Arnd Bergmann
2012-08-15 14:15     ` Arnd Bergmann
2012-08-16 10:23     ` Will Deacon
2012-08-16 10:23       ` Will Deacon
2012-08-16 10:23       ` Will Deacon
2012-08-16 10:23       ` Will Deacon
2012-08-16 12:37       ` Arnd Bergmann
2012-08-16 12:37         ` Arnd Bergmann
2012-08-16 12:37         ` Arnd Bergmann
2012-08-21 16:06         ` Catalin Marinas
2012-08-21 16:06           ` Catalin Marinas
2012-08-21 16:06           ` Catalin Marinas
2012-08-21 18:17           ` Geert Uytterhoeven
2012-08-21 18:17             ` Geert Uytterhoeven
2012-08-21 18:17             ` Geert Uytterhoeven
2012-08-21 18:17             ` Geert Uytterhoeven
2012-08-21 18:27             ` Catalin Marinas
2012-08-21 18:27               ` Catalin Marinas
2012-08-21 18:27               ` Catalin Marinas
2012-08-21 18:53               ` Mike Frysinger
2012-08-21 18:53                 ` Mike Frysinger
2012-08-21 18:53                 ` Mike Frysinger
2012-08-21 20:17           ` Arnd Bergmann
2012-08-21 20:17             ` Arnd Bergmann
2012-08-21 20:17             ` Arnd Bergmann
2012-09-05 19:56             ` Chris Metcalf
2012-09-05 19:56               ` Chris Metcalf
2012-09-05 19:56               ` Chris Metcalf
2012-08-14 17:52 ` Catalin Marinas [this message]
2012-08-14 17:52   ` [PATCH v2 17/31] arm64: System calls handling Catalin Marinas
2012-08-15 14:22   ` Arnd Bergmann
2012-08-15 14:22     ` Arnd Bergmann
2012-08-21 17:51     ` Catalin Marinas
2012-08-21 17:51       ` Catalin Marinas
2012-08-21 17:51       ` Catalin Marinas
2012-08-21 20:14       ` Arnd Bergmann
2012-08-21 20:14         ` Arnd Bergmann
2012-08-21 20:14         ` Arnd Bergmann
2012-08-21 20:14         ` Arnd Bergmann
2012-08-21 22:01         ` Catalin Marinas
2012-08-21 22:01           ` Catalin Marinas
2012-08-21 22:01           ` Catalin Marinas
2012-08-22  7:56           ` Arnd Bergmann
2012-08-22  7:56             ` Arnd Bergmann
2012-08-22  7:56             ` Arnd Bergmann
2012-08-22 10:29             ` Catalin Marinas
2012-08-22 10:29               ` Catalin Marinas
2012-08-22 10:29               ` Catalin Marinas
2012-08-22 12:27               ` Arnd Bergmann
2012-08-22 12:27                 ` Arnd Bergmann
2012-08-22 12:27                 ` Arnd Bergmann
2012-08-22 17:13                 ` Catalin Marinas
2012-08-22 17:13                   ` Catalin Marinas
2012-08-22 17:13                   ` Catalin Marinas
2012-09-03 11:48                   ` Catalin Marinas
2012-09-03 11:48                     ` Catalin Marinas
2012-09-03 11:48                     ` Catalin Marinas
2012-09-03 12:39                     ` Arnd Bergmann
2012-09-03 12:39                       ` Arnd Bergmann
2012-09-03 12:39                       ` Arnd Bergmann
2012-08-14 17:52 ` [PATCH v2 18/31] arm64: VDSO support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 19/31] arm64: Signal handling support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 20/31] arm64: User access library functions Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 14:49   ` [PATCH v2 20/31] arm64: User access library function Arnd Bergmann
2012-08-15 14:49     ` Arnd Bergmann
2012-09-03 12:58     ` Catalin Marinas
2012-09-03 12:58       ` Catalin Marinas
2012-09-03 12:58       ` Catalin Marinas
2012-09-05 19:13     ` Russell King - ARM Linux
2012-09-05 19:13       ` Russell King - ARM Linux
2012-09-05 21:01       ` Catalin Marinas
2012-09-05 21:01         ` Catalin Marinas
2012-09-05 21:01         ` Catalin Marinas
2012-09-05 21:05         ` Russell King - ARM Linux
2012-09-05 21:05           ` Russell King - ARM Linux
2012-09-05 21:05           ` Russell King - ARM Linux
2012-09-06  8:36           ` Catalin Marinas
2012-09-06  8:36             ` Catalin Marinas
2012-09-06  8:36             ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 21/31] arm64: 32-bit (compat) applications support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 14:34   ` Arnd Bergmann
2012-08-15 14:34     ` Arnd Bergmann
2012-08-16 10:28     ` Will Deacon
2012-08-16 10:28       ` Will Deacon
2012-08-16 10:28       ` Will Deacon
2012-08-16 12:39       ` Arnd Bergmann
2012-08-16 12:39         ` Arnd Bergmann
2012-08-16 12:39         ` Arnd Bergmann
2012-08-23  6:46       ` PER_LINUX32, Was: " Arnd Bergmann
2012-08-23  6:46         ` Arnd Bergmann
2012-08-23  6:46         ` Arnd Bergmann
2012-08-23 10:42         ` Catalin Marinas
2012-08-23 10:42           ` Catalin Marinas
2012-08-23 10:42           ` Catalin Marinas
2012-08-28 18:28         ` Jiri Kosina
2012-08-28 18:28           ` Jiri Kosina
2012-08-28 18:28           ` Jiri Kosina
2012-08-24 10:43     ` Catalin Marinas
2012-08-24 10:43       ` Catalin Marinas
2012-08-24 10:43       ` Catalin Marinas
2012-08-26  4:49       ` Arnd Bergmann
2012-08-26  4:49         ` Arnd Bergmann
2012-08-26  4:49         ` Arnd Bergmann
2012-08-26  4:49         ` Arnd Bergmann
2012-08-20 10:53   ` Pavel Machek
2012-08-20 10:53     ` Pavel Machek
2012-08-20 20:34     ` Arnd Bergmann
2012-08-20 20:34       ` Arnd Bergmann
2012-08-21 10:28       ` Pavel Machek
2012-08-21 10:28         ` Pavel Machek
2012-08-14 17:52 ` [PATCH v2 22/31] arm64: Floating point and SIMD Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 14:35   ` Arnd Bergmann
2012-08-15 14:35     ` Arnd Bergmann
2012-08-14 17:52 ` [PATCH v2 23/31] arm64: Debugging support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:07   ` Arnd Bergmann
2012-08-15 15:07     ` Arnd Bergmann
2012-08-15 15:07     ` Arnd Bergmann
2012-08-16 10:47     ` Will Deacon
2012-08-16 10:47       ` Will Deacon
2012-08-16 10:47       ` Will Deacon
2012-08-16 12:49       ` Arnd Bergmann
2012-08-16 12:49         ` Arnd Bergmann
2012-08-16 12:49         ` Arnd Bergmann
2012-08-17  7:06         ` Arnd Bergmann
2012-08-17  7:06           ` Arnd Bergmann
2012-08-17  7:06           ` Arnd Bergmann
2012-08-20  9:07           ` Will Deacon
2012-08-20  9:07             ` Will Deacon
2012-08-20  9:07             ` Will Deacon
2012-08-20  9:27             ` Will Deacon
2012-08-20  9:27               ` Will Deacon
2012-08-20  9:27               ` Will Deacon
2012-08-20 20:10               ` Arnd Bergmann
2012-08-20 20:10                 ` Arnd Bergmann
2012-08-20 20:10                 ` Arnd Bergmann
2012-08-21  8:58                 ` Will Deacon
2012-08-21  8:58                   ` Will Deacon
2012-08-21  8:58                   ` Will Deacon
2012-08-21  8:58                   ` Will Deacon
2012-08-14 17:52 ` [PATCH v2 24/31] arm64: Add support for /proc/sys/debug/exception-trace Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:08   ` Arnd Bergmann
2012-08-15 15:08     ` Arnd Bergmann
2012-08-14 17:52 ` [PATCH v2 25/31] arm64: Performance counters support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:11   ` Arnd Bergmann
2012-08-15 15:11     ` Arnd Bergmann
2012-08-16 10:51     ` Will Deacon
2012-08-16 10:51       ` Will Deacon
2012-08-16 10:51       ` Will Deacon
2012-08-14 17:52 ` [PATCH v2 26/31] arm64: Miscellaneous library functions Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:21   ` Arnd Bergmann
2012-08-15 15:21     ` Arnd Bergmann
2012-08-16 10:57     ` Will Deacon
2012-08-16 10:57       ` Will Deacon
2012-08-16 10:57       ` Will Deacon
2012-08-16 13:00       ` Arnd Bergmann
2012-08-16 13:00         ` Arnd Bergmann
2012-08-16 13:00         ` Arnd Bergmann
2012-08-16 14:11         ` Catalin Marinas
2012-08-16 14:11           ` Catalin Marinas
2012-08-16 14:11           ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 27/31] arm64: Loadable modules Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:23   ` Arnd Bergmann
2012-08-15 15:23     ` Arnd Bergmann
2012-08-15 15:35     ` Catalin Marinas
2012-08-15 15:35       ` Catalin Marinas
2012-08-15 15:35       ` Catalin Marinas
2012-08-15 16:16       ` Arnd Bergmann
2012-08-15 16:16         ` Arnd Bergmann
2012-08-15 16:16         ` Arnd Bergmann
2012-08-14 17:52 ` [PATCH v2 28/31] arm64: Generic timers support Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:52   ` Arnd Bergmann
2012-08-15 15:52     ` Arnd Bergmann
2012-08-16 12:40   ` Linus Walleij
2012-08-16 12:40     ` Linus Walleij
2012-08-17  9:29   ` Tony Lindgren
2012-08-17  9:29     ` Tony Lindgren
2012-08-17 10:21   ` Santosh Shilimkar
2012-08-17 10:21     ` Santosh Shilimkar
2012-08-21 19:20   ` Christopher Covington
2012-08-21 19:20     ` Christopher Covington
2012-08-14 17:52 ` [PATCH v2 29/31] arm64: Miscellaneous header files Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:56   ` Arnd Bergmann
2012-08-15 15:56     ` Arnd Bergmann
2012-08-14 17:52 ` [PATCH v2 30/31] arm64: Build infrastructure Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-14 21:01   ` Sam Ravnborg
2012-08-14 21:01     ` Sam Ravnborg
2012-08-15 16:07   ` Arnd Bergmann
2012-08-15 16:07     ` Arnd Bergmann
2012-08-17  9:32   ` Tony Lindgren
2012-08-17  9:32     ` Tony Lindgren
2012-08-17  9:46     ` Catalin Marinas
2012-08-17  9:46       ` Catalin Marinas
2012-08-17  9:46       ` Catalin Marinas
2012-08-14 17:52 ` [PATCH v2 31/31] arm64: MAINTAINERS update Catalin Marinas
2012-08-14 17:52   ` Catalin Marinas
2012-08-15 15:57   ` Arnd Bergmann
2012-08-15 15:57     ` Arnd Bergmann
2012-08-17  9:36 ` [PATCH v2 00/31] AArch64 Linux kernel port Tony Lindgren
2012-08-17  9:36   ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1344966752-16102-18-git-send-email-catalin.marinas@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=arnd@arndb.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=will.deacon@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.