From: Al Viro <viro@ZenIV.linux.org.uk>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 17/31] arm64: System calls handling
Date: Fri, 7 Sep 2012 20:54:14 +0100 [thread overview]
Message-ID: <20120907195414.GG13973@ZenIV.linux.org.uk> (raw)
In-Reply-To: <201209071943.37184.arnd@arndb.de>
On Fri, Sep 07, 2012 at 07:43:36PM +0000, Arnd Bergmann wrote:
> > + 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" (®s),
> > + "Ir" (sizeof(regs))
> > + : "x0", "x1", "x2", "x27", "x28", "x30", "memory");
This should just become ret_from_kernel_execve(); FWIW, arm variant is
ENTRY(ret_from_kernel_execve)
mov why, #0 @ not a syscall
str why, [r1, #S_R0] @ ... and we want 0 in ->ARM_r0 as well
mov r2, #S_FRAME_SIZE
bl memmove @ copy regs to normal location; return
@ value is in r0 and it's the same as
@ the first argument, so r0 is unchanged.
get_thread_info tsk @ thread structure
mov sp, r0 @ stack pointer just under pt_regs
b ret_slow_syscall
and AFAICS you want pretty much the same, modulo different registers - 'why'
(aka r8) seems to correspond to your x27, 'tsk' (aka r9) - to x28 and the rest
matches one-to-one: x1.. for arguments in place of r1.. and x0 for return value
(instead of r0)...
next prev parent reply other threads:[~2012-09-07 19:54 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-07 16:26 [PATCH v3 00/31] AArch64 Linux kernel port Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 01/31] arm64: Assembly macros and definitions Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 02/31] arm64: Kernel booting and initialisation Catalin Marinas
2012-09-07 19:07 ` Arnd Bergmann
2012-09-09 17:20 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-09 23:29 ` Nicolas Pitre
2012-09-10 5:53 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-10 12:51 ` Catalin Marinas
2012-09-10 13:53 ` Arnd Bergmann
2012-09-10 14:12 ` Nicolas Pitre
2012-09-10 14:48 ` Arnd Bergmann
2012-09-10 14:53 ` Catalin Marinas
2012-09-10 15:00 ` Nicolas Pitre
2012-09-10 15:21 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-10 16:08 ` Catalin Marinas
2012-09-10 16:29 ` Nicolas Pitre
2012-09-10 20:28 ` Jon Masters
2012-09-10 16:11 ` Catalin Marinas
2012-09-12 12:08 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-12 13:49 ` Catalin Marinas
2012-09-13 15:56 ` Christopher Covington
2012-09-13 17:11 ` Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 03/31] arm64: Exception handling Catalin Marinas
2012-09-07 19:09 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 04/31] arm64: MMU definitions Catalin Marinas
2012-09-07 19:10 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 05/31] arm64: MMU initialisation Catalin Marinas
2012-09-07 19:10 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 06/31] arm64: MMU fault handling and page table management Catalin Marinas
2012-09-07 19:11 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 07/31] arm64: Process management Catalin Marinas
2012-09-07 19:20 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 08/31] arm64: CPU support Catalin Marinas
2012-09-07 19:24 ` Arnd Bergmann
2012-09-10 16:43 ` Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 09/31] arm64: Cache maintenance routines Catalin Marinas
2012-09-07 19:28 ` Arnd Bergmann
2012-09-10 16:48 ` Catalin Marinas
2012-09-10 17:29 ` Nicolas Pitre
2012-09-14 16:53 ` Catalin Marinas
2012-09-07 19:35 ` Simon Baatz
2012-09-12 9:29 ` Catalin Marinas
2012-09-12 21:55 ` Simon Baatz
2012-09-13 12:38 ` Catalin Marinas
2012-09-13 20:14 ` Simon Baatz
2012-09-07 16:26 ` [PATCH v3 10/31] arm64: TLB maintenance functionality Catalin Marinas
2012-09-07 19:28 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 11/31] arm64: IRQ handling Catalin Marinas
2012-09-07 19:37 ` Arnd Bergmann
2012-09-12 10:24 ` Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 12/31] arm64: Atomic operations Catalin Marinas
2012-09-07 19:37 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 13/31] arm64: Device specific operations Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 14/31] arm64: DMA mapping API Catalin Marinas
2012-09-07 19:38 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 15/31] arm64: SMP support Catalin Marinas
2012-09-07 19:39 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 16/31] arm64: ELF definitions Catalin Marinas
2012-09-07 19:40 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 17/31] arm64: System calls handling Catalin Marinas
2012-09-07 19:43 ` Arnd Bergmann
2012-09-07 19:54 ` Al Viro [this message]
2012-09-10 9:56 ` Catalin Marinas
2012-09-10 13:51 ` Arnd Bergmann
2012-09-10 14:01 ` Catalin Marinas
2012-09-10 14:24 ` Arnd Bergmann
2012-09-10 15:50 ` Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 18/31] arm64: VDSO support Catalin Marinas
2012-09-07 19:44 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 19/31] arm64: Signal handling support Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 20/31] arm64: User access library functions Catalin Marinas
2012-09-07 19:46 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 21/31] arm64: 32-bit (compat) applications support Catalin Marinas
2012-09-07 19:47 ` Arnd Bergmann
2012-09-13 9:07 ` Catalin Marinas
2012-09-13 11:03 ` Arnd Bergmann
2012-09-13 15:50 ` Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 22/31] arm64: Floating point and SIMD Catalin Marinas
2012-09-07 16:26 ` [PATCH v3 23/31] arm64: Debugging support Catalin Marinas
2012-09-07 19:49 ` Arnd Bergmann
2012-09-07 16:26 ` [PATCH v3 24/31] arm64: Add support for /proc/sys/debug/exception-trace Catalin Marinas
2012-09-07 16:27 ` [PATCH v3 25/31] arm64: Performance counters support Catalin Marinas
2012-09-07 16:27 ` [PATCH v3 26/31] arm64: Miscellaneous library functions Catalin Marinas
2012-09-07 19:52 ` Arnd Bergmann
2012-09-12 21:12 ` Catalin Marinas
2012-09-13 10:48 ` Arnd Bergmann
2012-09-07 16:27 ` [PATCH v3 27/31] arm64: Loadable modules Catalin Marinas
2012-09-07 19:52 ` Arnd Bergmann
2012-09-07 16:27 ` [PATCH v3 28/31] arm64: Generic timers support Catalin Marinas
2012-09-07 19:53 ` Arnd Bergmann
2012-09-08 8:28 ` Shilimkar, Santosh
2012-09-07 16:27 ` [PATCH v3 29/31] arm64: Miscellaneous header files Catalin Marinas
2012-09-07 19:54 ` Arnd Bergmann
2012-09-07 16:27 ` [PATCH v3 30/31] arm64: Build infrastructure Catalin Marinas
2012-09-07 19:55 ` Arnd Bergmann
2012-09-07 16:27 ` [PATCH v3 31/31] arm64: MAINTAINERS update Catalin Marinas
2012-09-09 16:31 ` Jean-Christophe PLAGNIOL-VILLARD
2012-09-10 17:57 ` Nicolas Pitre
2012-09-10 21:17 ` Russell King - ARM Linux
2012-09-10 23:31 ` Nicolas Pitre
2012-09-07 23:25 ` [PATCH v3 00/31] AArch64 Linux kernel port Olof Johansson
2012-09-12 14:54 ` Catalin Marinas
2012-09-08 9:18 ` Santosh Shilimkar
2012-09-08 13:59 ` Nicolas Pitre
2012-09-08 14:42 ` Shilimkar, Santosh
2012-09-10 17:53 ` Nicolas Pitre
2012-09-10 20:22 ` Jon Masters
2012-09-12 11:54 ` Arnd Bergmann
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=20120907195414.GG13973@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).