diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/compat.h | 8 | ||||
-rw-r--r-- | include/linux/compat.h | 9 | ||||
-rw-r--r-- | include/linux/quotaops.h | 3 |
3 files changed, 17 insertions, 3 deletions
diff --git a/include/asm-generic/compat.h b/include/asm-generic/compat.h index a86f65bffab8..30f7b18a36f9 100644 --- a/include/asm-generic/compat.h +++ b/include/asm-generic/compat.h @@ -22,4 +22,12 @@ typedef u32 compat_ulong_t; typedef u32 compat_uptr_t; typedef u32 compat_aio_context_t; +#ifdef CONFIG_COMPAT_FOR_U64_ALIGNMENT +typedef s64 __attribute__((aligned(4))) compat_s64; +typedef u64 __attribute__((aligned(4))) compat_u64; +#else +typedef s64 compat_s64; +typedef u64 compat_u64; +#endif + #endif diff --git a/include/linux/compat.h b/include/linux/compat.h index 59b8c8544ae6..34c48eb1e773 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h @@ -911,6 +911,15 @@ static inline bool in_compat_syscall(void) { return false; } #endif /* CONFIG_COMPAT */ /* + * Some legacy ABIs like the i386 one use less than natural alignment for 64-bit + * types, and will need special compat treatment for that. Most architectures + * don't need that special handling even for compat syscalls. + */ +#ifndef compat_need_64bit_alignment_fixup +#define compat_need_64bit_alignment_fixup() false +#endif + +/* * 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 diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index 9cf0cd3dc88c..a0f6668924d3 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h @@ -27,9 +27,6 @@ static inline bool is_quota_modification(struct inode *inode, struct iattr *ia) (ia->ia_valid & ATTR_GID && !gid_eq(ia->ia_gid, inode->i_gid)); } -int kernel_quotactl(unsigned int cmd, const char __user *special, - qid_t id, void __user *addr); - #if defined(CONFIG_QUOTA) #define quota_error(sb, fmt, args...) \ |