<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/arch/tile/kernel/compat.c, branch v3.13</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/arch/tile/kernel/compat.c?h=v3.13</id>
<link rel='self' href='https://git.amat.us/linux/atom/arch/tile/kernel/compat.c?h=v3.13'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2013-09-16T19:47:32Z</updated>
<entry>
<title>tile: remove stray blank space</title>
<updated>2013-09-16T19:47:32Z</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@tilera.com</email>
</author>
<published>2013-09-16T18:41:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e823acc0a9e36a5645cdf0c57fa5f738b51bb999'/>
<id>urn:sha1:e823acc0a9e36a5645cdf0c57fa5f738b51bb999</id>
<content type='text'>
The compat sys_llseek() definition addition added a bogus space
on an otherwise-blank line.

Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal</title>
<updated>2013-05-01T14:21:43Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-05-01T14:21:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=08d76760832993050ad8c25e63b56773ef2ca303'/>
<id>urn:sha1:08d76760832993050ad8c25e63b56773ef2ca303</id>
<content type='text'>
Pull compat cleanup from Al Viro:
 "Mostly about syscall wrappers this time; there will be another pile
  with patches in the same general area from various people, but I'd
  rather push those after both that and vfs.git pile are in."

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
  syscalls.h: slightly reduce the jungles of macros
  get rid of union semop in sys_semctl(2) arguments
  make do_mremap() static
  sparc: no need to sign-extend in sync_file_range() wrapper
  ppc compat wrappers for add_key(2) and request_key(2) are pointless
  x86: trim sys_ia32.h
  x86: sys32_kill and sys32_mprotect are pointless
  get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC
  merge compat sys_ipc instances
  consolidate compat lookup_dcookie()
  convert vmsplice to COMPAT_SYSCALL_DEFINE
  switch getrusage() to COMPAT_SYSCALL_DEFINE
  switch epoll_pwait to COMPAT_SYSCALL_DEFINE
  convert sendfile{,64} to COMPAT_SYSCALL_DEFINE
  switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE
  make SYSCALL_DEFINE&lt;n&gt;-generated wrappers do asmlinkage_protect
  make HAVE_SYSCALL_WRAPPERS unconditional
  consolidate cond_syscall and SYSCALL_ALIAS declarations
  teach SYSCALL_DEFINE&lt;n&gt; how to deal with long long/unsigned long long
  get rid of duplicate logics in __SC_....[1-6] definitions
</content>
</entry>
<entry>
<title>tile: properly use COMPAT_SYSCALL_DEFINEx</title>
<updated>2013-03-04T18:37:32Z</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@tilera.com</email>
</author>
<published>2013-03-04T18:37:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=87c319a2c3c2efd397281089b9cdce3050febeff'/>
<id>urn:sha1:87c319a2c3c2efd397281089b9cdce3050febeff</id>
<content type='text'>
This was pointed out by Al Viro.  Using the correct wrappers
properly does sign extension as necessary on syscall arguments.

Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
</content>
</entry>
<entry>
<title>tile: work around bug in the generic sys_llseek</title>
<updated>2013-03-04T16:19:09Z</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@tilera.com</email>
</author>
<published>2013-03-04T16:19:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5a114b98661e3aaa0ac085eb931584dce3b0ef9b'/>
<id>urn:sha1:5a114b98661e3aaa0ac085eb931584dce3b0ef9b</id>
<content type='text'>
sys_llseek should specify the high and low 32-bit seek values as "unsigned
int" but instead it specifies "unsigned long".  Since compat syscall
arguments are always sign-extended on tile, this means that a seek value
of 0xffffffff will be incorrectly interpreted as a value of -1ULL.

