History log of /arch/sparc/kernel/syscalls.S
Revision Date Author Comments
1535bd8adbdedd60a0ee62e28fd5225d66434371 14-Mar-2014 Dave Kleikamp <dave.kleikamp@oracle.com> sparc64: don't treat 64-bit syscall return codes as 32-bit

When checking a system call return code for an error,
linux_sparc_syscall was sign-extending the lower 32-bit value and
comparing it to -ERESTART_RESTARTBLOCK. lseek can return valid return
codes whose lower 32-bits alone would indicate a failure (such as 4G-1).
Use the whole 64-bit value to check for errors. Only the 32-bit path
should sign extend the lower 32-bit value.

Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
Acked-by: Bob Picco <bob.picco@oracle.com>
Acked-by: Allen Pais <allen.pais@oracle.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: sparclinux@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
812cb83a56a908729c453a7db3fb2c262119bc9d 14-Sep-2013 Kirill Tkhai <tkhai@yandex.ru> sparc64: Implement HAVE_CONTEXT_TRACKING

Mark the places when the system are in user or are in kernel.
This is used to make full dynticks system (tickless) --
CONFIG_NO_HZ_FULL dependence.

Signed-off-by: Kirill Tkhai <tkhai@yandex.ru>
CC: David Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
ab2abda6377723e0d5fbbfe5f5aa16a5523344d1 26-Jul-2013 Kirill Tkhai <tkhai@yandex.ru> sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall

(From v1 to v2: changed comment)

On the way linux_sparc_syscall32->linux_syscall_trace32->goto 2f,
register %o5 doesn't clear its second 32-bit.

Fix that.

Signed-off-by: Kirill Tkhai <tkhai@yandex.ru>
CC: David Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
37d6fa34a7f7b16799d0a7c009fcb74fbf090377 26-Jul-2013 Kirill Tkhai <tkhai@yandex.ru> sparc64: cleanup: Rename ret_from_syscall to ret_from_fork

Rename to make the function name better conform to its goal.

Signed-off-by: Kirill Tkhai <tkhai@yandex.ru>
CC: David Miller <davem@davemloft.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
99b06feb0f7c99f171cb962d0e6a17f81625abd3 23-Dec-2012 Al Viro <viro@zeniv.linux.org.uk> sparc: switch to generic sigaltstack

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
de7531e8575ab383a0f5bb68b63e7891fce4765d 03-Dec-2012 David S. Miller <davem@davemloft.net> sparc64: exit_group should kill register windows just like plain exit.

Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
eb48ffcf0e55e511ae87e9d99117d5e2b9e27153 27-Sep-2012 Al Viro <viro@zeniv.linux.org.uk> sparc64: convert to generic execve

We still have wrappers, but nowhere near as scary as they used to be.
I'm not sure how necessary that flushw is now, TBH...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2f12af35a988082700373acdebe049dfebaf49b6 27-Sep-2012 Al Viro <viro@zeniv.linux.org.uk> sparc64: switch to generic kernel_execve()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1918c7f548dc5abfb37ab74bb3d036d36c92ba5e 06-Oct-2012 Al Viro <viro@zeniv.linux.org.uk> sparc64: switch to generic kernel_thread()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
dff933da765fd4855393846fa55286d1ff2d024a 26-Sep-2012 Al Viro <viro@zeniv.linux.org.uk> sparc64: clear syscall_noerror on the entry to syscall, not on the exit

Move that sucker to just before TI_FPDEPTH and replace stb with sth in
etrap_save(). Take current_ds to its old place, so that we don't push
wsaved into TI_... flags. That allows to lose clearing syscall_noerror
on return from syscall.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
55c2770e413e96871147b9406a9c41fe9bc5209c 11-Oct-2012 Al Viro <viro@zeniv.linux.org.uk> sparc64: fix ptrace interaction with force_successful_syscall_return()

we want syscall_trace_leave() called on exit from any syscall;
skipping its call in case we'd done force_successful_syscall_return()
is broken...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2863bc54ec03df7a6e2c48cff0477d7e2384efc9 06-Oct-2012 David S. Miller <davem@davemloft.net> Revert strace hiccups fix.

