compat: provide compat_ptr() on all architectures
In order to avoid needless #ifdef CONFIG_COMPAT checks, move the compat_ptr() definition to linux/compat.h where it can be seen by any file regardless of the architecture. Only s390 needs a special definition, this can use the self-#define trick we have elsewhere. Reviewed-by: Ben Hutchings <ben.hutchings@codethink.co.uk> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
parent
556d687a4c
commit
202bf8d758
9 changed files with 20 additions and 109 deletions
|
|
@ -958,4 +958,22 @@ static inline bool in_compat_syscall(void) { return false; }
|
|||
|
||||
#endif /* CONFIG_COMPAT */
|
||||
|
||||
/*
|
||||
* A pointer passed in from user mode. This should not
|
||||
* be used for syscall parameters, just declare them
|
||||
* as pointers because the syscall entry code will have
|
||||
* appropriately converted them already.
|
||||
*/
|
||||
#ifndef compat_ptr
|
||||
static inline void __user *compat_ptr(compat_uptr_t uptr)
|
||||
{
|
||||
return (void __user *)(unsigned long)uptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline compat_uptr_t ptr_to_compat(void __user *uptr)
|
||||
{
|
||||
return (u32)(unsigned long)uptr;
|
||||
}
|
||||
|
||||
#endif /* _LINUX_COMPAT_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue