History

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs

Pull misc fixes from Al Viro: "Loose ends and regressions from the last merge window. Strictly speaking, only binfmt_flat thing is a build regression per se - the rest is 'only sparse cares about that' stuff" [ This came in before the 4.13 release and could have gone there, but it was late in the release and nothing seemed critical enough to care, so I'm pulling it in the 4.14 merge window instead - Linus ] * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: binfmt_flat: fix arch/m32r and arch/microblaze flat_put_addr_at_rp() compat_hdio_ioctl: Fix a declaration <linux/uaccess.h>: Fix copy_in_user() declaration annotate RWF_... flags teach SYSCALL_DEFINE/COMPAT_SYSCALL_DEFINE to handle __bitwise arguments

Linus Torvalds committed 9 years ago

Commit 69c00672 parents 569dbb8 b38e51c12 files · +94 −64Browse files

Showing the changes to include/uapi/linux (2 of 12 files). Show all

Unified · Split

2 files
  1. include/uapi/linux/aio_abi.h +11 −10
  2. include/uapi/linux/fs.h +20 −8
include/uapi/linux/aio_abi.h+11−10
@@ -28,6 +28,7 @@ · 27 unmodified lines
2828 #define __LINUX__AIO_ABI_H
2929
3030 #include <linux/types.h>
31+#include <linux/fs.h>
3132 #include <asm/byteorder.h>
3233
3334 typedef __kernel_ulong_t aio_context_t;
@@ -62,14 +63,6 @@ struct io_event { · 28 unmodified lines
6263 __s64 res2; /* secondary result */
6364 };
6465
65−#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
66−#define PADDED(x,y) x, y
67−#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
68−#define PADDED(x,y) y, x
69−#else
70−#error edit for your odd byteorder.
71−#endif
72−
7366 /*
7467 * we always use a 64bit off_t when communicating
7568 * with userland. its up to libraries to do the
@@ -79,8 +72,16 @@ struct io_event { · 3 unmodified lines
7972 struct iocb {
8073 /* these are internal to the kernel/libc. */
8174 __u64 aio_data; /* data to be returned in event's data */
82− __u32 PADDED(aio_key, aio_rw_flags);
83− /* the kernel sets aio_key to the req # */
75+
76+#if defined(__BYTE_ORDER) ? __BYTE_ORDER == __LITTLE_ENDIAN : defined(__LITTLE_ENDIAN)
77+ __u32 aio_key; /* the kernel sets aio_key to the req # */
78+ __kernel_rwf_t aio_rw_flags; /* RWF_* flags */
79+#elif defined(__BYTE_ORDER) ? __BYTE_ORDER == __BIG_ENDIAN : defined(__BIG_ENDIAN)
80+ __kernel_rwf_t aio_rw_flags; /* RWF_* flags */
81+ __u32 aio_key; /* the kernel sets aio_key to the req # */
82+#else
83+#error edit for your odd byteorder.
84+#endif
8485
8586 /* common fields */
8687 __u16 aio_lio_opcode; /* see IOCB_CMD_ above */
include/uapi/linux/fs.h+20−8
@@ -358,13 +358,25 @@ struct fscrypt_key { · 357 unmodified lines
358358 #define SYNC_FILE_RANGE_WRITE 2
359359 #define SYNC_FILE_RANGE_WAIT_AFTER 4
360360
361−/* flags for preadv2/pwritev2: */
362−#define RWF_HIPRI 0x00000001 /* high priority request, poll if possible */
363−#define RWF_DSYNC 0x00000002 /* per-IO O_DSYNC */
364−#define RWF_SYNC 0x00000004 /* per-IO O_SYNC */
365−#define RWF_NOWAIT 0x00000008 /* per-IO, return -EAGAIN if operation would block */
366−
367−#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC |\
368− RWF_NOWAIT)
361+/*
362+ * Flags for preadv2/pwritev2:
363+ */
364+
365+typedef int __bitwise __kernel_rwf_t;
366+
367+/* high priority request, poll if possible */
368+#define RWF_HIPRI ((__force __kernel_rwf_t)0x00000001)
369+
370+/* per-IO O_DSYNC */
371+#define RWF_DSYNC ((__force __kernel_rwf_t)0x00000002)
372+
373+/* per-IO O_SYNC */
374+#define RWF_SYNC ((__force __kernel_rwf_t)0x00000004)
375+
376+/* per-IO, return -EAGAIN if operation would block */
377+#define RWF_NOWAIT ((__force __kernel_rwf_t)0x00000008)
378+
379+/* mask of flags supported by the kernel */
380+#define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT)
369381
370382 #endif /* _UAPI_LINUX_FS_H */