Resolve merge conflicts from the -rc cycle against the rdma.git tree: Conflicts: drivers/infiniband/core/uverbs_cmd.c - New ifs added to ib_uverbs_ex_create_flow in -rc and for-next - Merge removal of file->ucontext in for-next with new code in -rc drivers/infiniband/core/uverbs_main.c - for-next removed code from ib_uverbs_write() that was modified in for-rc
Showing the changes to include/uapi (10 of 1684 files). Show all
Unified · Split
| @@ -29,7 +29,6 @@ · 28 unmodified lines | ||
| 29 | 29 | |
| 30 | 30 | #include <linux/types.h> |
| 31 | 31 | #include <linux/fs.h> |
| 32 | −#include <linux/signal.h> | |
| 33 | 32 | #include <asm/byteorder.h> |
| 34 | 33 | |
| 35 | 34 | typedef __kernel_ulong_t aio_context_t; |
| @@ -39,8 +38,10 @@ enum { · 3 unmodified lines | ||
| 39 | 38 | IOCB_CMD_PWRITE = 1, |
| 40 | 39 | IOCB_CMD_FSYNC = 2, |
| 41 | 40 | IOCB_CMD_FDSYNC = 3, |
| 42 | − /* 4 was the experimental IOCB_CMD_PREADX */ | |
| 43 | − IOCB_CMD_POLL = 5, | |
| 41 | + /* These two are experimental. | |
| 42 | + * IOCB_CMD_PREADX = 4, | |
| 43 | + * IOCB_CMD_POLL = 5, | |
| 44 | + */ | |
| 44 | 45 | IOCB_CMD_NOOP = 6, |
| 45 | 46 | IOCB_CMD_PREADV = 7, |
| 46 | 47 | IOCB_CMD_PWRITEV = 8, |
| @@ -108,10 +109,5 @@ struct iocb { · 61 unmodified lines | ||
| 108 | 109 | #undef IFBIG |
| 109 | 110 | #undef IFLITTLE |
| 110 | 111 | |
| 111 | −struct __aio_sigset { | |
| 112 | − const sigset_t __user *sigmask; | |
| 113 | − size_t sigsetsize; | |
| 114 | −}; | |
| 115 | − | |
| 116 | 112 | #endif /* __LINUX__AIO_ABI_H */ |
| 117 | 113 | |
| @@ -1857,7 +1857,8 @@ union bpf_attr { · 1856 unmodified lines | ||
| 1857 | 1857 | * is resolved), the nexthop address is returned in ipv4_dst |
| 1858 | 1858 | * or ipv6_dst based on family, smac is set to mac address of |
| 1859 | 1859 | * egress device, dmac is set to nexthop mac address, rt_metric |
| 1860 | − * is set to metric from route (IPv4/IPv6 only). | |
| 1860 | + * is set to metric from route (IPv4/IPv6 only), and ifindex | |
| 1861 | + * is set to the device index of the nexthop from the FIB lookup. | |
| 1861 | 1862 | * |
| 1862 | 1863 | * *plen* argument is the size of the passed in struct. |
| 1863 | 1864 | * *flags* argument can be a combination of one or more of the |
| @@ -1873,9 +1874,10 @@ union bpf_attr { · 9 unmodified lines | ||
| 1873 | 1874 | * *ctx* is either **struct xdp_md** for XDP programs or |
| 1874 | 1875 | * **struct sk_buff** tc cls_act programs. |
| 1875 | 1876 | * Return |
| 1876 | − * Egress device index on success, 0 if packet needs to continue | |
| 1877 | − * up the stack for further processing or a negative error in case | |
| 1878 | − * of failure. | |
| 1877 | + * * < 0 if any input argument is invalid | |
| 1878 | + * * 0 on success (packet is forwarded, nexthop neighbor exists) | |
| 1879 | + * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the | |
| 1880 | + * * packet is not forwarded or needs assist from full stack | |
| 1879 | 1881 | * |
| 1880 | 1882 | * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags) |
| 1881 | 1883 | * Description |
| @@ -2612,6 +2614,18 @@ struct bpf_raw_tracepoint_args { · 730 unmodified lines | ||
| 2612 | 2614 | #define BPF_FIB_LOOKUP_DIRECT BIT(0) |
| 2613 | 2615 | #define BPF_FIB_LOOKUP_OUTPUT BIT(1) |
| 2614 | 2616 | |
| 2617 | +enum { | |
| 2618 | + BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */ | |
| 2619 | + BPF_FIB_LKUP_RET_BLACKHOLE, /* dest is blackholed; can be dropped */ | |
| 2620 | + BPF_FIB_LKUP_RET_UNREACHABLE, /* dest is unreachable; can be dropped */ | |
| 2621 | + BPF_FIB_LKUP_RET_PROHIBIT, /* dest not allowed; can be dropped */ | |
| 2622 | + BPF_FIB_LKUP_RET_NOT_FWDED, /* packet is not forwarded */ | |
| 2623 | + BPF_FIB_LKUP_RET_FWD_DISABLED, /* fwding is not enabled on ingress */ | |
| 2624 | + BPF_FIB_LKUP_RET_UNSUPP_LWT, /* fwd requires encapsulation */ | |
| 2625 | + BPF_FIB_LKUP_RET_NO_NEIGH, /* no neighbor entry for nh */ | |
| 2626 | + BPF_FIB_LKUP_RET_FRAG_NEEDED, /* fragmentation required to fwd */ | |
| 2627 | +}; | |
| 2628 | + | |
| 2615 | 2629 | struct bpf_fib_lookup { |
| 2616 | 2630 | /* input: network family for lookup (AF_INET, AF_INET6) |
| 2617 | 2631 | * output: network family of egress nexthop |
| @@ -2625,7 +2639,11 @@ struct bpf_fib_lookup { · 7 unmodified lines | ||
| 2625 | 2639 | |
| 2626 | 2640 | /* total length of packet from network header - used for MTU check */ |
| 2627 | 2641 | __u16 tot_len; |
| 2628 | − __u32 ifindex; /* L3 device index for lookup */ | |
| 2642 | + | |
| 2643 | + /* input: L3 device index for lookup | |
| 2644 | + * output: device index from FIB lookup | |
| 2645 | + */ | |
| 2646 | + __u32 ifindex; | |
| 2629 | 2647 | |
| 2630 | 2648 | union { |
| 2631 | 2649 | /* inputs to lookup */ |
| @@ -76,7 +76,7 @@ struct btf_type { · 75 unmodified lines | ||
| 76 | 76 | */ |
| 77 | 77 | #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24) |
| 78 | 78 | #define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16) |
| 79 | −#define BTF_INT_BITS(VAL) ((VAL) & 0x0000ffff) | |
| 79 | +#define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff) | |
| 80 | 80 | |
| 81 | 81 | /* Attributes stored in the BTF_INT_ENCODING */ |
| 82 | 82 | #define BTF_INT_SIGNED (1 << 0) |
| @@ -226,7 +226,7 @@ enum tunable_id { · 225 unmodified lines | ||
| 226 | 226 | ETHTOOL_TX_COPYBREAK, |
| 227 | 227 | ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */ |
| 228 | 228 | /* |
| 229 | − * Add your fresh new tubale attribute above and remember to update | |
| 229 | + * Add your fresh new tunable attribute above and remember to update | |
| 230 | 230 | * tunable_strings[] in net/core/ethtool.c |
| 231 | 231 | */ |
| 232 | 232 | __ETHTOOL_TUNABLE_COUNT, |
| @@ -53,6 +53,9 @@ enum { · 52 unmodified lines | ||
| 53 | 53 | /* These are client behavior specific flags. */ |
| 54 | 54 | #define NBD_CFLAG_DESTROY_ON_DISCONNECT (1 << 0) /* delete the nbd device on |
| 55 | 55 | disconnect. */ |
| 56 | +#define NBD_CFLAG_DISCONNECT_ON_CLOSE (1 << 1) /* disconnect the nbd device on | |
| 57 | + * close by last opener. | |
| 58 | + */ | |
| 56 | 59 | |
| 57 | 60 | /* userspace doesn't need the nbd_device structure */ |
| 58 | 61 | |
| @@ -143,6 +143,8 @@ enum perf_event_sample_format { · 142 unmodified lines | ||
| 143 | 143 | PERF_SAMPLE_PHYS_ADDR = 1U << 19, |
| 144 | 144 | |
| 145 | 145 | PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */ |
| 146 | + | |
| 147 | + __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63, | |
| 146 | 148 | }; |
| 147 | 149 | |
| 148 | 150 | /* |
| @@ -10,13 +10,8 @@ · 9 unmodified lines | ||
| 10 | 10 | * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| 11 | 11 | */ |
| 12 | 12 | |
| 13 | −#ifdef __KERNEL__ | |
| 14 | −# include <linux/types.h> | |
| 15 | −#else | |
| 16 | −# include <stdint.h> | |
| 17 | −#endif | |
| 18 | − | |
| 19 | −#include <linux/types_32_64.h> | |
| 13 | +#include <linux/types.h> | |
| 14 | +#include <asm/byteorder.h> | |
| 20 | 15 | |
| 21 | 16 | enum rseq_cpu_id_state { |
| 22 | 17 | RSEQ_CPU_ID_UNINITIALIZED = -1, |
| @@ -52,10 +47,10 @@ struct rseq_cs { · 29 unmodified lines | ||
| 52 | 47 | __u32 version; |
| 53 | 48 | /* enum rseq_cs_flags */ |
| 54 | 49 | __u32 flags; |
| 55 | − LINUX_FIELD_u32_u64(start_ip); | |
| 50 | + __u64 start_ip; | |
| 56 | 51 | /* Offset from start_ip. */ |
| 57 | − LINUX_FIELD_u32_u64(post_commit_offset); | |
| 58 | − LINUX_FIELD_u32_u64(abort_ip); | |
| 52 | + __u64 post_commit_offset; | |
| 53 | + __u64 abort_ip; | |
| 59 | 54 | } __attribute__((aligned(4 * sizeof(__u64)))); |
| 60 | 55 | |
| 61 | 56 | /* |
| @@ -67,28 +62,30 @@ struct rseq_cs { · 5 unmodified lines | ||
| 67 | 62 | struct rseq { |
| 68 | 63 | /* |
| 69 | 64 | * Restartable sequences cpu_id_start field. Updated by the |
| 70 | − * kernel, and read by user-space with single-copy atomicity | |
| 71 | − * semantics. Aligned on 32-bit. Always contains a value in the | |
| 72 | − * range of possible CPUs, although the value may not be the | |
| 73 | − * actual current CPU (e.g. if rseq is not initialized). This | |
| 74 | − * CPU number value should always be compared against the value | |
| 75 | − * of the cpu_id field before performing a rseq commit or | |
| 76 | − * returning a value read from a data structure indexed using | |
| 77 | − * the cpu_id_start value. | |
| 65 | + * kernel. Read by user-space with single-copy atomicity | |
| 66 | + * semantics. This field should only be read by the thread which | |
| 67 | + * registered this data structure. Aligned on 32-bit. Always | |
| 68 | + * contains a value in the range of possible CPUs, although the | |
| 69 | + * value may not be the actual current CPU (e.g. if rseq is not | |
| 70 | + * initialized). This CPU number value should always be compared | |
| 71 | + * against the value of the cpu_id field before performing a rseq | |
| 72 | + * commit or returning a value read from a data structure indexed | |
| 73 | + * using the cpu_id_start value. | |
| 78 | 74 | */ |
| 79 | 75 | __u32 cpu_id_start; |
| 80 | 76 | /* |
| 81 | − * Restartable sequences cpu_id field. Updated by the kernel, | |
| 82 | − * and read by user-space with single-copy atomicity semantics. | |
| 83 | − * Aligned on 32-bit. Values RSEQ_CPU_ID_UNINITIALIZED and | |
| 84 | − * RSEQ_CPU_ID_REGISTRATION_FAILED have a special semantic: the | |
| 85 | − * former means "rseq uninitialized", and latter means "rseq | |
| 86 | − * initialization failed". This value is meant to be read within | |
| 87 | − * rseq critical sections and compared with the cpu_id_start | |
| 88 | − * value previously read, before performing the commit instruction, | |
| 89 | − * or read and compared with the cpu_id_start value before returning | |
| 90 | − * a value loaded from a data structure indexed using the | |
| 91 | − * cpu_id_start value. | |
| 77 | + * Restartable sequences cpu_id field. Updated by the kernel. | |
| 78 | + * Read by user-space with single-copy atomicity semantics. This | |
| 79 | + * field should only be read by the thread which registered this | |
| 80 | + * data structure. Aligned on 32-bit. Values | |
| 81 | + * RSEQ_CPU_ID_UNINITIALIZED and RSEQ_CPU_ID_REGISTRATION_FAILED | |
| 82 | + * have a special semantic: the former means "rseq uninitialized", | |
| 83 | + * and latter means "rseq initialization failed". This value is | |
| 84 | + * meant to be read within rseq critical sections and compared | |
| 85 | + * with the cpu_id_start value previously read, before performing | |
| 86 | + * the commit instruction, or read and compared with the | |
| 87 | + * cpu_id_start value before returning a value loaded from a data | |
| 88 | + * structure indexed using the cpu_id_start value. | |
| 92 | 89 | */ |
| 93 | 90 | __u32 cpu_id; |
| 94 | 91 | /* |
| @@ -105,27 +102,44 @@ struct rseq { · 10 unmodified lines | ||
| 105 | 102 | * targeted by the rseq_cs. Also needs to be set to NULL by user-space |
| 106 | 103 | * before reclaiming memory that contains the targeted struct rseq_cs. |
| 107 | 104 | * |
| 108 | − * Read and set by the kernel with single-copy atomicity semantics. | |
| 109 | − * Set by user-space with single-copy atomicity semantics. Aligned | |
| 110 | − * on 64-bit. | |
| 105 | + * Read and set by the kernel. Set by user-space with single-copy | |
| 106 | + * atomicity semantics. This field should only be updated by the | |
| 107 | + * thread which registered this data structure. Aligned on 64-bit. | |
| 111 | 108 | */ |
| 112 | − LINUX_FIELD_u32_u64(rseq_cs); | |
| 109 | + union { | |
| 110 | + __u64 ptr64; | |
| 111 | +#ifdef __LP64__ | |
| 112 | + __u64 ptr; | |
| 113 | +#else | |
| 114 | + struct { | |
| 115 | +#if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || defined(__BIG_ENDIAN) | |
| 116 | + __u32 padding; /* Initialized to zero. */ | |
| 117 | + __u32 ptr32; | |
| 118 | +#else /* LITTLE */ | |
| 119 | + __u32 ptr32; | |
| 120 | + __u32 padding; /* Initialized to zero. */ | |
| 121 | +#endif /* ENDIAN */ | |
| 122 | + } ptr; | |
| 123 | +#endif | |
| 124 | + } rseq_cs; | |
| 125 | + | |
| 113 | 126 | /* |
| 114 | − * - RSEQ_DISABLE flag: | |
| 127 | + * Restartable sequences flags field. | |
| 128 | + * | |
| 129 | + * This field should only be updated by the thread which | |
| 130 | + * registered this data structure. Read by the kernel. | |
| 131 | + * Mainly used for single-stepping through rseq critical sections | |
| 132 | + * with debuggers. | |
| 115 | 133 | * |
| 116 | − * Fallback fast-track flag for single-stepping. | |
| 117 | − * Set by user-space if lack of progress is detected. | |
| 118 | − * Cleared by user-space after rseq finish. | |
| 119 | − * Read by the kernel. | |
| 120 | 134 | * - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT |
| 121 | − * Inhibit instruction sequence block restart and event | |
| 122 | − * counter increment on preemption for this thread. | |
| 135 | + * Inhibit instruction sequence block restart on preemption | |
| 136 | + * for this thread. | |
| 123 | 137 | * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL |
| 124 | − * Inhibit instruction sequence block restart and event | |
| 125 | − * counter increment on signal delivery for this thread. | |
| 138 | + * Inhibit instruction sequence block restart on signal | |
| 139 | + * delivery for this thread. | |
| 126 | 140 | * - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE |
| 127 | − * Inhibit instruction sequence block restart and event | |
| 128 | − * counter increment on migration for this thread. | |
| 141 | + * Inhibit instruction sequence block restart on migration for | |
| 142 | + * this thread. | |
| 129 | 143 | */ |
| 130 | 144 | __u32 flags; |
| 131 | 145 | } __attribute__((aligned(4 * sizeof(__u64)))); |
| @@ -44,6 +44,7 @@ · 43 unmodified lines | ||
| 44 | 44 | #define TCMU_MAILBOX_VERSION 2 |
| 45 | 45 | #define ALIGN_SIZE 64 /* Should be enough for most CPUs */ |
| 46 | 46 | #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */ |
| 47 | +#define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */ | |
| 47 | 48 | |
| 48 | 49 | struct tcmu_mailbox { |
| 49 | 50 | __u16 version; |
| @@ -71,6 +72,7 @@ struct tcmu_cmd_entry_hdr { · 21 unmodified lines | ||
| 71 | 72 | __u16 cmd_id; |
| 72 | 73 | __u8 kflags; |
| 73 | 74 | #define TCMU_UFLAG_UNKNOWN_OP 0x1 |
| 75 | +#define TCMU_UFLAG_READ_LEN 0x2 | |
| 74 | 76 | __u8 uflags; |
| 75 | 77 | |
| 76 | 78 | } __packed; |
| @@ -119,7 +121,7 @@ struct tcmu_cmd_entry { · 42 unmodified lines | ||
| 119 | 121 | __u8 scsi_status; |
| 120 | 122 | __u8 __pad1; |
| 121 | 123 | __u16 __pad2; |
| 122 | − __u32 __pad3; | |
| 124 | + __u32 read_len; | |
| 123 | 125 | char sense_buffer[TCMU_SENSE_BUFFERSIZE]; |
| 124 | 126 | } rsp; |
| 125 | 127 | }; |
| @@ -127,6 +127,10 @@ enum { · 126 unmodified lines | ||
| 127 | 127 | |
| 128 | 128 | #define TCP_CM_INQ TCP_INQ |
| 129 | 129 | |
| 130 | +#define TCP_REPAIR_ON 1 | |
| 131 | +#define TCP_REPAIR_OFF 0 | |
| 132 | +#define TCP_REPAIR_OFF_NO_WP -1 /* Turn off without window probes */ | |
| 133 | + | |
| 130 | 134 | struct tcp_repair_opt { |
| 131 | 135 | __u32 opt_code; |
| 132 | 136 | __u32 opt_val; |
| @@ -1,50 +0,0 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ | |
| 2 | −#ifndef _UAPI_LINUX_TYPES_32_64_H | |
| 3 | −#define _UAPI_LINUX_TYPES_32_64_H | |
| 4 | − | |
| 5 | −/* | |
| 6 | − * linux/types_32_64.h | |
| 7 | − * | |
| 8 | − * Integer type declaration for pointers across 32-bit and 64-bit systems. | |
| 9 | − * | |
| 10 | − * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | |
| 11 | − */ | |
| 12 | − | |
| 13 | −#ifdef __KERNEL__ | |
| 14 | −# include <linux/types.h> | |
| 15 | −#else | |
| 16 | −# include <stdint.h> | |
| 17 | −#endif | |
| 18 | − | |
| 19 | −#include <asm/byteorder.h> | |
| 20 | − | |
| 21 | −#ifdef __BYTE_ORDER | |
| 22 | −# if (__BYTE_ORDER == __BIG_ENDIAN) | |
| 23 | −# define LINUX_BYTE_ORDER_BIG_ENDIAN | |
| 24 | −# else | |
| 25 | −# define LINUX_BYTE_ORDER_LITTLE_ENDIAN | |
| 26 | −# endif | |
| 27 | −#else | |
| 28 | −# ifdef __BIG_ENDIAN | |
| 29 | −# define LINUX_BYTE_ORDER_BIG_ENDIAN | |
| 30 | −# else | |
| 31 | −# define LINUX_BYTE_ORDER_LITTLE_ENDIAN | |
| 32 | −# endif | |
| 33 | −#endif | |
| 34 | − | |
| 35 | −#ifdef __LP64__ | |
| 36 | −# define LINUX_FIELD_u32_u64(field) __u64 field | |
| 37 | −# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) field = (intptr_t)v | |
| 38 | −#else | |
| 39 | −# ifdef LINUX_BYTE_ORDER_BIG_ENDIAN | |
| 40 | −# define LINUX_FIELD_u32_u64(field) __u32 field ## _padding, field | |
| 41 | −# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \ | |
| 42 | − field ## _padding = 0, field = (intptr_t)v | |
| 43 | −# else | |
| 44 | −# define LINUX_FIELD_u32_u64(field) __u32 field, field ## _padding | |
| 45 | −# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \ | |
| 46 | − field = (intptr_t)v, field ## _padding = 0 | |
| 47 | −# endif | |
| 48 | −#endif | |
| 49 | − | |
| 50 | −#endif /* _UAPI_LINUX_TYPES_32_64_H */ | |