This reverts commit 40138249c3b7a0762155216b963ec7fd4d09b5b4 and
ffa9009c9828db3f74178e459cfbca6e77ff5dd9.

There are problems with how the flag bytes were rearranged, in
particular we really can't move values down into the lowest
16 bits since those are used for individual state bits.

Signed-off-by: David S. Miller <davem@davemloft.net>
ffa9009c9828db3f74178e459cfbca6e77ff5dd9 04-Oct-2012 Al Viro <viro@zeniv.linux.org.uk> sparc64: Fix strace hiccups when force_successful_syscall() triggers.

When force_successful_syscall() triggers, the syscall return status
reported the ptrace applications gets garbled.

Fix this by reordering the events and tests in the ret_sys_call path.

Signed-off-by: David S. Miller <davem@davemloft.net>
40138249c3b7a0762155216b963ec7fd4d09b5b4 04-Oct-2012 Al Viro <viro@zeniv.linux.org.uk> sparc64: Rearrange thread info to cheaply clear syscall noerror state.

After fixing a couple of brainos, it even seems to work. What's done here
is move of ->syscall_noerror right before FPDEPTH byte in ->flags and
using sth to [%g6 + TI_SYS_NOERROR] instead of stb to [%g6 + TI_FPDEPTH] in
both branches of etrap_save. AFAICS, that ought to be solid. Again,
deciding what to do with now unused delay slot of branch on ->syscall_noerror
and dealing with the order of tests in ret_from_sys is a separate question,
but at least that way we don't have to clean ->syscall_noerror in there at
all. AFAICS, it ought to be a clear win - sth is not going to cost more than
stb on etrap_64.S side of things, and we are losing write on syscalls.S one.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
c7d5a0050773e98d1094eaa9f2a1a793fafac300 03-Mar-2010 David S. Miller <davem@davemloft.net> sparc64: Kill off old sys_perfctr system call and state.

People should be using the perf events interfaces, and
the way these system call facilities used the %pcr conflicts
with the usage of the NMI watchdog and perf events.

Signed-off-by: David S. Miller <davem@davemloft.net>
c658ad1b4e1520511da8323aa5e60d444cc303ed 11-Dec-2009 David S. Miller <davem@davemloft.net> sparc64: Add syscall tracepoint support.

Signed-off-by: David S. Miller <davem@davemloft.net>
e42650196df34789c825fa83f8bb37a5d5e52c14 20-Jan-2009 David S. Miller <davem@davemloft.net> sparc64: Annotate sparc64 specific syscalls with SYSCALL_DEFINEx()

Signed-off-by: David S. Miller <davem@davemloft.net>
1134723e96f6e2abcf8bfd7a2d1c96fcc323ef35 14-Jan-2009 Heiko Carstens <heiko.carstens@de.ibm.com> [CVE-2009-0029] Remove __attribute__((weak)) from sys_pipe/sys_pipe2

Remove __attribute__((weak)) from common code sys_pipe implemantation.
IA64, ALPHA, SUPERH (32bit) and SPARC (32bit) have own implemantations
with the same name. Just rename them.
For sys_pipe2 there is no architecture specific implementation.

Cc: Richard Henderson <rth@twiddle.net>
Cc: David S. Miller <davem@davemloft.net>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Tony Luck <tony.luck@intel.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
a88b5ba8bd8ac18aad65ee6c6a254e2e74876db3 03-Dec-2008 Sam Ravnborg <sam@ravnborg.org> sparc,sparc64: unify kernel/

o Move all files from sparc64/kernel/ to sparc/kernel
- rename as appropriate
o Update sparc/Makefile to the changes
o Update sparc/kernel/Makefile to include the sparc64 files

NOTE: This commit changes link order on sparc64!

Link order had to change for either of sparc32 and sparc64.
And assuming sparc64 see more testing than sparc32 change link
order on sparc64 where issues will be caught faster.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: David S. Miller <davem@davemloft.net>