aboutsummaryrefslogtreecommitdiffstats
path: root/include/uapi/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/uapi/linux')
-rw-r--r--include/uapi/linux/Kbuild2
-rw-r--r--include/uapi/linux/audit.h8
-rw-r--r--include/uapi/linux/bpf.h29
-rw-r--r--include/uapi/linux/dlm_device.h2
-rw-r--r--include/uapi/linux/dm-ioctl.h4
-rw-r--r--include/uapi/linux/elf-em.h2
-rw-r--r--include/uapi/linux/ethtool.h5
-rw-r--r--include/uapi/linux/fib_rules.h2
-rw-r--r--include/uapi/linux/gsmmux.h1
-rw-r--r--include/uapi/linux/if_bridge.h1
-rw-r--r--include/uapi/linux/if_link.h16
-rw-r--r--include/uapi/linux/if_packet.h3
-rw-r--r--include/uapi/linux/if_tunnel.h1
-rw-r--r--include/uapi/linux/ila.h15
-rw-r--r--include/uapi/linux/ip_vs.h5
-rw-r--r--include/uapi/linux/ipv6.h3
-rw-r--r--include/uapi/linux/kvm.h2
-rw-r--r--include/uapi/linux/lwtunnel.h47
-rw-r--r--include/uapi/linux/mei.h19
-rw-r--r--include/uapi/linux/mpls.h2
-rw-r--r--include/uapi/linux/mpls_iptunnel.h28
-rw-r--r--include/uapi/linux/ndctl.h12
-rw-r--r--include/uapi/linux/neighbour.h1
-rw-r--r--include/uapi/linux/netconf.h1
-rw-r--r--include/uapi/linux/netfilter/nf_conntrack_sctp.h2
-rw-r--r--include/uapi/linux/netfilter/nf_tables.h23
-rw-r--r--include/uapi/linux/netfilter/nfnetlink_conntrack.h1
-rw-r--r--include/uapi/linux/netfilter/nfnetlink_cttimeout.h2
-rw-r--r--include/uapi/linux/netfilter/xt_CT.h8
-rw-r--r--include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h4
-rw-r--r--include/uapi/linux/netlink.h1
-rw-r--r--include/uapi/linux/nfs4.h2
-rw-r--r--include/uapi/linux/nfsacl.h1
-rw-r--r--include/uapi/linux/nvme.h1
-rw-r--r--include/uapi/linux/openvswitch.h60
-rw-r--r--include/uapi/linux/pci_regs.h1
-rw-r--r--include/uapi/linux/perf_event.h35
-rw-r--r--include/uapi/linux/prctl.h7
-rw-r--r--include/uapi/linux/ptrace.h6
-rw-r--r--include/uapi/linux/rtnetlink.h13
-rw-r--r--include/uapi/linux/securebits.h11
-rw-r--r--include/uapi/linux/snmp.h2
-rw-r--r--include/uapi/linux/toshiba.h32
-rw-r--r--include/uapi/linux/usb/ch9.h12
-rw-r--r--include/uapi/linux/userfaultfd.h169
-rw-r--r--include/uapi/linux/v4l2-controls.h4
-rw-r--r--include/uapi/linux/virtio_net.h16
-rw-r--r--include/uapi/linux/virtio_pci.h6
-rw-r--r--include/uapi/linux/virtio_ring.h5
-rw-r--r--include/uapi/linux/vsp1.h2
50 files changed, 613 insertions, 24 deletions
diff --git a/include/uapi/linux/Kbuild b/include/uapi/linux/Kbuild
index 1ff9942718fe..70ff1d9abf0d 100644
--- a/include/uapi/linux/Kbuild
+++ b/include/uapi/linux/Kbuild
@@ -243,6 +243,7 @@ header-y += limits.h
243header-y += llc.h 243header-y += llc.h
244header-y += loop.h 244header-y += loop.h
245header-y += lp.h 245header-y += lp.h
246header-y += lwtunnel.h
246header-y += magic.h 247header-y += magic.h
247header-y += major.h 248header-y += major.h
248header-y += map_to_7segment.h 249header-y += map_to_7segment.h
@@ -455,3 +456,4 @@ header-y += xfrm.h
455header-y += xilinx-v4l2-controls.h 456header-y += xilinx-v4l2-controls.h
456header-y += zorro.h 457header-y += zorro.h
457header-y += zorro_ids.h 458header-y += zorro_ids.h
459header-y += userfaultfd.h
diff --git a/include/uapi/linux/audit.h b/include/uapi/linux/audit.h
index d3475e1f15ec..843540c398eb 100644
--- a/include/uapi/linux/audit.h
+++ b/include/uapi/linux/audit.h
@@ -266,6 +266,7 @@
266#define AUDIT_OBJ_UID 109 266#define AUDIT_OBJ_UID 109
267#define AUDIT_OBJ_GID 110 267#define AUDIT_OBJ_GID 110
268#define AUDIT_FIELD_COMPARE 111 268#define AUDIT_FIELD_COMPARE 111
269#define AUDIT_EXE 112
269 270
270#define AUDIT_ARG0 200 271#define AUDIT_ARG0 200
271#define AUDIT_ARG1 (AUDIT_ARG0+1) 272#define AUDIT_ARG1 (AUDIT_ARG0+1)
@@ -324,8 +325,10 @@ enum {
324 325
325#define AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT 0x00000001 326#define AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT 0x00000001
326#define AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME 0x00000002 327#define AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME 0x00000002
328#define AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH 0x00000004
327#define AUDIT_FEATURE_BITMAP_ALL (AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT | \ 329#define AUDIT_FEATURE_BITMAP_ALL (AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT | \
328 AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME) 330 AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME | \
331 AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH)
329 332
330/* deprecated: AUDIT_VERSION_* */ 333/* deprecated: AUDIT_VERSION_* */
331#define AUDIT_VERSION_LATEST AUDIT_FEATURE_BITMAP_ALL 334#define AUDIT_VERSION_LATEST AUDIT_FEATURE_BITMAP_ALL
@@ -382,6 +385,9 @@ enum {
382#define AUDIT_ARCH_SHEL64 (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) 385#define AUDIT_ARCH_SHEL64 (EM_SH|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
383#define AUDIT_ARCH_SPARC (EM_SPARC) 386#define AUDIT_ARCH_SPARC (EM_SPARC)
384#define AUDIT_ARCH_SPARC64 (EM_SPARCV9|__AUDIT_ARCH_64BIT) 387#define AUDIT_ARCH_SPARC64 (EM_SPARCV9|__AUDIT_ARCH_64BIT)
388#define AUDIT_ARCH_TILEGX (EM_TILEGX|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
389#define AUDIT_ARCH_TILEGX32 (EM_TILEGX|__AUDIT_ARCH_LE)
390#define AUDIT_ARCH_TILEPRO (EM_TILEPRO|__AUDIT_ARCH_LE)
385#define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE) 391#define AUDIT_ARCH_X86_64 (EM_X86_64|__AUDIT_ARCH_64BIT|__AUDIT_ARCH_LE)
386 392
387#define AUDIT_PERM_EXEC 1 393#define AUDIT_PERM_EXEC 1
diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 29ef6f99e43d..92a48e2d5461 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -114,6 +114,7 @@ enum bpf_map_type {
114 BPF_MAP_TYPE_HASH, 114 BPF_MAP_TYPE_HASH,
115 BPF_MAP_TYPE_ARRAY, 115 BPF_MAP_TYPE_ARRAY,
116 BPF_MAP_TYPE_PROG_ARRAY, 116 BPF_MAP_TYPE_PROG_ARRAY,
117 BPF_MAP_TYPE_PERF_EVENT_ARRAY,
117}; 118};
118 119
119enum bpf_prog_type { 120enum bpf_prog_type {
@@ -249,6 +250,28 @@ enum bpf_func_id {
249 * Return: 0 on success 250 * Return: 0 on success
250 */ 251 */
251 BPF_FUNC_get_current_comm, 252 BPF_FUNC_get_current_comm,
253
254 /**
255 * bpf_get_cgroup_classid(skb) - retrieve a proc's classid
256 * @skb: pointer to skb
257 * Return: classid if != 0
258 */
259 BPF_FUNC_get_cgroup_classid,
260 BPF_FUNC_skb_vlan_push, /* bpf_skb_vlan_push(skb, vlan_proto, vlan_tci) */
261 BPF_FUNC_skb_vlan_pop, /* bpf_skb_vlan_pop(skb) */
262
263 /**
264 * bpf_skb_[gs]et_tunnel_key(skb, key, size, flags)
265 * retrieve or populate tunnel metadata
266 * @skb: pointer to skb
267 * @key: pointer to 'struct bpf_tunnel_key'
268 * @size: size of 'struct bpf_tunnel_key'
269 * @flags: room for future extensions
270 * Retrun: 0 on success
271 */
272 BPF_FUNC_skb_get_tunnel_key,
273 BPF_FUNC_skb_set_tunnel_key,
274 BPF_FUNC_perf_event_read, /* u64 bpf_perf_event_read(&map, index) */
252 __BPF_FUNC_MAX_ID, 275 __BPF_FUNC_MAX_ID,
253}; 276};
254 277
@@ -269,6 +292,12 @@ struct __sk_buff {
269 __u32 ifindex; 292 __u32 ifindex;
270 __u32 tc_index; 293 __u32 tc_index;
271 __u32 cb[5]; 294 __u32 cb[5];
295 __u32 hash;
296};
297
298struct bpf_tunnel_key {
299 __u32 tunnel_id;
300 __u32 remote_ipv4;
272}; 301};
273 302
274#endif /* _UAPI__LINUX_BPF_H__ */ 303#endif /* _UAPI__LINUX_BPF_H__ */
diff --git a/include/uapi/linux/dlm_device.h b/include/uapi/linux/dlm_device.h
index 3060783c4191..df56c8ff0769 100644
--- a/include/uapi/linux/dlm_device.h
+++ b/include/uapi/linux/dlm_device.h
@@ -26,7 +26,7 @@
26/* Version of the device interface */ 26/* Version of the device interface */
27#define DLM_DEVICE_VERSION_MAJOR 6 27#define DLM_DEVICE_VERSION_MAJOR 6
28#define DLM_DEVICE_VERSION_MINOR 0 28#define DLM_DEVICE_VERSION_MINOR 0
29#define DLM_DEVICE_VERSION_PATCH 1 29#define DLM_DEVICE_VERSION_PATCH 2
30 30
31/* struct passed to the lock write */ 31/* struct passed to the lock write */
32struct dlm_lock_params { 32struct dlm_lock_params {
diff --git a/include/uapi/linux/dm-ioctl.h b/include/uapi/linux/dm-ioctl.h
index 061aca3a962d..d34611e35a30 100644
--- a/include/uapi/linux/dm-ioctl.h
+++ b/include/uapi/linux/dm-ioctl.h
@@ -267,9 +267,9 @@ enum {
267#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) 267#define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
268 268
269#define DM_VERSION_MAJOR 4 269#define DM_VERSION_MAJOR 4
270#define DM_VERSION_MINOR 32 270#define DM_VERSION_MINOR 33
271#define DM_VERSION_PATCHLEVEL 0 271#define DM_VERSION_PATCHLEVEL 0
272#define DM_VERSION_EXTRA "-ioctl (2015-6-26)" 272#define DM_VERSION_EXTRA "-ioctl (2015-8-18)"
273 273
274/* Status bits */ 274/* Status bits */
275#define DM_READONLY_FLAG (1 << 0) /* In/Out */ 275#define DM_READONLY_FLAG (1 << 0) /* In/Out */
diff --git a/include/uapi/linux/elf-em.h b/include/uapi/linux/elf-em.h
index b08829667ed7..3429a3ba382b 100644
--- a/include/uapi/linux/elf-em.h
+++ b/include/uapi/linux/elf-em.h
@@ -38,6 +38,8 @@
38#define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */ 38#define EM_ALTERA_NIOS2 113 /* Altera Nios II soft-core processor */
39#define EM_TI_C6000 140 /* TI C6X DSPs */ 39#define EM_TI_C6000 140 /* TI C6X DSPs */
40#define EM_AARCH64 183 /* ARM 64 bit */ 40#define EM_AARCH64 183 /* ARM 64 bit */
41#define EM_TILEPRO 188 /* Tilera TILEPro */
42#define EM_TILEGX 191 /* Tilera TILE-Gx */
41#define EM_FRV 0x5441 /* Fujitsu FR-V */ 43#define EM_FRV 0x5441 /* Fujitsu FR-V */
42#define EM_AVR32 0x18ad /* Atmel AVR32 */ 44#define EM_AVR32 0x18ad /* Atmel AVR32 */
43 45
diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h
index cd67aec187d9..cd1629170103 100644
--- a/include/uapi/linux/ethtool.h
+++ b/include/uapi/linux/ethtool.h
@@ -1093,6 +1093,11 @@ struct ethtool_sfeatures {
1093 * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values, 1093 * the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values,
1094 * respectively. For example, if the device supports HWTSTAMP_TX_ON, 1094 * respectively. For example, if the device supports HWTSTAMP_TX_ON,
1095 * then (1 << HWTSTAMP_TX_ON) in 'tx_types' will be set. 1095 * then (1 << HWTSTAMP_TX_ON) in 'tx_types' will be set.
1096 *
1097 * Drivers should only report the filters they actually support without
1098 * upscaling in the SIOCSHWTSTAMP ioctl. If the SIOCSHWSTAMP request for
1099 * HWTSTAMP_FILTER_V1_SYNC is supported by HWTSTAMP_FILTER_V1_EVENT, then the
1100 * driver should only report HWTSTAMP_FILTER_V1_EVENT in this op.
1096 */ 1101 */
1097struct ethtool_ts_info { 1102struct ethtool_ts_info {
1098 __u32 cmd; 1103 __u32 cmd;
diff --git a/include/uapi/linux/fib_rules.h b/include/uapi/linux/fib_rules.h
index 2b82d7e30974..96161b8202b5 100644
--- a/include/uapi/linux/fib_rules.h
+++ b/include/uapi/linux/fib_rules.h
@@ -43,7 +43,7 @@ enum {
43 FRA_UNUSED5, 43 FRA_UNUSED5,
44 FRA_FWMARK, /* mark */ 44 FRA_FWMARK, /* mark */
45 FRA_FLOW, /* flow/class id */ 45 FRA_FLOW, /* flow/class id */
46 FRA_UNUSED6, 46 FRA_TUN_ID,
47 FRA_SUPPRESS_IFGROUP, 47 FRA_SUPPRESS_IFGROUP,
48 FRA_SUPPRESS_PREFIXLEN, 48 FRA_SUPPRESS_PREFIXLEN,
49 FRA_TABLE, /* Extended table id */ 49 FRA_TABLE, /* Extended table id */
diff --git a/include/uapi/linux/gsmmux.h b/include/uapi/linux/gsmmux.h
index c06742d52856..ab055d8cddef 100644
--- a/include/uapi/linux/gsmmux.h
+++ b/include/uapi/linux/gsmmux.h
@@ -3,6 +3,7 @@
3 3
4#include <linux/if.h> 4#include <linux/if.h>
5#include <linux/ioctl.h> 5#include <linux/ioctl.h>
6#include <linux/types.h>
6 7
7struct gsm_config 8struct gsm_config
8{ 9{
diff --git a/include/uapi/linux/if_bridge.h b/include/uapi/linux/if_bridge.h
index eaaea6208b42..3635b7797508 100644
--- a/include/uapi/linux/if_bridge.h
+++ b/include/uapi/linux/if_bridge.h
@@ -182,6 +182,7 @@ struct br_mdb_entry {
182#define MDB_TEMPORARY 0 182#define MDB_TEMPORARY 0
183#define MDB_PERMANENT 1 183#define MDB_PERMANENT 1
184 __u8 state; 184 __u8 state;
185 __u16 vid;
185 struct { 186 struct {
186 union { 187 union {
187 __be32 ip4; 188 __be32 ip4;
diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h
index 2c7e8e3d3981..3a5f263cfc2f 100644
--- a/include/uapi/linux/if_link.h
+++ b/include/uapi/linux/if_link.h
@@ -148,6 +148,7 @@ enum {
148 IFLA_PHYS_SWITCH_ID, 148 IFLA_PHYS_SWITCH_ID,
149 IFLA_LINK_NETNSID, 149 IFLA_LINK_NETNSID,
150 IFLA_PHYS_PORT_NAME, 150 IFLA_PHYS_PORT_NAME,
151 IFLA_PROTO_DOWN,
151 __IFLA_MAX 152 __IFLA_MAX
152}; 153};
153 154
@@ -229,6 +230,8 @@ enum {
229 IFLA_BR_AGEING_TIME, 230 IFLA_BR_AGEING_TIME,
230 IFLA_BR_STP_STATE, 231 IFLA_BR_STP_STATE,
231 IFLA_BR_PRIORITY, 232 IFLA_BR_PRIORITY,
233 IFLA_BR_VLAN_FILTERING,
234 IFLA_BR_VLAN_PROTOCOL,
232 __IFLA_BR_MAX, 235 __IFLA_BR_MAX,
233}; 236};
234 237
@@ -339,6 +342,15 @@ enum macvlan_macaddr_mode {
339 342
340#define MACVLAN_FLAG_NOPROMISC 1 343#define MACVLAN_FLAG_NOPROMISC 1
341 344
345/* VRF section */
346enum {
347 IFLA_VRF_UNSPEC,
348 IFLA_VRF_TABLE,
349 __IFLA_VRF_MAX
350};
351
352#define IFLA_VRF_MAX (__IFLA_VRF_MAX - 1)
353
342/* IPVLAN section */ 354/* IPVLAN section */
343enum { 355enum {
344 IFLA_IPVLAN_UNSPEC, 356 IFLA_IPVLAN_UNSPEC,
@@ -381,6 +393,7 @@ enum {
381 IFLA_VXLAN_REMCSUM_RX, 393 IFLA_VXLAN_REMCSUM_RX,
382 IFLA_VXLAN_GBP, 394 IFLA_VXLAN_GBP,
383 IFLA_VXLAN_REMCSUM_NOPARTIAL, 395 IFLA_VXLAN_REMCSUM_NOPARTIAL,
396 IFLA_VXLAN_COLLECT_METADATA,
384 __IFLA_VXLAN_MAX 397 __IFLA_VXLAN_MAX
385}; 398};
386#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) 399#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
@@ -397,6 +410,8 @@ enum {
397 IFLA_GENEVE_REMOTE, 410 IFLA_GENEVE_REMOTE,
398 IFLA_GENEVE_TTL, 411 IFLA_GENEVE_TTL,
399 IFLA_GENEVE_TOS, 412 IFLA_GENEVE_TOS,
413 IFLA_GENEVE_PORT, /* destination port */
414 IFLA_GENEVE_COLLECT_METADATA,
400 __IFLA_GENEVE_MAX 415 __IFLA_GENEVE_MAX
401}; 416};
402#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1) 417#define IFLA_GENEVE_MAX (__IFLA_GENEVE_MAX - 1)
@@ -431,6 +446,7 @@ enum {
431 IFLA_BOND_AD_ACTOR_SYS_PRIO, 446 IFLA_BOND_AD_ACTOR_SYS_PRIO,
432 IFLA_BOND_AD_USER_PORT_KEY, 447 IFLA_BOND_AD_USER_PORT_KEY,
433 IFLA_BOND_AD_ACTOR_SYSTEM, 448 IFLA_BOND_AD_ACTOR_SYSTEM,
449 IFLA_BOND_TLB_DYNAMIC_LB,
434 __IFLA_BOND_MAX, 450 __IFLA_BOND_MAX,
435}; 451};
436 452
diff --git a/include/uapi/linux/if_packet.h b/include/uapi/linux/if_packet.h
index d3d715f8c88f..9e7edfd8141e 100644
--- a/include/uapi/linux/if_packet.h
+++ b/include/uapi/linux/if_packet.h
@@ -55,6 +55,7 @@ struct sockaddr_ll {
55#define PACKET_TX_HAS_OFF 19 55#define PACKET_TX_HAS_OFF 19
56#define PACKET_QDISC_BYPASS 20 56#define PACKET_QDISC_BYPASS 20
57#define PACKET_ROLLOVER_STATS 21 57#define PACKET_ROLLOVER_STATS 21
58#define PACKET_FANOUT_DATA 22
58 59
59#define PACKET_FANOUT_HASH 0 60#define PACKET_FANOUT_HASH 0
60#define PACKET_FANOUT_LB 1 61#define PACKET_FANOUT_LB 1
@@ -62,6 +63,8 @@ struct sockaddr_ll {
62#define PACKET_FANOUT_ROLLOVER 3 63#define PACKET_FANOUT_ROLLOVER 3
63#define PACKET_FANOUT_RND 4 64#define PACKET_FANOUT_RND 4
64#define PACKET_FANOUT_QM 5 65#define PACKET_FANOUT_QM 5
66#define PACKET_FANOUT_CBPF 6
67#define PACKET_FANOUT_EBPF 7
65#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 68#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000
66#define PACKET_FANOUT_FLAG_DEFRAG 0x8000 69#define PACKET_FANOUT_FLAG_DEFRAG 0x8000
67 70
diff --git a/include/uapi/linux/if_tunnel.h b/include/uapi/linux/if_tunnel.h
index bd3cc11a431f..af4de90ba27d 100644
--- a/include/uapi/linux/if_tunnel.h
+++ b/include/uapi/linux/if_tunnel.h
@@ -112,6 +112,7 @@ enum {
112 IFLA_GRE_ENCAP_FLAGS, 112 IFLA_GRE_ENCAP_FLAGS,
113 IFLA_GRE_ENCAP_SPORT, 113 IFLA_GRE_ENCAP_SPORT,
114 IFLA_GRE_ENCAP_DPORT, 114 IFLA_GRE_ENCAP_DPORT,
115 IFLA_GRE_COLLECT_METADATA,
115 __IFLA_GRE_MAX, 116 __IFLA_GRE_MAX,
116}; 117};
117 118
diff --git a/include/uapi/linux/ila.h b/include/uapi/linux/ila.h
new file mode 100644
index 000000000000..7ed9e670814e
--- /dev/null
+++ b/include/uapi/linux/ila.h
@@ -0,0 +1,15 @@
1/* ila.h - ILA Interface */
2
3#ifndef _UAPI_LINUX_ILA_H
4#define _UAPI_LINUX_ILA_H
5
6enum {
7 ILA_ATTR_UNSPEC,
8 ILA_ATTR_LOCATOR, /* u64 */
9
10 __ILA_ATTR_MAX,
11};
12
13#define ILA_ATTR_MAX (__ILA_ATTR_MAX - 1)
14
15#endif /* _UAPI_LINUX_ILA_H */
diff --git a/include/uapi/linux/ip_vs.h b/include/uapi/linux/ip_vs.h
index 3199243f2028..391395c06c7e 100644
--- a/include/uapi/linux/ip_vs.h
+++ b/include/uapi/linux/ip_vs.h
@@ -406,6 +406,11 @@ enum {
406 IPVS_DAEMON_ATTR_STATE, /* sync daemon state (master/backup) */ 406 IPVS_DAEMON_ATTR_STATE, /* sync daemon state (master/backup) */
407 IPVS_DAEMON_ATTR_MCAST_IFN, /* multicast interface name */ 407 IPVS_DAEMON_ATTR_MCAST_IFN, /* multicast interface name */
408 IPVS_DAEMON_ATTR_SYNC_ID, /* SyncID we belong to */ 408 IPVS_DAEMON_ATTR_SYNC_ID, /* SyncID we belong to */
409 IPVS_DAEMON_ATTR_SYNC_MAXLEN, /* UDP Payload Size */
410 IPVS_DAEMON_ATTR_MCAST_GROUP, /* IPv4 Multicast Address */
411 IPVS_DAEMON_ATTR_MCAST_GROUP6, /* IPv6 Multicast Address */
412 IPVS_DAEMON_ATTR_MCAST_PORT, /* Multicast Port (base) */
413 IPVS_DAEMON_ATTR_MCAST_TTL, /* Multicast TTL */
409 __IPVS_DAEMON_ATTR_MAX, 414 __IPVS_DAEMON_ATTR_MAX,
410}; 415};
411 416
diff --git a/include/uapi/linux/ipv6.h b/include/uapi/linux/ipv6.h
index 5efa54ae567c..38b4fef20219 100644
--- a/include/uapi/linux/ipv6.h
+++ b/include/uapi/linux/ipv6.h
@@ -171,6 +171,9 @@ enum {
171 DEVCONF_USE_OPTIMISTIC, 171 DEVCONF_USE_OPTIMISTIC,
172 DEVCONF_ACCEPT_RA_MTU, 172 DEVCONF_ACCEPT_RA_MTU,
173 DEVCONF_STABLE_SECRET, 173 DEVCONF_STABLE_SECRET,
174 DEVCONF_USE_OIF_ADDRS_ONLY,
175 DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT,
176 DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
174 DEVCONF_MAX 177 DEVCONF_MAX
175}; 178};
176 179
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h
index 716ad4ae4d4b..0d831f94f8a8 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -317,6 +317,7 @@ struct kvm_run {
317 struct { 317 struct {
318#define KVM_SYSTEM_EVENT_SHUTDOWN 1 318#define KVM_SYSTEM_EVENT_SHUTDOWN 1
319#define KVM_SYSTEM_EVENT_RESET 2 319#define KVM_SYSTEM_EVENT_RESET 2
320#define KVM_SYSTEM_EVENT_CRASH 3
320 __u32 type; 321 __u32 type;
321 __u64 flags; 322 __u64 flags;
322 } system_event; 323 } system_event;
@@ -481,6 +482,7 @@ struct kvm_s390_psw {
481 ((ai) << 26)) 482 ((ai) << 26))
482#define KVM_S390_INT_IO_MIN 0x00000000u 483#define KVM_S390_INT_IO_MIN 0x00000000u
483#define KVM_S390_INT_IO_MAX 0xfffdffffu 484#define KVM_S390_INT_IO_MAX 0xfffdffffu
485#define KVM_S390_INT_IO_AI_MASK 0x04000000u
484 486
485 487
486struct kvm_s390_interrupt { 488struct kvm_s390_interrupt {
diff --git a/include/uapi/linux/lwtunnel.h b/include/uapi/linux/lwtunnel.h
new file mode 100644
index 000000000000..34141a5dfe74
--- /dev/null
+++ b/include/uapi/linux/lwtunnel.h
@@ -0,0 +1,47 @@
1#ifndef _UAPI_LWTUNNEL_H_
2#define _UAPI_LWTUNNEL_H_
3
4#include <linux/types.h>
5
6enum lwtunnel_encap_types {
7 LWTUNNEL_ENCAP_NONE,
8 LWTUNNEL_ENCAP_MPLS,
9 LWTUNNEL_ENCAP_IP,
10 LWTUNNEL_ENCAP_ILA,
11 LWTUNNEL_ENCAP_IP6,
12 __LWTUNNEL_ENCAP_MAX,
13};
14
15#define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
16
17enum lwtunnel_ip_t {
18 LWTUNNEL_IP_UNSPEC,
19 LWTUNNEL_IP_ID,
20 LWTUNNEL_IP_DST,
21 LWTUNNEL_IP_SRC,
22 LWTUNNEL_IP_TTL,
23 LWTUNNEL_IP_TOS,
24 LWTUNNEL_IP_SPORT,
25 LWTUNNEL_IP_DPORT,
26 LWTUNNEL_IP_FLAGS,
27 __LWTUNNEL_IP_MAX,
28};
29
30#define LWTUNNEL_IP_MAX (__LWTUNNEL_IP_MAX - 1)
31
32enum lwtunnel_ip6_t {
33 LWTUNNEL_IP6_UNSPEC,
34 LWTUNNEL_IP6_ID,
35 LWTUNNEL_IP6_DST,
36 LWTUNNEL_IP6_SRC,
37 LWTUNNEL_IP6_HOPLIMIT,
38 LWTUNNEL_IP6_TC,
39 LWTUNNEL_IP6_SPORT,
40 LWTUNNEL_IP6_DPORT,
41 LWTUNNEL_IP6_FLAGS,
42 __LWTUNNEL_IP6_MAX,
43};
44
45#define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
46
47#endif /* _UAPI_LWTUNNEL_H_ */
diff --git a/include/uapi/linux/mei.h b/include/uapi/linux/mei.h
index bc0d8b69c49e..7c3b64f6a215 100644
--- a/include/uapi/linux/mei.h
+++ b/include/uapi/linux/mei.h
@@ -107,4 +107,23 @@ struct mei_connect_client_data {
107 }; 107 };
108}; 108};
109 109
110/**
111 * DOC: set and unset event notification for a connected client
112 *
113 * The IOCTL argument is 1 for enabling event notification and 0 for
114 * disabling the service
115 * Return: -EOPNOTSUPP if the devices doesn't support the feature
116 */
117#define IOCTL_MEI_NOTIFY_SET _IOW('H', 0x02, __u32)
118
119/**
120 * DOC: retrieve notification
121 *
122 * The IOCTL output argument is 1 if an event was is pending and 0 otherwise
123 * the ioctl has to be called in order to acknowledge pending event
124 *
125 * Return: -EOPNOTSUPP if the devices doesn't support the feature
126 */
127#define IOCTL_MEI_NOTIFY_GET _IOR('H', 0x03, __u32)
128
110#endif /* _LINUX_MEI_H */ 129#endif /* _LINUX_MEI_H */
diff --git a/include/uapi/linux/mpls.h b/include/uapi/linux/mpls.h
index 139d4dd1cab8..24a6cb1aec86 100644
--- a/include/uapi/linux/mpls.h
+++ b/include/uapi/linux/mpls.h
@@ -41,4 +41,6 @@ struct mpls_label {
41#define MPLS_LABEL_OAMALERT 14 /* RFC3429 */ 41#define MPLS_LABEL_OAMALERT 14 /* RFC3429 */
42#define MPLS_LABEL_EXTENSION 15 /* RFC7274 */ 42#define MPLS_LABEL_EXTENSION 15 /* RFC7274 */
43 43
44#define MPLS_LABEL_FIRST_UNRESERVED 16 /* RFC3032 */
45
44#endif /* _UAPI_MPLS_H */ 46#endif /* _UAPI_MPLS_H */
diff --git a/include/uapi/linux/mpls_iptunnel.h b/include/uapi/linux/mpls_iptunnel.h
new file mode 100644
index 000000000000..d80a0498f77e
--- /dev/null
+++ b/include/uapi/linux/mpls_iptunnel.h
@@ -0,0 +1,28 @@
1/*
2 * mpls tunnel api
3 *
4 * Authors:
5 * Roopa Prabhu <roopa@cumulusnetworks.com>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version
10 * 2 of the License, or (at your option) any later version.
11 */
12
13#ifndef _UAPI_LINUX_MPLS_IPTUNNEL_H
14#define _UAPI_LINUX_MPLS_IPTUNNEL_H
15
16/* MPLS tunnel attributes
17 * [RTA_ENCAP] = {
18 * [MPLS_IPTUNNEL_DST]
19 * }
20 */
21enum {
22 MPLS_IPTUNNEL_UNSPEC,
23 MPLS_IPTUNNEL_DST,
24 __MPLS_IPTUNNEL_MAX,
25};
26#define MPLS_IPTUNNEL_MAX (__MPLS_IPTUNNEL_MAX - 1)
27
28#endif /* _UAPI_LINUX_MPLS_IPTUNNEL_H */
diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h
index 2b94ea2287bb..5b4a4be06e2b 100644
--- a/include/uapi/linux/ndctl.h
+++ b/include/uapi/linux/ndctl.h
@@ -87,7 +87,7 @@ struct nd_cmd_ars_status {
87 __u32 handle; 87 __u32 handle;
88 __u32 flags; 88 __u32 flags;
89 __u64 err_address; 89 __u64 err_address;
90 __u64 mask; 90 __u64 length;
91 } __packed records[0]; 91 } __packed records[0];
92} __packed; 92} __packed;
93 93
@@ -111,6 +111,11 @@ enum {
111 ND_CMD_VENDOR = 9, 111 ND_CMD_VENDOR = 9,
112}; 112};
113 113
114enum {
115 ND_ARS_VOLATILE = 1,
116 ND_ARS_PERSISTENT = 2,
117};
118
114static inline const char *nvdimm_bus_cmd_name(unsigned cmd) 119static inline const char *nvdimm_bus_cmd_name(unsigned cmd)
115{ 120{
116 static const char * const names[] = { 121 static const char * const names[] = {
@@ -194,4 +199,9 @@ enum nd_driver_flags {
194enum { 199enum {
195 ND_MIN_NAMESPACE_SIZE = 0x00400000, 200 ND_MIN_NAMESPACE_SIZE = 0x00400000,
196}; 201};
202
203enum ars_masks {
204 ARS_STATUS_MASK = 0x0000FFFF,
205 ARS_EXT_STATUS_SHIFT = 16,
206};
197#endif /* __NDCTL_H__ */ 207#endif /* __NDCTL_H__ */
diff --git a/include/uapi/linux/neighbour.h b/include/uapi/linux/neighbour.h
index 2e35c61bbdd1..788655bfa0f3 100644
--- a/include/uapi/linux/neighbour.h
+++ b/include/uapi/linux/neighbour.h
@@ -106,6 +106,7 @@ struct ndt_stats {
106 __u64 ndts_rcv_probes_ucast; 106 __u64 ndts_rcv_probes_ucast;
107 __u64 ndts_periodic_gc_runs; 107 __u64 ndts_periodic_gc_runs;
108 __u64 ndts_forced_gc_runs; 108 __u64 ndts_forced_gc_runs;
109 __u64 ndts_table_fulls;
109}; 110};
110 111
111enum { 112enum {
diff --git a/include/uapi/linux/netconf.h b/include/uapi/linux/netconf.h
index 669a1f0b1d97..23cbd34e4ac7 100644
--- a/include/uapi/linux/netconf.h
+++ b/include/uapi/linux/netconf.h
@@ -15,6 +15,7 @@ enum {
15 NETCONFA_RP_FILTER, 15 NETCONFA_RP_FILTER,
16 NETCONFA_MC_FORWARDING, 16 NETCONFA_MC_FORWARDING,
17 NETCONFA_PROXY_NEIGH, 17 NETCONFA_PROXY_NEIGH,
18 NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
18 __NETCONFA_MAX 19 __NETCONFA_MAX
19}; 20};
20#define NETCONFA_MAX (__NETCONFA_MAX - 1) 21#define NETCONFA_MAX (__NETCONFA_MAX - 1)
diff --git a/include/uapi/linux/netfilter/nf_conntrack_sctp.h b/include/uapi/linux/netfilter/nf_conntrack_sctp.h
index ceeefe6681b5..ed4e776e1242 100644
--- a/include/uapi/linux/netfilter/nf_conntrack_sctp.h
+++ b/include/uapi/linux/netfilter/nf_conntrack_sctp.h
@@ -13,6 +13,8 @@ enum sctp_conntrack {
13 SCTP_CONNTRACK_SHUTDOWN_SENT, 13 SCTP_CONNTRACK_SHUTDOWN_SENT,
14 SCTP_CONNTRACK_SHUTDOWN_RECD, 14 SCTP_CONNTRACK_SHUTDOWN_RECD,
15 SCTP_CONNTRACK_SHUTDOWN_ACK_SENT, 15 SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
16 SCTP_CONNTRACK_HEARTBEAT_SENT,
17 SCTP_CONNTRACK_HEARTBEAT_ACKED,
16 SCTP_CONNTRACK_MAX 18 SCTP_CONNTRACK_MAX
17}; 19};
18 20
diff --git a/include/uapi/linux/netfilter/nf_tables.h b/include/uapi/linux/netfilter/nf_tables.h
index a99e6a997140..d8c8a7c9d88a 100644
--- a/include/uapi/linux/netfilter/nf_tables.h
+++ b/include/uapi/linux/netfilter/nf_tables.h
@@ -756,16 +756,25 @@ enum nft_ct_attributes {
756}; 756};
757#define NFTA_CT_MAX (__NFTA_CT_MAX - 1) 757#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
758 758
759enum nft_limit_type {
760 NFT_LIMIT_PKTS,
761 NFT_LIMIT_PKT_BYTES
762};
763
759/** 764/**
760 * enum nft_limit_attributes - nf_tables limit expression netlink attributes 765 * enum nft_limit_attributes - nf_tables limit expression netlink attributes
761 * 766 *
762 * @NFTA_LIMIT_RATE: refill rate (NLA_U64) 767 * @NFTA_LIMIT_RATE: refill rate (NLA_U64)
763 * @NFTA_LIMIT_UNIT: refill unit (NLA_U64) 768 * @NFTA_LIMIT_UNIT: refill unit (NLA_U64)
769 * @NFTA_LIMIT_BURST: burst (NLA_U32)
770 * @NFTA_LIMIT_TYPE: type of limit (NLA_U32: enum nft_limit_type)
764 */ 771 */
765enum nft_limit_attributes { 772enum nft_limit_attributes {
766 NFTA_LIMIT_UNSPEC, 773 NFTA_LIMIT_UNSPEC,
767 NFTA_LIMIT_RATE, 774 NFTA_LIMIT_RATE,
768 NFTA_LIMIT_UNIT, 775 NFTA_LIMIT_UNIT,
776 NFTA_LIMIT_BURST,
777 NFTA_LIMIT_TYPE,
769 __NFTA_LIMIT_MAX 778 __NFTA_LIMIT_MAX
770}; 779};
771#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1) 780#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
@@ -936,6 +945,20 @@ enum nft_redir_attributes {
936#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1) 945#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1)
937 946
938/** 947/**
948 * enum nft_dup_attributes - nf_tables dup expression netlink attributes
949 *
950 * @NFTA_DUP_SREG_ADDR: source register of address (NLA_U32: nft_registers)
951 * @NFTA_DUP_SREG_DEV: source register of output interface (NLA_U32: nft_register)
952 */
953enum nft_dup_attributes {
954 NFTA_DUP_UNSPEC,
955 NFTA_DUP_SREG_ADDR,
956 NFTA_DUP_SREG_DEV,
957 __NFTA_DUP_MAX
958};
959#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
960
961/**
939 * enum nft_gen_attributes - nf_tables ruleset generation attributes 962 * enum nft_gen_attributes - nf_tables ruleset generation attributes
940 * 963 *
941 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32) 964 * @NFTA_GEN_ID: Ruleset generation ID (NLA_U32)
diff --git a/include/uapi/linux/netfilter/nfnetlink_conntrack.h b/include/uapi/linux/netfilter/nfnetlink_conntrack.h
index acad6c52a652..c1a4e1441a25 100644
--- a/include/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/include/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -61,6 +61,7 @@ enum ctattr_tuple {
61 CTA_TUPLE_UNSPEC, 61 CTA_TUPLE_UNSPEC,
62 CTA_TUPLE_IP, 62 CTA_TUPLE_IP,
63 CTA_TUPLE_PROTO, 63 CTA_TUPLE_PROTO,
64 CTA_TUPLE_ZONE,
64 __CTA_TUPLE_MAX 65 __CTA_TUPLE_MAX
65}; 66};
66#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1) 67#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
diff --git a/include/uapi/linux/netfilter/nfnetlink_cttimeout.h b/include/uapi/linux/netfilter/nfnetlink_cttimeout.h
index 1ab0b97b3a1e..f2c10dc140d6 100644
--- a/include/uapi/linux/netfilter/nfnetlink_cttimeout.h
+++ b/include/uapi/linux/netfilter/nfnetlink_cttimeout.h
@@ -92,6 +92,8 @@ enum ctattr_timeout_sctp {
92 CTA_TIMEOUT_SCTP_SHUTDOWN_SENT, 92 CTA_TIMEOUT_SCTP_SHUTDOWN_SENT,
93 CTA_TIMEOUT_SCTP_SHUTDOWN_RECD, 93 CTA_TIMEOUT_SCTP_SHUTDOWN_RECD,
94 CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT, 94 CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT,
95 CTA_TIMEOUT_SCTP_HEARTBEAT_SENT,
96 CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED,
95 __CTA_TIMEOUT_SCTP_MAX 97 __CTA_TIMEOUT_SCTP_MAX
96}; 98};
97#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1) 99#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1)
diff --git a/include/uapi/linux/netfilter/xt_CT.h b/include/uapi/linux/netfilter/xt_CT.h
index 5a688c1ca4d7..9e520418b858 100644
--- a/include/uapi/linux/netfilter/xt_CT.h
+++ b/include/uapi/linux/netfilter/xt_CT.h
@@ -6,7 +6,13 @@
6enum { 6enum {
7 XT_CT_NOTRACK = 1 << 0, 7 XT_CT_NOTRACK = 1 << 0,
8 XT_CT_NOTRACK_ALIAS = 1 << 1, 8 XT_CT_NOTRACK_ALIAS = 1 << 1,
9 XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS, 9 XT_CT_ZONE_DIR_ORIG = 1 << 2,
10 XT_CT_ZONE_DIR_REPL = 1 << 3,
11 XT_CT_ZONE_MARK = 1 << 4,
12
13 XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS |
14 XT_CT_ZONE_DIR_ORIG | XT_CT_ZONE_DIR_REPL |
15 XT_CT_ZONE_MARK,
10}; 16};
11 17
12struct xt_ct_target_info { 18struct xt_ct_target_info {
diff --git a/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h b/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
index 205ed62e4605..cd2e940c8bf5 100644
--- a/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
+++ b/include/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
@@ -10,7 +10,9 @@ enum ip6t_reject_with {
10 IP6T_ICMP6_ADDR_UNREACH, 10 IP6T_ICMP6_ADDR_UNREACH,
11 IP6T_ICMP6_PORT_UNREACH, 11 IP6T_ICMP6_PORT_UNREACH,
12 IP6T_ICMP6_ECHOREPLY, 12 IP6T_ICMP6_ECHOREPLY,
13 IP6T_TCP_RESET 13 IP6T_TCP_RESET,
14 IP6T_ICMP6_POLICY_FAIL,
15 IP6T_ICMP6_REJECT_ROUTE
14}; 16};
15 17
16struct ip6t_reject_info { 18struct ip6t_reject_info {
diff --git a/include/uapi/linux/netlink.h b/include/uapi/linux/netlink.h
index cf6a65cccbdf..6f3fe16cd22a 100644
--- a/include/uapi/linux/netlink.h
+++ b/include/uapi/linux/netlink.h
@@ -110,6 +110,7 @@ struct nlmsgerr {
110#define NETLINK_TX_RING 7 110#define NETLINK_TX_RING 7
111#define NETLINK_LISTEN_ALL_NSID 8 111#define NETLINK_LISTEN_ALL_NSID 8
112#define NETLINK_LIST_MEMBERSHIPS 9 112#define NETLINK_LIST_MEMBERSHIPS 9
113#define NETLINK_CAP_ACK 10
113 114
114struct nl_pktinfo { 115struct nl_pktinfo {
115 __u32 group; 116 __u32 group;
diff --git a/include/uapi/linux/nfs4.h b/include/uapi/linux/nfs4.h
index 2119c7c274d7..2b871e0858d9 100644
--- a/include/uapi/linux/nfs4.h
+++ b/include/uapi/linux/nfs4.h
@@ -15,7 +15,7 @@
15 15
16#include <linux/types.h> 16#include <linux/types.h>
17 17
18#define NFS4_BITMAP_SIZE 2 18#define NFS4_BITMAP_SIZE 3
19#define NFS4_VERIFIER_SIZE 8 19#define NFS4_VERIFIER_SIZE 8
20#define NFS4_STATEID_SEQID_SIZE 4 20#define NFS4_STATEID_SEQID_SIZE 4
21#define NFS4_STATEID_OTHER_SIZE 12 21#define NFS4_STATEID_OTHER_SIZE 12
diff --git a/include/uapi/linux/nfsacl.h b/include/uapi/linux/nfsacl.h
index 9bb9771a107f..552726631162 100644
--- a/include/uapi/linux/nfsacl.h
+++ b/include/uapi/linux/nfsacl.h
@@ -22,6 +22,7 @@
22#define NFS_ACLCNT 0x0002 22#define NFS_ACLCNT 0x0002
23#define NFS_DFACL 0x0004 23#define NFS_DFACL 0x0004
24#define NFS_DFACLCNT 0x0008 24#define NFS_DFACLCNT 0x0008
25#define NFS_ACL_MASK 0x000f
25 26
26/* Flag for Default ACL entries */ 27/* Flag for Default ACL entries */
27#define NFS_ACL_DEFAULT 0x1000 28#define NFS_ACL_DEFAULT 0x1000
diff --git a/include/uapi/linux/nvme.h b/include/uapi/linux/nvme.h
index 732b32e92b02..8864194a4151 100644
--- a/include/uapi/linux/nvme.h
+++ b/include/uapi/linux/nvme.h
@@ -584,5 +584,6 @@ struct nvme_passthru_cmd {
584#define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io) 584#define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io)
585#define NVME_IOCTL_IO_CMD _IOWR('N', 0x43, struct nvme_passthru_cmd) 585#define NVME_IOCTL_IO_CMD _IOWR('N', 0x43, struct nvme_passthru_cmd)
586#define NVME_IOCTL_RESET _IO('N', 0x44) 586#define NVME_IOCTL_RESET _IO('N', 0x44)
587#define NVME_IOCTL_SUBSYS_RESET _IO('N', 0x45)
587 588
588#endif /* _UAPI_LINUX_NVME_H */ 589#endif /* _UAPI_LINUX_NVME_H */
diff --git a/include/uapi/linux/openvswitch.h b/include/uapi/linux/openvswitch.h
index 1dab77601c21..32e07d8cbaf4 100644
--- a/include/uapi/linux/openvswitch.h
+++ b/include/uapi/linux/openvswitch.h
@@ -164,6 +164,9 @@ enum ovs_packet_cmd {
164 * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the 164 * %OVS_USERSPACE_ATTR_EGRESS_TUN_PORT attribute, which is sent only if the
165 * output port is actually a tunnel port. Contains the output tunnel key 165 * output port is actually a tunnel port. Contains the output tunnel key
166 * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes. 166 * extracted from the packet as nested %OVS_TUNNEL_KEY_ATTR_* attributes.
167 * @OVS_PACKET_ATTR_MRU: Present for an %OVS_PACKET_CMD_ACTION and
168 * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
169 * size.
167 * 170 *
168 * These attributes follow the &struct ovs_header within the Generic Netlink 171 * These attributes follow the &struct ovs_header within the Generic Netlink
169 * payload for %OVS_PACKET_* commands. 172 * payload for %OVS_PACKET_* commands.
@@ -180,6 +183,7 @@ enum ovs_packet_attr {
180 OVS_PACKET_ATTR_UNUSED2, 183 OVS_PACKET_ATTR_UNUSED2,
181 OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe, 184 OVS_PACKET_ATTR_PROBE, /* Packet operation is a feature probe,
182 error logging should be suppressed. */ 185 error logging should be suppressed. */
186 OVS_PACKET_ATTR_MRU, /* Maximum received IP fragment size. */
183 __OVS_PACKET_ATTR_MAX 187 __OVS_PACKET_ATTR_MAX
184}; 188};
185 189
@@ -319,9 +323,13 @@ enum ovs_key_attr {
319 OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls. 323 OVS_KEY_ATTR_MPLS, /* array of struct ovs_key_mpls.
320 * The implementation may restrict 324 * The implementation may restrict
321 * the accepted length of the array. */ 325 * the accepted length of the array. */
326 OVS_KEY_ATTR_CT_STATE, /* u8 bitmask of OVS_CS_F_* */
327 OVS_KEY_ATTR_CT_ZONE, /* u16 connection tracking zone. */
328 OVS_KEY_ATTR_CT_MARK, /* u32 connection tracking mark */
329 OVS_KEY_ATTR_CT_LABEL, /* 16-octet connection tracking label */
322 330
323#ifdef __KERNEL__ 331#ifdef __KERNEL__
324 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ovs_tunnel_info */ 332 OVS_KEY_ATTR_TUNNEL_INFO, /* struct ip_tunnel_info */
325#endif 333#endif
326 __OVS_KEY_ATTR_MAX 334 __OVS_KEY_ATTR_MAX
327}; 335};
@@ -431,6 +439,20 @@ struct ovs_key_nd {
431 __u8 nd_tll[ETH_ALEN]; 439 __u8 nd_tll[ETH_ALEN];
432}; 440};
433 441
442#define OVS_CT_LABEL_LEN 16
443struct ovs_key_ct_label {
444 __u8 ct_label[OVS_CT_LABEL_LEN];
445};
446
447/* OVS_KEY_ATTR_CT_STATE flags */
448#define OVS_CS_F_NEW 0x01 /* Beginning of a new connection. */
449#define OVS_CS_F_ESTABLISHED 0x02 /* Part of an existing connection. */
450#define OVS_CS_F_RELATED 0x04 /* Related to an established
451 * connection. */
452#define OVS_CS_F_INVALID 0x20 /* Could not track connection. */
453#define OVS_CS_F_REPLY_DIR 0x40 /* Flow is in the reply direction. */
454#define OVS_CS_F_TRACKED 0x80 /* Conntrack has occurred. */
455
434/** 456/**
435 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands. 457 * enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.
436 * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow 458 * @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow
@@ -595,6 +617,39 @@ struct ovs_action_hash {
595}; 617};
596 618
597/** 619/**
620 * enum ovs_ct_attr - Attributes for %OVS_ACTION_ATTR_CT action.
621 * @OVS_CT_ATTR_FLAGS: u32 connection tracking flags.
622 * @OVS_CT_ATTR_ZONE: u16 connection tracking zone.
623 * @OVS_CT_ATTR_MARK: u32 value followed by u32 mask. For each bit set in the
624 * mask, the corresponding bit in the value is copied to the connection
625 * tracking mark field in the connection.
626 * @OVS_CT_ATTR_LABEL: %OVS_CT_LABEL_LEN value followed by %OVS_CT_LABEL_LEN
627 * mask. For each bit set in the mask, the corresponding bit in the value is
628 * copied to the connection tracking label field in the connection.
629 * @OVS_CT_ATTR_HELPER: variable length string defining conntrack ALG.
630 */
631enum ovs_ct_attr {
632 OVS_CT_ATTR_UNSPEC,
633 OVS_CT_ATTR_FLAGS, /* u8 bitmask of OVS_CT_F_*. */
634 OVS_CT_ATTR_ZONE, /* u16 zone id. */
635 OVS_CT_ATTR_MARK, /* mark to associate with this connection. */
636 OVS_CT_ATTR_LABEL, /* label to associate with this connection. */
637 OVS_CT_ATTR_HELPER, /* netlink helper to assist detection of
638 related connections. */
639 __OVS_CT_ATTR_MAX
640};
641
642#define OVS_CT_ATTR_MAX (__OVS_CT_ATTR_MAX - 1)
643
644/*
645 * OVS_CT_ATTR_FLAGS flags - bitmask of %OVS_CT_F_*
646 * @OVS_CT_F_COMMIT: Commits the flow to the conntrack table. This allows
647 * future packets for the same connection to be identified as 'established'
648 * or 'related'.
649 */
650#define OVS_CT_F_COMMIT 0x01
651
652/**
598 * enum ovs_action_attr - Action types. 653 * enum ovs_action_attr - Action types.
599 * 654 *
600 * @OVS_ACTION_ATTR_OUTPUT: Output packet to port. 655 * @OVS_ACTION_ATTR_OUTPUT: Output packet to port.
@@ -623,6 +678,8 @@ struct ovs_action_hash {
623 * indicate the new packet contents. This could potentially still be 678 * indicate the new packet contents. This could potentially still be
624 * %ETH_P_MPLS if the resulting MPLS label stack is not empty. If there 679 * %ETH_P_MPLS if the resulting MPLS label stack is not empty. If there
625 * is no MPLS label stack, as determined by ethertype, no action is taken. 680 * is no MPLS label stack, as determined by ethertype, no action is taken.
681 * @OVS_ACTION_ATTR_CT: Track the connection. Populate the conntrack-related
682 * entries in the flow key.
626 * 683 *
627 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all 684 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
628 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment 685 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -648,6 +705,7 @@ enum ovs_action_attr {
648 * data immediately followed by a mask. 705 * data immediately followed by a mask.
649 * The data must be zero for the unmasked 706 * The data must be zero for the unmasked
650 * bits. */ 707 * bits. */
708 OVS_ACTION_ATTR_CT, /* One nested OVS_CT_ATTR_* . */
651 709
652 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted 710 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
653 * from userspace. */ 711 * from userspace. */
diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h
index efe3443572ba..413417f3707b 100644
--- a/include/uapi/linux/pci_regs.h
+++ b/include/uapi/linux/pci_regs.h
@@ -319,6 +319,7 @@
319#define PCI_MSIX_PBA 8 /* Pending Bit Array offset */ 319#define PCI_MSIX_PBA 8 /* Pending Bit Array offset */
320#define PCI_MSIX_PBA_BIR 0x00000007 /* BAR index */ 320#define PCI_MSIX_PBA_BIR 0x00000007 /* BAR index */
321#define PCI_MSIX_PBA_OFFSET 0xfffffff8 /* Offset into specified BAR */ 321#define PCI_MSIX_PBA_OFFSET 0xfffffff8 /* Offset into specified BAR */
322#define PCI_MSIX_FLAGS_BIRMASK PCI_MSIX_PBA_BIR /* deprecated */
322#define PCI_CAP_MSIX_SIZEOF 12 /* size of MSIX registers */ 323#define PCI_CAP_MSIX_SIZEOF 12 /* size of MSIX registers */
323 324
324/* MSI-X Table entry format */ 325/* MSI-X Table entry format */
diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index d97f84c080da..2881145cda86 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -330,7 +330,8 @@ struct perf_event_attr {
330 mmap2 : 1, /* include mmap with inode data */ 330 mmap2 : 1, /* include mmap with inode data */
331 comm_exec : 1, /* flag comm events that are due to an exec */ 331 comm_exec : 1, /* flag comm events that are due to an exec */
332 use_clockid : 1, /* use @clockid for time fields */ 332 use_clockid : 1, /* use @clockid for time fields */
333 __reserved_1 : 38; 333 context_switch : 1, /* context switch data */
334 __reserved_1 : 37;
334 335
335 union { 336 union {
336 __u32 wakeup_events; /* wakeup every n events */ 337 __u32 wakeup_events; /* wakeup every n events */
@@ -572,9 +573,11 @@ struct perf_event_mmap_page {
572/* 573/*
573 * PERF_RECORD_MISC_MMAP_DATA and PERF_RECORD_MISC_COMM_EXEC are used on 574 * PERF_RECORD_MISC_MMAP_DATA and PERF_RECORD_MISC_COMM_EXEC are used on
574 * different events so can reuse the same bit position. 575 * different events so can reuse the same bit position.
576 * Ditto PERF_RECORD_MISC_SWITCH_OUT.
575 */ 577 */
576#define PERF_RECORD_MISC_MMAP_DATA (1 << 13) 578#define PERF_RECORD_MISC_MMAP_DATA (1 << 13)
577#define PERF_RECORD_MISC_COMM_EXEC (1 << 13) 579#define PERF_RECORD_MISC_COMM_EXEC (1 << 13)
580#define PERF_RECORD_MISC_SWITCH_OUT (1 << 13)
578/* 581/*
579 * Indicates that the content of PERF_SAMPLE_IP points to 582 * Indicates that the content of PERF_SAMPLE_IP points to
580 * the actual instruction that triggered the event. See also 583 * the actual instruction that triggered the event. See also
@@ -818,6 +821,32 @@ enum perf_event_type {
818 */ 821 */
819 PERF_RECORD_LOST_SAMPLES = 13, 822 PERF_RECORD_LOST_SAMPLES = 13,
820 823
824 /*
825 * Records a context switch in or out (flagged by
826 * PERF_RECORD_MISC_SWITCH_OUT). See also
827 * PERF_RECORD_SWITCH_CPU_WIDE.
828 *
829 * struct {
830 * struct perf_event_header header;
831 * struct sample_id sample_id;
832 * };
833 */
834 PERF_RECORD_SWITCH = 14,
835
836 /*
837 * CPU-wide version of PERF_RECORD_SWITCH with next_prev_pid and
838 * next_prev_tid that are the next (switching out) or previous
839 * (switching in) pid/tid.
840 *
841 * struct {
842 * struct perf_event_header header;
843 * u32 next_prev_pid;
844 * u32 next_prev_tid;
845 * struct sample_id sample_id;
846 * };
847 */
848 PERF_RECORD_SWITCH_CPU_WIDE = 15,
849
821 PERF_RECORD_MAX, /* non-ABI */ 850 PERF_RECORD_MAX, /* non-ABI */
822}; 851};
823 852
@@ -922,6 +951,7 @@ union perf_mem_data_src {
922 * 951 *
923 * in_tx: running in a hardware transaction 952 * in_tx: running in a hardware transaction
924 * abort: aborting a hardware transaction 953 * abort: aborting a hardware transaction
954 * cycles: cycles from last branch (or 0 if not supported)
925 */ 955 */
926struct perf_branch_entry { 956struct perf_branch_entry {
927 __u64 from; 957 __u64 from;
@@ -930,7 +960,8 @@ struct perf_branch_entry {
930 predicted:1,/* target predicted */ 960 predicted:1,/* target predicted */
931 in_tx:1, /* in transaction */ 961 in_tx:1, /* in transaction */
932 abort:1, /* transaction abort */ 962 abort:1, /* transaction abort */
933 reserved:60; 963 cycles:16, /* cycle count to last branch */
964 reserved:44;
934}; 965};
935 966
936#endif /* _UAPI_LINUX_PERF_EVENT_H */ 967#endif /* _UAPI_LINUX_PERF_EVENT_H */
diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h
index 31891d9535e2..a8d0759a9e40 100644
--- a/include/uapi/linux/prctl.h
+++ b/include/uapi/linux/prctl.h
@@ -190,4 +190,11 @@ struct prctl_mm_map {
190# define PR_FP_MODE_FR (1 << 0) /* 64b FP registers */ 190# define PR_FP_MODE_FR (1 << 0) /* 64b FP registers */
191# define PR_FP_MODE_FRE (1 << 1) /* 32b compatibility */ 191# define PR_FP_MODE_FRE (1 << 1) /* 32b compatibility */
192 192
193/* Control the ambient capability set */
194#define PR_CAP_AMBIENT 47
195# define PR_CAP_AMBIENT_IS_SET 1
196# define PR_CAP_AMBIENT_RAISE 2
197# define PR_CAP_AMBIENT_LOWER 3
198# define PR_CAP_AMBIENT_CLEAR_ALL 4
199
193#endif /* _LINUX_PRCTL_H */ 200#endif /* _LINUX_PRCTL_H */
diff --git a/include/uapi/linux/ptrace.h b/include/uapi/linux/ptrace.h
index cf1019e15f5b..a7a697986614 100644
--- a/include/uapi/linux/ptrace.h
+++ b/include/uapi/linux/ptrace.h
@@ -89,9 +89,11 @@ struct ptrace_peeksiginfo_args {
89#define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP) 89#define PTRACE_O_TRACESECCOMP (1 << PTRACE_EVENT_SECCOMP)
90 90
91/* eventless options */ 91/* eventless options */
92#define PTRACE_O_EXITKILL (1 << 20) 92#define PTRACE_O_EXITKILL (1 << 20)
93#define PTRACE_O_SUSPEND_SECCOMP (1 << 21)
93 94
94#define PTRACE_O_MASK (0x000000ff | PTRACE_O_EXITKILL) 95#define PTRACE_O_MASK (\
96 0x000000ff | PTRACE_O_EXITKILL | PTRACE_O_SUSPEND_SECCOMP)
95 97
96#include <asm/ptrace.h> 98#include <asm/ptrace.h>
97 99
diff --git a/include/uapi/linux/rtnetlink.h b/include/uapi/linux/rtnetlink.h
index fdd8f07f1d34..702024769c74 100644
--- a/include/uapi/linux/rtnetlink.h
+++ b/include/uapi/linux/rtnetlink.h
@@ -308,6 +308,8 @@ enum rtattr_type_t {
308 RTA_VIA, 308 RTA_VIA,
309 RTA_NEWDST, 309 RTA_NEWDST,
310 RTA_PREF, 310 RTA_PREF,
311 RTA_ENCAP_TYPE,
312 RTA_ENCAP,
311 __RTA_MAX 313 __RTA_MAX
312}; 314};
313 315
@@ -416,10 +418,13 @@ enum {
416 418
417#define RTAX_MAX (__RTAX_MAX - 1) 419#define RTAX_MAX (__RTAX_MAX - 1)
418 420
419#define RTAX_FEATURE_ECN 0x00000001 421#define RTAX_FEATURE_ECN (1 << 0)
420#define RTAX_FEATURE_SACK 0x00000002 422#define RTAX_FEATURE_SACK (1 << 1)
421#define RTAX_FEATURE_TIMESTAMP 0x00000004 423#define RTAX_FEATURE_TIMESTAMP (1 << 2)
422#define RTAX_FEATURE_ALLFRAG 0x00000008 424#define RTAX_FEATURE_ALLFRAG (1 << 3)
425
426#define RTAX_FEATURE_MASK (RTAX_FEATURE_ECN | RTAX_FEATURE_SACK | \
427 RTAX_FEATURE_TIMESTAMP | RTAX_FEATURE_ALLFRAG)
423 428
424struct rta_session { 429struct rta_session {
425 __u8 proto; 430 __u8 proto;
diff --git a/include/uapi/linux/securebits.h b/include/uapi/linux/securebits.h
index 985aac9e6bf8..35ac35cef217 100644
--- a/include/uapi/linux/securebits.h
+++ b/include/uapi/linux/securebits.h
@@ -43,9 +43,18 @@
43#define SECBIT_KEEP_CAPS (issecure_mask(SECURE_KEEP_CAPS)) 43#define SECBIT_KEEP_CAPS (issecure_mask(SECURE_KEEP_CAPS))
44#define SECBIT_KEEP_CAPS_LOCKED (issecure_mask(SECURE_KEEP_CAPS_LOCKED)) 44#define SECBIT_KEEP_CAPS_LOCKED (issecure_mask(SECURE_KEEP_CAPS_LOCKED))
45 45
46/* When set, a process cannot add new capabilities to its ambient set. */
47#define SECURE_NO_CAP_AMBIENT_RAISE 6
48#define SECURE_NO_CAP_AMBIENT_RAISE_LOCKED 7 /* make bit-6 immutable */
49
50#define SECBIT_NO_CAP_AMBIENT_RAISE (issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE))
51#define SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED \
52 (issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE_LOCKED))
53
46#define SECURE_ALL_BITS (issecure_mask(SECURE_NOROOT) | \ 54#define SECURE_ALL_BITS (issecure_mask(SECURE_NOROOT) | \
47 issecure_mask(SECURE_NO_SETUID_FIXUP) | \ 55 issecure_mask(SECURE_NO_SETUID_FIXUP) | \
48 issecure_mask(SECURE_KEEP_CAPS)) 56 issecure_mask(SECURE_KEEP_CAPS) | \
57 issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE))
49#define SECURE_ALL_LOCKS (SECURE_ALL_BITS << 1) 58#define SECURE_ALL_LOCKS (SECURE_ALL_BITS << 1)
50 59
51#endif /* _UAPI_LINUX_SECUREBITS_H */ 60#endif /* _UAPI_LINUX_SECUREBITS_H */
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
index eee8968407f0..25a9ad8bcef1 100644
--- a/include/uapi/linux/snmp.h
+++ b/include/uapi/linux/snmp.h
@@ -278,6 +278,8 @@ enum
278 LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */ 278 LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */
279 LINUX_MIB_TCPWINPROBE, /* TCPWinProbe */ 279 LINUX_MIB_TCPWINPROBE, /* TCPWinProbe */
280 LINUX_MIB_TCPKEEPALIVE, /* TCPKeepAlive */ 280 LINUX_MIB_TCPKEEPALIVE, /* TCPKeepAlive */
281 LINUX_MIB_TCPMTUPFAIL, /* TCPMTUPFail */
282 LINUX_MIB_TCPMTUPSUCCESS, /* TCPMTUPSuccess */
281 __LINUX_MIB_MAX 283 __LINUX_MIB_MAX
282}; 284};
283 285
diff --git a/include/uapi/linux/toshiba.h b/include/uapi/linux/toshiba.h
index e9bef5b2f91e..c58bf4b5bb26 100644
--- a/include/uapi/linux/toshiba.h
+++ b/include/uapi/linux/toshiba.h
@@ -1,6 +1,7 @@
1/* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops 1/* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops
2 * 2 *
3 * Copyright (c) 1996-2000 Jonathan A. Buzzard (jonathan@buzzard.org.uk) 3 * Copyright (c) 1996-2000 Jonathan A. Buzzard (jonathan@buzzard.org.uk)
4 * Copyright (c) 2015 Azael Avalos <coproscefalo@gmail.com>
4 * 5 *
5 * Thanks to Juergen Heinzl <juergen@monocerus.demon.co.uk> for the pointers 6 * Thanks to Juergen Heinzl <juergen@monocerus.demon.co.uk> for the pointers
6 * on making sure the structure is aligned and packed. 7 * on making sure the structure is aligned and packed.
@@ -20,9 +21,18 @@
20#ifndef _UAPI_LINUX_TOSHIBA_H 21#ifndef _UAPI_LINUX_TOSHIBA_H
21#define _UAPI_LINUX_TOSHIBA_H 22#define _UAPI_LINUX_TOSHIBA_H
22 23
23#define TOSH_PROC "/proc/toshiba" 24/*
24#define TOSH_DEVICE "/dev/toshiba" 25 * Toshiba modules paths
25#define TOSH_SMM _IOWR('t', 0x90, int) /* broken: meant 24 bytes */ 26 */
27
28#define TOSH_PROC "/proc/toshiba"
29#define TOSH_DEVICE "/dev/toshiba"
30#define TOSHIBA_ACPI_PROC "/proc/acpi/toshiba"
31#define TOSHIBA_ACPI_DEVICE "/dev/toshiba_acpi"
32
33/*
34 * Toshiba SMM structure
35 */
26 36
27typedef struct { 37typedef struct {
28 unsigned int eax; 38 unsigned int eax;
@@ -33,5 +43,21 @@ typedef struct {
33 unsigned int edi __attribute__ ((packed)); 43 unsigned int edi __attribute__ ((packed));
34} SMMRegisters; 44} SMMRegisters;
35 45
46/*
47 * IOCTLs (0x90 - 0x91)
48 */
49
50#define TOSH_SMM _IOWR('t', 0x90, SMMRegisters)
51/*
52 * Convenience toshiba_acpi command.
53 *
54 * The System Configuration Interface (SCI) is opened/closed internally
55 * to avoid userspace of buggy BIOSes.
56 *
57 * The toshiba_acpi module checks whether the eax register is set with
58 * SCI_GET (0xf300) or SCI_SET (0xf400), returning -EINVAL if not.
59 */
60#define TOSHIBA_ACPI_SCI _IOWR('t', 0x91, SMMRegisters)
61
36 62
37#endif /* _UAPI_LINUX_TOSHIBA_H */ 63#endif /* _UAPI_LINUX_TOSHIBA_H */
diff --git a/include/uapi/linux/usb/ch9.h b/include/uapi/linux/usb/ch9.h
index aa33fd1b2d4f..f7adc6e01f9e 100644
--- a/include/uapi/linux/usb/ch9.h
+++ b/include/uapi/linux/usb/ch9.h
@@ -674,9 +674,21 @@ struct usb_otg_descriptor {
674 __u8 bmAttributes; /* support for HNP, SRP, etc */ 674 __u8 bmAttributes; /* support for HNP, SRP, etc */
675} __attribute__ ((packed)); 675} __attribute__ ((packed));
676 676
677/* USB_DT_OTG (from OTG 2.0 supplement) */
678struct usb_otg20_descriptor {
679 __u8 bLength;
680 __u8 bDescriptorType;
681
682 __u8 bmAttributes; /* support for HNP, SRP and ADP, etc */
683 __le16 bcdOTG; /* OTG and EH supplement release number
684 * in binary-coded decimal(i.e. 2.0 is 0200H)
685 */
686} __attribute__ ((packed));
687
677/* from usb_otg_descriptor.bmAttributes */ 688/* from usb_otg_descriptor.bmAttributes */
678#define USB_OTG_SRP (1 << 0) 689#define USB_OTG_SRP (1 << 0)
679#define USB_OTG_HNP (1 << 1) /* swap host/device roles */ 690#define USB_OTG_HNP (1 << 1) /* swap host/device roles */
691#define USB_OTG_ADP (1 << 2) /* support ADP */
680 692
681/*-------------------------------------------------------------------------*/ 693/*-------------------------------------------------------------------------*/
682 694
diff --git a/include/uapi/linux/userfaultfd.h b/include/uapi/linux/userfaultfd.h
new file mode 100644
index 000000000000..df0e09bb7dd5
--- /dev/null
+++ b/include/uapi/linux/userfaultfd.h
@@ -0,0 +1,169 @@
1/*
2 * include/linux/userfaultfd.h
3 *
4 * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org>
5 * Copyright (C) 2015 Red Hat, Inc.
6 *
7 */
8
9#ifndef _LINUX_USERFAULTFD_H
10#define _LINUX_USERFAULTFD_H
11
12#include <linux/types.h>
13
14#include <linux/compiler.h>
15
16#define UFFD_API ((__u64)0xAA)
17/*
18 * After implementing the respective features it will become:
19 * #define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \
20 * UFFD_FEATURE_EVENT_FORK)
21 */
22#define UFFD_API_FEATURES (0)
23#define UFFD_API_IOCTLS \
24 ((__u64)1 << _UFFDIO_REGISTER | \
25 (__u64)1 << _UFFDIO_UNREGISTER | \
26 (__u64)1 << _UFFDIO_API)
27#define UFFD_API_RANGE_IOCTLS \
28 ((__u64)1 << _UFFDIO_WAKE | \
29 (__u64)1 << _UFFDIO_COPY | \
30 (__u64)1 << _UFFDIO_ZEROPAGE)
31
32/*
33 * Valid ioctl command number range with this API is from 0x00 to
34 * 0x3F. UFFDIO_API is the fixed number, everything else can be
35 * changed by implementing a different UFFD_API. If sticking to the
36 * same UFFD_API more ioctl can be added and userland will be aware of
37 * which ioctl the running kernel implements through the ioctl command
38 * bitmask written by the UFFDIO_API.
39 */
40#define _UFFDIO_REGISTER (0x00)
41#define _UFFDIO_UNREGISTER (0x01)
42#define _UFFDIO_WAKE (0x02)
43#define _UFFDIO_COPY (0x03)
44#define _UFFDIO_ZEROPAGE (0x04)
45#define _UFFDIO_API (0x3F)
46
47/* userfaultfd ioctl ids */
48#define UFFDIO 0xAA
49#define UFFDIO_API _IOWR(UFFDIO, _UFFDIO_API, \
50 struct uffdio_api)
51#define UFFDIO_REGISTER _IOWR(UFFDIO, _UFFDIO_REGISTER, \
52 struct uffdio_register)
53#define UFFDIO_UNREGISTER _IOR(UFFDIO, _UFFDIO_UNREGISTER, \
54 struct uffdio_range)
55#define UFFDIO_WAKE _IOR(UFFDIO, _UFFDIO_WAKE, \
56 struct uffdio_range)
57#define UFFDIO_COPY _IOWR(UFFDIO, _UFFDIO_COPY, \
58 struct uffdio_copy)
59#define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, \
60 struct uffdio_zeropage)
61
62/* read() structure */
63struct uffd_msg {
64 __u8 event;
65
66 __u8 reserved1;
67 __u16 reserved2;
68 __u32 reserved3;
69
70 union {
71 struct {
72 __u64 flags;
73 __u64 address;
74 } pagefault;
75
76 struct {
77 /* unused reserved fields */
78 __u64 reserved1;
79 __u64 reserved2;
80 __u64 reserved3;
81 } reserved;
82 } arg;
83} __packed;
84
85/*
86 * Start at 0x12 and not at 0 to be more strict against bugs.
87 */
88#define UFFD_EVENT_PAGEFAULT 0x12
89#if 0 /* not available yet */
90#define UFFD_EVENT_FORK 0x13
91#endif
92
93/* flags for UFFD_EVENT_PAGEFAULT */
94#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */
95#define UFFD_PAGEFAULT_FLAG_WP (1<<1) /* If reason is VM_UFFD_WP */
96
97struct uffdio_api {
98 /* userland asks for an API number and the features to enable */
99 __u64 api;
100 /*
101 * Kernel answers below with the all available features for
102 * the API, this notifies userland of which events and/or
103 * which flags for each event are enabled in the current
104 * kernel.
105 *
106 * Note: UFFD_EVENT_PAGEFAULT and UFFD_PAGEFAULT_FLAG_WRITE
107 * are to be considered implicitly always enabled in all kernels as
108 * long as the uffdio_api.api requested matches UFFD_API.
109 */
110#if 0 /* not available yet */
111#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
112#define UFFD_FEATURE_EVENT_FORK (1<<1)
113#endif
114 __u64 features;
115
116 __u64 ioctls;
117};
118
119struct uffdio_range {
120 __u64 start;
121 __u64 len;
122};
123
124struct uffdio_register {
125 struct uffdio_range range;
126#define UFFDIO_REGISTER_MODE_MISSING ((__u64)1<<0)
127#define UFFDIO_REGISTER_MODE_WP ((__u64)1<<1)
128 __u64 mode;
129
130 /*
131 * kernel answers which ioctl commands are available for the
132 * range, keep at the end as the last 8 bytes aren't read.
133 */
134 __u64 ioctls;
135};
136
137struct uffdio_copy {
138 __u64 dst;
139 __u64 src;
140 __u64 len;
141 /*
142 * There will be a wrprotection flag later that allows to map
143 * pages wrprotected on the fly. And such a flag will be
144 * available if the wrprotection ioctl are implemented for the
145 * range according to the uffdio_register.ioctls.
146 */
147#define UFFDIO_COPY_MODE_DONTWAKE ((__u64)1<<0)
148 __u64 mode;
149
150 /*
151 * "copy" is written by the ioctl and must be at the end: the
152 * copy_from_user will not read the last 8 bytes.
153 */
154 __s64 copy;
155};
156
157struct uffdio_zeropage {
158 struct uffdio_range range;
159#define UFFDIO_ZEROPAGE_MODE_DONTWAKE ((__u64)1<<0)
160 __u64 mode;
161
162 /*
163 * "zeropage" is written by the ioctl and must be at the end:
164 * the copy_from_user will not read the last 8 bytes.
165 */
166 __s64 zeropage;
167};
168
169#endif /* _LINUX_USERFAULTFD_H */
diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
index 9f6e108ff4a0..d448c536b49d 100644
--- a/include/uapi/linux/v4l2-controls.h
+++ b/include/uapi/linux/v4l2-controls.h
@@ -174,6 +174,10 @@ enum v4l2_colorfx {
174 * We reserve 16 controls for this driver. */ 174 * We reserve 16 controls for this driver. */
175#define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070) 175#define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070)
176 176
177/* The base for the tc358743 driver controls.
178 * We reserve 16 controls for this driver. */
179#define V4L2_CID_USER_TC358743_BASE (V4L2_CID_USER_BASE + 0x1080)
180
177/* MPEG-class control IDs */ 181/* MPEG-class control IDs */
178/* The MPEG controls are applicable to all codec controls 182/* The MPEG controls are applicable to all codec controls
179 * and the 'MPEG' part of the define is historical */ 183 * and the 'MPEG' part of the define is historical */
diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
index 7bbee79ca293..ec32293a00db 100644
--- a/include/uapi/linux/virtio_net.h
+++ b/include/uapi/linux/virtio_net.h
@@ -34,6 +34,7 @@
34/* The feature bitmap for virtio net */ 34/* The feature bitmap for virtio net */
35#define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */ 35#define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */
36#define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */ 36#define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */
37#define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS 2 /* Dynamic offload configuration. */
37#define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */ 38#define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */
38#define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */ 39#define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */
39#define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */ 40#define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */
@@ -226,4 +227,19 @@ struct virtio_net_ctrl_mq {
226 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1 227 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MIN 1
227 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000 228 #define VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX 0x8000
228 229
230/*
231 * Control network offloads
232 *
233 * Reconfigures the network offloads that Guest can handle.
234 *
235 * Available with the VIRTIO_NET_F_CTRL_GUEST_OFFLOADS feature bit.
236 *
237 * Command data format matches the feature bit mask exactly.
238 *
239 * See VIRTIO_NET_F_GUEST_* for the list of offloads
240 * that can be enabled/disabled.
241 */
242#define VIRTIO_NET_CTRL_GUEST_OFFLOADS 5
243#define VIRTIO_NET_CTRL_GUEST_OFFLOADS_SET 0
244
229#endif /* _LINUX_VIRTIO_NET_H */ 245#endif /* _LINUX_VIRTIO_NET_H */
diff --git a/include/uapi/linux/virtio_pci.h b/include/uapi/linux/virtio_pci.h
index 75301468359f..90007a1abcab 100644
--- a/include/uapi/linux/virtio_pci.h
+++ b/include/uapi/linux/virtio_pci.h
@@ -157,6 +157,12 @@ struct virtio_pci_common_cfg {
157 __le32 queue_used_hi; /* read-write */ 157 __le32 queue_used_hi; /* read-write */
158}; 158};
159 159
160/* Fields in VIRTIO_PCI_CAP_PCI_CFG: */
161struct virtio_pci_cfg_cap {
162 struct virtio_pci_cap cap;
163 __u8 pci_cfg_data[4]; /* Data for BAR access. */
164};
165
160/* Macro versions of offsets for the Old Timers! */ 166/* Macro versions of offsets for the Old Timers! */
161#define VIRTIO_PCI_CAP_VNDR 0 167#define VIRTIO_PCI_CAP_VNDR 0
162#define VIRTIO_PCI_CAP_NEXT 1 168#define VIRTIO_PCI_CAP_NEXT 1
diff --git a/include/uapi/linux/virtio_ring.h b/include/uapi/linux/virtio_ring.h
index 915980ac68df..c07295969b7e 100644
--- a/include/uapi/linux/virtio_ring.h
+++ b/include/uapi/linux/virtio_ring.h
@@ -31,6 +31,9 @@
31 * SUCH DAMAGE. 31 * SUCH DAMAGE.
32 * 32 *
33 * Copyright Rusty Russell IBM Corporation 2007. */ 33 * Copyright Rusty Russell IBM Corporation 2007. */
34#ifndef __KERNEL__
35#include <stdint.h>
36#endif
34#include <linux/types.h> 37#include <linux/types.h>
35#include <linux/virtio_types.h> 38#include <linux/virtio_types.h>
36 39
@@ -143,7 +146,7 @@ static inline void vring_init(struct vring *vr, unsigned int num, void *p,
143 vr->num = num; 146 vr->num = num;
144 vr->desc = p; 147 vr->desc = p;
145 vr->avail = p + num*sizeof(struct vring_desc); 148 vr->avail = p + num*sizeof(struct vring_desc);
146 vr->used = (void *)(((unsigned long)&vr->avail->ring[num] + sizeof(__virtio16) 149 vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
147 + align-1) & ~(align - 1)); 150 + align-1) & ~(align - 1));
148} 151}
149 152
diff --git a/include/uapi/linux/vsp1.h b/include/uapi/linux/vsp1.h
index e18858f6e865..9a823696d816 100644
--- a/include/uapi/linux/vsp1.h
+++ b/include/uapi/linux/vsp1.h
@@ -28,7 +28,7 @@
28 _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct vsp1_lut_config) 28 _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct vsp1_lut_config)
29 29
30struct vsp1_lut_config { 30struct vsp1_lut_config {
31 u32 lut[256]; 31 __u32 lut[256];
32}; 32};
33 33
34#endif /* __VSP1_USER_H__ */ 34#endif /* __VSP1_USER_H__ */