Messages in this thread | | | From | Arnd Bergmann <> | Subject | Re: [PATCH v2] compat: fixes to allow working with tile arch | Date | Wed, 11 May 2011 23:08:15 +0200 |
| |
On Monday 09 May 2011, Chris Metcalf wrote: > The existing <asm-generic/unistd.h> mechanism doesn't really provide > enough to create the 64-bit "compat" ABI properly in a generic way, > since the compat ABI is a mix of things were you can re-use the 64-bit > versions of syscalls and things where you need a compat wrapper. > > To provide this in the most direct way possible, I added two new macros > to go along with the existing __SYSCALL and __SC_3264 macros: __SC_COMP > and SC_COMP_3264. These macros take an additional argument, typically a > "compat_sys_xxx" function, which is passed to __SYSCALL if you define > __SYSCALL_COMPAT when including the header, resulting in a pointer to > the compat function being placed in the generated syscall table. > > The change also adds some missing definitions to <linux/compat.h> so that > it actually has declarations for all the compat syscalls, since the > "[nr] = ##call" approach requires proper C declarations for all the > functions included in the syscall table. > > Finally, compat.c defines compat_sys_sigpending() and > compat_sys_sigprocmask() even if the underlying architecture doesn't > request it, which tries to pull in undefined compat_old_sigset_t defines. > We need to guard those compat syscall definitions with appropriate > __ARCH_WANT_SYS_xxx ifdefs. > > Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> > --- > Arnd - let me know if this matches what you had in mind. Thanks!
Looks good to me, yes. It's not exactly what I would have done, but it absolutely makes sense and I can't see any specific disadvantage over the other slightly different approaches.
Acked-by: Arnd Bergmann <arnd@arndb.de>
| |