diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-10-12 16:37:13 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-10-12 16:37:13 -0700 |
commit | e18afa5bfa4a2f0e07b0864370485df701dacbc1 (patch) | |
tree | ba2ad24758dccd2d34b7f5df4326c175c7beb7b0 /include | |
parent | 85ed13e78dbedf9433115a62c85429922bc5035c (diff) | |
parent | 80bdad3d7e3ec03f812471d9309f5f682e10f52b (diff) |
Merge branch 'work.quota-compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull compat quotactl cleanups from Al Viro:
"More Christoph's compat cleanups: quotactl(2)"
* 'work.quota-compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
quota: simplify the quotactl compat handling
compat: add a compat_need_64bit_alignment_fixup() helper
compat: lift compat_s64 and compat_u64 to <asm-generic/compat.h>
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...) \ |