To avoid the risk of breaking binary compatibility on architectures
that already use sys_llseek this way, we follow the same path as MIPS
and provide a wrapper override.

Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
Cc: stable@kernel.org [v3.6 onwards]
</content>
</entry>
<entry>
<title>consolidate compat lookup_dcookie()</title>
<updated>2013-03-04T04:00:23Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2013-02-25T23:42:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d5dc77bfeeab0b03a32e3db5e31e2f64605634ab'/>
<id>urn:sha1:d5dc77bfeeab0b03a32e3db5e31e2f64605634ab</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>compat: generic compat_sys_sched_rr_get_interval() implementation</title>
<updated>2012-12-18T01:15:18Z</updated>
<author>
<name>Catalin Marinas</name>
<email>catalin.marinas@arm.com</email>
</author>
<published>2012-12-18T00:01:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0ad50c3896afbb3c103409a18260e601b87a744c'/>
<id>urn:sha1:0ad50c3896afbb3c103409a18260e601b87a744c</id>
<content type='text'>
This function is used by sparc, powerpc tile and arm64 for compat support.
 The patch adds a generic implementation with a wrapper for PowerPC to do
the u32-&gt;int sign extension.

The reason for a single patch covering powerpc, tile, sparc and arm64 is
to keep it bisectable, otherwise kernel building may fail with mismatched
function declarations.

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Acked-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;  [for tile]
Acked-by: David S. Miller &lt;davem@davemloft.net&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Cc: Paul Mackerras &lt;paulus@samba.org&gt;
Cc: Alexander Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h</title>
<updated>2012-11-29T04:43:27Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2012-11-29T04:04:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=24465a40ba452bd81fdc9eecb2d75bb903aafdf6'/>
<id>urn:sha1:24465a40ba452bd81fdc9eecb2d75bb903aafdf6</id>
<content type='text'>
now it can be done...

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>arch/tile: eliminate pt_regs trampolines for syscalls</title>
<updated>2012-10-23T20:23:58Z</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@tilera.com</email>
</author>
<published>2012-10-23T17:30:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6b14e4198c729b748a7f6d22059e6a101d2b241a'/>
<id>urn:sha1:6b14e4198c729b748a7f6d22059e6a101d2b241a</id>
<content type='text'>
Using the new current_pt_regs() model, we can remove some trampolines
from assembly code and call directly to the C syscall implementations.
rt_sigreturn() and clone() still need some assembly wrapping, but no
longer are passed a pt_regs pointer.  sigaltstack() and the
tilepro-specific cmpxchg_badaddr() syscalls are now just straight C.

Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
</content>
</entry>
<entry>
<title>Drop struct pt_regs * argument in compat_sys_execve()</title>
<updated>2012-10-20T17:13:11Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2012-10-20T17:13:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=733deca197143857f938b41d671cd7ce9c53c4bc'/>
<id>urn:sha1:733deca197143857f938b41d671cd7ce9c53c4bc</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[PATCH v3] ipc: provide generic compat versions of IPC syscalls</title>
<updated>2012-03-15T17:13:38Z</updated>
<author>
<name>Chris Metcalf</name>
<email>cmetcalf@tilera.com</email>
</author>
<published>2012-03-15T17:13:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=48b25c43e6eebb6c0edf72935e8720385beca76b'/>
<id>urn:sha1:48b25c43e6eebb6c0edf72935e8720385beca76b</id>
<content type='text'>
When using the "compat" APIs, architectures will generally want to
be able to make direct syscalls to msgsnd(), shmctl(), etc., and
in the kernel we would want them to be handled directly by
compat_sys_xxx() functions, as is true for other compat syscalls.

However, for historical reasons, several of the existing compat IPC
syscalls do not do this.  semctl() expects a pointer to the fourth
argument, instead of the fourth argument itself.  msgsnd(), msgrcv()
and shmat() expect arguments in different order.

This change adds an ARCH_WANT_OLD_COMPAT_IPC config option that can be
set to preserve this behavior for ports that use it (x86, sparc, powerpc,
s390, and mips).  No actual semantics are changed for those architectures,
and there is only a minimal amount of code refactoring in ipc/compat.c.

Newer architectures like tile (and perhaps future architectures such
as arm64 and unicore64) should not select this option, and thus can
avoid having any IPC-specific code at all in their architecture-specific
compat layer.  In the same vein, if this option is not selected, IPC_64
mode is assumed, since that's what the &lt;asm-generic&gt; headers expect.

The workaround code in "tile" for msgsnd() and msgrcv() is removed
with this change; it also fixes the bug that shmat() and semctl() were
not being properly handled.

Reviewed-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Signed-off-by: Chris Metcalf &lt;cmetcalf@tilera.com&gt;
</content>
</entry>
</feed>
