History

Merge Linus master into drm-next

The merge is clean, but the arm build fails afterwards, due to API changes in the regulator tree. I've included the patch into the merge to fix the build.

Dave Airlie committed 11 years ago

Commit 2c33ce02 parents cec32a4 09d51606745 files · +276922 −138053Browse files

Showing the changes to include/uapi/linux (32 of 6745 files). Show all

Unified · Split

32 files
  1. include/uapi/linux/Kbuild +1 −0
  2. include/uapi/linux/bpf.h +63 −0
  3. include/uapi/linux/can/raw.h +1 −0
  4. include/uapi/linux/dcbnl.h +66 −0
  5. include/uapi/linux/dm-ioctl.h +2 −2
  6. include/uapi/linux/filter.h +7 −3
  7. include/uapi/linux/fou.h +1 −0
  8. include/uapi/linux/hsi/Kbuild +1 −1
  9. include/uapi/linux/hsi/cs-protocol.h +113 −0
  10. include/uapi/linux/if_addr.h +2 −0
  11. include/uapi/linux/if_link.h +14 −0
  12. include/uapi/linux/if_packet.h +1 −0
  13. include/uapi/linux/iio/Kbuild +3 −0
  14. include/uapi/linux/iio/events.h +42 −0
  15. include/uapi/linux/iio/types.h +92 −0
  16. include/uapi/linux/input.h +6 −1
  17. include/uapi/linux/ip_vs.h +6 −1
  18. include/uapi/linux/ipv6.h +1 −0
  19. include/uapi/linux/kvm.h +64 −1
  20. include/uapi/linux/magic.h +2 −0
  21. include/uapi/linux/neighbour.h +1 −0
  22. include/uapi/linux/netfilter/nf_tables.h +79 −1
  23. include/uapi/linux/netfilter_bridge/ebtables.h +0 −2
  24. include/uapi/linux/nl80211.h +31 −3
  25. include/uapi/linux/perf_event.h +98 −17
  26. include/uapi/linux/pkt_cls.h +2 −0
  27. include/uapi/linux/quota.h +4 −2
  28. include/uapi/linux/rtnetlink.h +16 −0
  29. include/uapi/linux/tc_act/tc_bpf.h +2 −0
  30. include/uapi/linux/tipc_netlink.h +9 −0
  31. include/uapi/linux/vfio.h +2 −0
  32. include/uapi/linux/xfrm.h +2 −0
include/uapi/linux/Kbuild+1−0
@@ -6,6 +6,7 @@ header-y += caif/ · 5 unmodified lines
66 header-y += dvb/
77 header-y += hdlc/
88 header-y += hsi/
9+header-y += iio/
910 header-y += isdn/
1011 header-y += mmc/
1112 header-y += nfsd/
include/uapi/linux/bpf.h+63−0
@@ -118,8 +118,13 @@ enum bpf_map_type { · 117 unmodified lines
118118 enum bpf_prog_type {
119119 BPF_PROG_TYPE_UNSPEC,
120120 BPF_PROG_TYPE_SOCKET_FILTER,
121+ BPF_PROG_TYPE_KPROBE,
122+ BPF_PROG_TYPE_SCHED_CLS,
123+ BPF_PROG_TYPE_SCHED_ACT,
121124 };
122125
126+#define BPF_PSEUDO_MAP_FD 1
127+
123128 /* flags for BPF_MAP_UPDATE_ELEM command */
124129 #define BPF_ANY 0 /* create new element or update existing */
125130 #define BPF_NOEXIST 1 /* create new element if it didn't exist */
@@ -151,6 +156,7 @@ union bpf_attr { · 25 unmodified lines
151156 __u32 log_level; /* verbosity level of verifier */
152157 __u32 log_size; /* size of user buffer */
153158 __aligned_u64 log_buf; /* user supplied buffer */
159+ __u32 kern_version; /* checked when prog_type=kprobe */
154160 };
155161 } __attribute__((aligned(8)));
156162
@@ -162,7 +168,64 @@ enum bpf_func_id { · 5 unmodified lines
162168 BPF_FUNC_map_lookup_elem, /* void *map_lookup_elem(&map, &key) */
163169 BPF_FUNC_map_update_elem, /* int map_update_elem(&map, &key, &value, flags) */
164170 BPF_FUNC_map_delete_elem, /* int map_delete_elem(&map, &key) */
171+ BPF_FUNC_probe_read, /* int bpf_probe_read(void *dst, int size, void *src) */
172+ BPF_FUNC_ktime_get_ns, /* u64 bpf_ktime_get_ns(void) */
173+ BPF_FUNC_trace_printk, /* int bpf_trace_printk(const char *fmt, int fmt_size, ...) */
174+ BPF_FUNC_get_prandom_u32, /* u32 prandom_u32(void) */
175+ BPF_FUNC_get_smp_processor_id, /* u32 raw_smp_processor_id(void) */
176+
177+ /**
178+ * skb_store_bytes(skb, offset, from, len, flags) - store bytes into packet
179+ * @skb: pointer to skb
180+ * @offset: offset within packet from skb->mac_header
181+ * @from: pointer where to copy bytes from
182+ * @len: number of bytes to store into packet
183+ * @flags: bit 0 - if true, recompute skb->csum
184+ * other bits - reserved
185+ * Return: 0 on success
186+ */
187+ BPF_FUNC_skb_store_bytes,
188+
189+ /**
190+ * l3_csum_replace(skb, offset, from, to, flags) - recompute IP checksum
191+ * @skb: pointer to skb
192+ * @offset: offset within packet where IP checksum is located
193+ * @from: old value of header field
194+ * @to: new value of header field
195+ * @flags: bits 0-3 - size of header field
196+ * other bits - reserved
197+ * Return: 0 on success
198+ */
199+ BPF_FUNC_l3_csum_replace,
200+
201+ /**
202+ * l4_csum_replace(skb, offset, from, to, flags) - recompute TCP/UDP checksum
203+ * @skb: pointer to skb
204+ * @offset: offset within packet where TCP/UDP checksum is located
205+ * @from: old value of header field
206+ * @to: new value of header field
207+ * @flags: bits 0-3 - size of header field
208+ * bit 4 - is pseudo header
209+ * other bits - reserved
210+ * Return: 0 on success
211+ */
212+ BPF_FUNC_l4_csum_replace,
165213 __BPF_FUNC_MAX_ID,
166214 };
167215
216+/* user accessible mirror of in-kernel sk_buff.
217+ * new fields can only be added to the end of this structure
218+ */
219+struct __sk_buff {
220+ __u32 len;
221+ __u32 pkt_type;
222+ __u32 mark;
223+ __u32 queue_mapping;
224+ __u32 protocol;
225+ __u32 vlan_present;
226+ __u32 vlan_tci;
227+ __u32 vlan_proto;
228+ __u32 priority;
229+};
230+
168231 #endif /* _UAPI__LINUX_BPF_H__ */
include/uapi/linux/can/raw.h+1−0
@@ -57,6 +57,7 @@ enum { · 56 unmodified lines
5757 CAN_RAW_LOOPBACK, /* local loopback (default:on) */
5858 CAN_RAW_RECV_OWN_MSGS, /* receive my own msgs (default:off) */
5959 CAN_RAW_FD_FRAMES, /* allow CAN FD frames (default:off) */
60+ CAN_RAW_JOIN_FILTERS, /* all filters must match to trigger */
6061 };
6162
6263 #endif /* !_UAPI_CAN_RAW_H */
include/uapi/linux/dcbnl.h+66−0
@@ -78,6 +78,70 @@ struct ieee_maxrate { · 77 unmodified lines
7878 __u64 tc_maxrate[IEEE_8021QAZ_MAX_TCS];
7979 };
8080
81+enum dcbnl_cndd_states {
82+ DCB_CNDD_RESET = 0,
83+ DCB_CNDD_EDGE,
84+ DCB_CNDD_INTERIOR,
85+ DCB_CNDD_INTERIOR_READY,
86+};
87+
88+/* This structure contains the IEEE 802.1Qau QCN managed object.
89+ *
90+ *@rpg_enable: enable QCN RP
91+ *@rppp_max_rps: maximum number of RPs allowed for this CNPV on this port
92+ *@rpg_time_reset: time between rate increases if no CNMs received.
93+ * given in u-seconds
94+ *@rpg_byte_reset: transmitted data between rate increases if no CNMs received.
95+ * given in Bytes
96+ *@rpg_threshold: The number of times rpByteStage or rpTimeStage can count
97+ * before RP rate control state machine advances states
98+ *@rpg_max_rate: the maxinun rate, in Mbits per second,
99+ * at which an RP can transmit
100+ *@rpg_ai_rate: The rate, in Mbits per second,
101+ * used to increase rpTargetRate in the RPR_ACTIVE_INCREASE
102+ *@rpg_hai_rate: The rate, in Mbits per second,
103+ * used to increase rpTargetRate in the RPR_HYPER_INCREASE state
104+ *@rpg_gd: Upon CNM receive, flow rate is limited to (Fb/Gd)*CurrentRate.
105+ * rpgGd is given as log2(Gd), where Gd may only be powers of 2
106+ *@rpg_min_dec_fac: The minimum factor by which the current transmit rate
107+ * can be changed by reception of a CNM.
108+ * value is given as percentage (1-100)
109+ *@rpg_min_rate: The minimum value, in bits per second, for rate to limit
110+ *@cndd_state_machine: The state of the congestion notification domain
111+ * defense state machine, as defined by IEEE 802.3Qau
112+ * section 32.1.1. In the interior ready state,
113+ * the QCN capable hardware may add CN-TAG TLV to the
114+ * outgoing traffic, to specifically identify outgoing
115+ * flows.
116+ */
117+
118+struct ieee_qcn {
119+ __u8 rpg_enable[IEEE_8021QAZ_MAX_TCS];
120+ __u32 rppp_max_rps[IEEE_8021QAZ_MAX_TCS];
121+ __u32 rpg_time_reset[IEEE_8021QAZ_MAX_TCS];
122+ __u32 rpg_byte_reset[IEEE_8021QAZ_MAX_TCS];
123+ __u32 rpg_threshold[IEEE_8021QAZ_MAX_TCS];
124+ __u32 rpg_max_rate[IEEE_8021QAZ_MAX_TCS];
125+ __u32 rpg_ai_rate[IEEE_8021QAZ_MAX_TCS];
126+ __u32 rpg_hai_rate[IEEE_8021QAZ_MAX_TCS];
127+ __u32 rpg_gd[IEEE_8021QAZ_MAX_TCS];
128+ __u32 rpg_min_dec_fac[IEEE_8021QAZ_MAX_TCS];
129+ __u32 rpg_min_rate[IEEE_8021QAZ_MAX_TCS];
130+ __u32 cndd_state_machine[IEEE_8021QAZ_MAX_TCS];
131+};
132+
133+/* This structure contains the IEEE 802.1Qau QCN statistics.
134+ *
135+ *@rppp_rp_centiseconds: the number of RP-centiseconds accumulated
136+ * by RPs at this priority level on this Port
137+ *@rppp_created_rps: number of active RPs(flows) that react to CNMs
138+ */
139+
140+struct ieee_qcn_stats {
141+ __u64 rppp_rp_centiseconds[IEEE_8021QAZ_MAX_TCS];
142+ __u32 rppp_created_rps[IEEE_8021QAZ_MAX_TCS];
143+};
144+
81145 /* This structure contains the IEEE 802.1Qaz PFC managed object
82146 *
83147 * @pfc_cap: Indicates the number of traffic classes on the local device
@@ -334,6 +398,8 @@ enum ieee_attrs { · 250 unmodified lines
334398 DCB_ATTR_IEEE_PEER_PFC,
335399 DCB_ATTR_IEEE_PEER_APP,
336400 DCB_ATTR_IEEE_MAXRATE,
401+ DCB_ATTR_IEEE_QCN,
402+ DCB_ATTR_IEEE_QCN_STATS,
337403 __DCB_ATTR_IEEE_MAX
338404 };
339405 #define DCB_ATTR_IEEE_MAX (__DCB_ATTR_IEEE_MAX - 1)
include/uapi/linux/dm-ioctl.h+2−2
@@ -267,9 +267,9 @@ enum { · 266 unmodified lines
267267 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
268268
269269 #define DM_VERSION_MAJOR 4
270−#define DM_VERSION_MINOR 30
270+#define DM_VERSION_MINOR 31
271271 #define DM_VERSION_PATCHLEVEL 0
272−#define DM_VERSION_EXTRA "-ioctl (2014-12-22)"
272+#define DM_VERSION_EXTRA "-ioctl (2015-3-12)"
273273
274274 /* Status bits */
275275 #define DM_READONLY_FLAG (1 << 0) /* In/Out */
include/uapi/linux/filter.h+7−3
@@ -77,9 +77,13 @@ struct sock_fprog { /* Required for SO_ATTACH_FILTER. */ · 76 unmodified lines
7777 #define SKF_AD_VLAN_TAG_PRESENT 48
7878 #define SKF_AD_PAY_OFFSET 52
7979 #define SKF_AD_RANDOM 56
80−#define SKF_AD_MAX 60
81−#define SKF_NET_OFF (-0x100000)
82−#define SKF_LL_OFF (-0x200000)
80+#define SKF_AD_VLAN_TPID 60
81+#define SKF_AD_MAX 64
8382
83+#define SKF_NET_OFF (-0x100000)
84+#define SKF_LL_OFF (-0x200000)
85+
86+#define BPF_NET_OFF SKF_NET_OFF
87+#define BPF_LL_OFF SKF_LL_OFF
8488
8589 #endif /* _UAPI__LINUX_FILTER_H__ */
include/uapi/linux/fou.h+1−0
@@ -25,6 +25,7 @@ enum { · 24 unmodified lines
2525 FOU_CMD_UNSPEC,
2626 FOU_CMD_ADD,
2727 FOU_CMD_DEL,
28+ FOU_CMD_GET,
2829
2930 __FOU_CMD_MAX,
3031 };
include/uapi/linux/hsi/Kbuild+1−1
@@ -1,2 +1,2 @@
11 # UAPI Header export list
2−header-y += hsi_char.h
2+header-y += hsi_char.h cs-protocol.h
include/uapi/linux/hsi/cs-protocol.h+113−0
@@ -0,0 +1,113 @@
1+/*
2+ * cmt-speech interface definitions
3+ *
4+ * Copyright (C) 2008,2009,2010 Nokia Corporation. All rights reserved.
5+ *
6+ * Contact: Kai Vehmanen <kai.vehmanen@nokia.com>
7+ * Original author: Peter Ujfalusi <peter.ujfalusi@nokia.com>
8+ *
9+ * This program is free software; you can redistribute it and/or
10+ * modify it under the terms of the GNU General Public License
11+ * version 2 as published by the Free Software Foundation.
12+ *
13+ * This program is distributed in the hope that it will be useful, but
14+ * WITHOUT ANY WARRANTY; without even the implied warranty of
15+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16+ * General Public License for more details.
17+ *
18+ * You should have received a copy of the GNU General Public License
19+ * along with this program; if not, write to the Free Software
20+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21+ * 02110-1301 USA
22+ */
23+
24+#ifndef _CS_PROTOCOL_H
25+#define _CS_PROTOCOL_H
26+
27+#include <linux/types.h>
28+#include <linux/ioctl.h>
29+
30+/* chardev parameters */
31+#define CS_DEV_FILE_NAME "/dev/cmt_speech"
32+
33+/* user-space API versioning */
34+#define CS_IF_VERSION 2
35+
36+/* APE kernel <-> user space messages */
37+#define CS_CMD_SHIFT 28
38+#define CS_DOMAIN_SHIFT 24
39+
40+#define CS_CMD_MASK 0xff000000
41+#define CS_PARAM_MASK 0xffffff
42+
43+#define CS_CMD(id, dom) \
44+ (((id) << CS_CMD_SHIFT) | ((dom) << CS_DOMAIN_SHIFT))
45+
46+#define CS_ERROR CS_CMD(1, 0)
47+#define CS_RX_DATA_RECEIVED CS_CMD(2, 0)
48+#define CS_TX_DATA_READY CS_CMD(3, 0)
49+#define CS_TX_DATA_SENT CS_CMD(4, 0)
50+
51+/* params to CS_ERROR indication */
52+#define CS_ERR_PEER_RESET 0
53+
54+/* ioctl interface */
55+
56+/* parameters to CS_CONFIG_BUFS ioctl */
57+#define CS_FEAT_TSTAMP_RX_CTRL (1 << 0)
58+#define CS_FEAT_ROLLING_RX_COUNTER (2 << 0)
59+
60+/* parameters to CS_GET_STATE ioctl */
61+#define CS_STATE_CLOSED 0
62+#define CS_STATE_OPENED 1 /* resource allocated */
63+#define CS_STATE_CONFIGURED 2 /* data path active */
64+
65+/* maximum number of TX/RX buffers */
66+#define CS_MAX_BUFFERS_SHIFT 4
67+#define CS_MAX_BUFFERS (1 << CS_MAX_BUFFERS_SHIFT)
68+
69+/* Parameters for setting up the data buffers */
70+struct cs_buffer_config {
71+ __u32 rx_bufs; /* number of RX buffer slots */
72+ __u32 tx_bufs; /* number of TX buffer slots */
73+ __u32 buf_size; /* bytes */
74+ __u32 flags; /* see CS_FEAT_* */
75+ __u32 reserved[4];
76+};
77+
78+/*
79+ * Struct describing the layout and contents of the driver mmap area.
80+ * This information is meant as read-only information for the application.
81+ */
82+struct cs_mmap_config_block {
83+ __u32 reserved1;
84+ __u32 buf_size; /* 0=disabled, otherwise the transfer size */
85+ __u32 rx_bufs; /* # of RX buffers */
86+ __u32 tx_bufs; /* # of TX buffers */
87+ __u32 reserved2;
88+ /* array of offsets within the mmap area for each RX and TX buffer */
89+ __u32 rx_offsets[CS_MAX_BUFFERS];
90+ __u32 tx_offsets[CS_MAX_BUFFERS];
91+ __u32 rx_ptr;
92+ __u32 rx_ptr_boundary;
93+ __u32 reserved3[2];
94+ /*
95+ * if enabled with CS_FEAT_TSTAMP_RX_CTRL, monotonic
96+ * timestamp taken when the last control command was received
97+ */
98+ struct timespec tstamp_rx_ctrl;
99+};
100+
101+#define CS_IO_MAGIC 'C'
102+
103+#define CS_IOW(num, dtype) _IOW(CS_IO_MAGIC, num, dtype)
104+#define CS_IOR(num, dtype) _IOR(CS_IO_MAGIC, num, dtype)
105+#define CS_IOWR(num, dtype) _IOWR(CS_IO_MAGIC, num, dtype)
106+#define CS_IO(num) _IO(CS_IO_MAGIC, num)
107+
108+#define CS_GET_STATE CS_IOR(21, unsigned int)
109+#define CS_SET_WAKELINE CS_IOW(23, unsigned int)
110+#define CS_GET_IF_VERSION CS_IOR(30, unsigned int)
111+#define CS_CONFIG_BUFS CS_IOW(31, struct cs_buffer_config)
112+
113+#endif /* _CS_PROTOCOL_H */
include/uapi/linux/if_addr.h+2−0
@@ -50,6 +50,8 @@ enum { · 49 unmodified lines
5050 #define IFA_F_PERMANENT 0x80
5151 #define IFA_F_MANAGETEMPADDR 0x100
5252 #define IFA_F_NOPREFIXROUTE 0x200
53+#define IFA_F_MCAUTOJOIN 0x400
54+#define IFA_F_STABLE_PRIVACY 0x800
5355
5456 struct ifa_cacheinfo {
5557 __u32 ifa_prefered;
include/uapi/linux/if_link.h+14−0
@@ -147,6 +147,7 @@ enum { · 146 unmodified lines
147147 IFLA_CARRIER_CHANGES,
148148 IFLA_PHYS_SWITCH_ID,
149149 IFLA_LINK_NETNSID,
150+ IFLA_PHYS_PORT_NAME,
150151 __IFLA_MAX
151152 };
152153
@@ -215,6 +216,7 @@ enum { · 62 unmodified lines
215216 enum in6_addr_gen_mode {
216217 IN6_ADDR_GEN_MODE_EUI64,
217218 IN6_ADDR_GEN_MODE_NONE,
219+ IN6_ADDR_GEN_MODE_STABLE_PRIVACY,
218220 };
219221
220222 /* Bridge section */
@@ -224,6 +226,9 @@ enum { · 3 unmodified lines
224226 IFLA_BR_FORWARD_DELAY,
225227 IFLA_BR_HELLO_TIME,
226228 IFLA_BR_MAX_AGE,
229+ IFLA_BR_AGEING_TIME,
230+ IFLA_BR_STP_STATE,
231+ IFLA_BR_PRIORITY,
227232 __IFLA_BR_MAX,
228233 };
229234
@@ -247,6 +252,7 @@ enum { · 17 unmodified lines
247252 IFLA_BRPORT_UNICAST_FLOOD, /* flood unicast traffic */
248253 IFLA_BRPORT_PROXYARP, /* proxy ARP */
249254 IFLA_BRPORT_LEARNING_SYNC, /* mac learning sync from device */
255+ IFLA_BRPORT_PROXYARP_WIFI, /* proxy ARP for Wi-Fi */
250256 __IFLA_BRPORT_MAX
251257 };
252258 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -459,6 +465,9 @@ enum { · 206 unmodified lines
459465 IFLA_VF_SPOOFCHK, /* Spoof Checking on/off switch */
460466 IFLA_VF_LINK_STATE, /* link state enable/disable/auto switch */
461467 IFLA_VF_RATE, /* Min and Max TX Bandwidth Allocation */
468+ IFLA_VF_RSS_QUERY_EN, /* RSS Redirection Table and Hash Key query
469+ * on/off switch
470+ */
462471 __IFLA_VF_MAX,
463472 };
464473
@@ -503,6 +512,11 @@ struct ifla_vf_link_state { · 38 unmodified lines
503512 __u32 link_state;
504513 };
505514
515+struct ifla_vf_rss_query_en {
516+ __u32 vf;
517+ __u32 setting;
518+};
519+
506520 /* VF ports management section
507521 *
508522 * Nested layout of set/get msg is:
include/uapi/linux/if_packet.h+1−0
@@ -99,6 +99,7 @@ struct tpacket_auxdata { · 98 unmodified lines
9999 #define TP_STATUS_VLAN_VALID (1 << 4) /* auxdata has valid tp_vlan_tci */
100100 #define TP_STATUS_BLK_TMO (1 << 5)
101101 #define TP_STATUS_VLAN_TPID_VALID (1 << 6) /* auxdata has valid tp_vlan_tpid */
102+#define TP_STATUS_CSUM_VALID (1 << 7)
102103
103104 /* Tx ring - header status */
104105 #define TP_STATUS_AVAILABLE 0
include/uapi/linux/iio/Kbuild+3−0
@@ -0,0 +1,3 @@
1+# UAPI Header export list
2+header-y += events.h
3+header-y += types.h
include/uapi/linux/iio/events.h+42−0
@@ -0,0 +1,42 @@
1+/* The industrial I/O - event passing to userspace
2+ *
3+ * Copyright (c) 2008-2011 Jonathan Cameron
4+ *
5+ * This program is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 as published by
7+ * the Free Software Foundation.
8+ */
9+#ifndef _UAPI_IIO_EVENTS_H_
10+#define _UAPI_IIO_EVENTS_H_
11+
12+#include <linux/ioctl.h>
13+#include <linux/types.h>
14+
15+/**
16+ * struct iio_event_data - The actual event being pushed to userspace
17+ * @id: event identifier
18+ * @timestamp: best estimate of time of event occurrence (often from
19+ * the interrupt handler)
20+ */
21+struct iio_event_data {
22+ __u64 id;
23+ __s64 timestamp;
24+};
25+
26+#define IIO_GET_EVENT_FD_IOCTL _IOR('i', 0x90, int)
27+
28+#define IIO_EVENT_CODE_EXTRACT_TYPE(mask) ((mask >> 56) & 0xFF)
29+
30+#define IIO_EVENT_CODE_EXTRACT_DIR(mask) ((mask >> 48) & 0x7F)
31+
32+#define IIO_EVENT_CODE_EXTRACT_CHAN_TYPE(mask) ((mask >> 32) & 0xFF)
33+
34+/* Event code number extraction depends on which type of event we have.
35+ * Perhaps review this function in the future*/
36+#define IIO_EVENT_CODE_EXTRACT_CHAN(mask) ((__s16)(mask & 0xFFFF))
37+#define IIO_EVENT_CODE_EXTRACT_CHAN2(mask) ((__s16)(((mask) >> 16) & 0xFFFF))
38+
39+#define IIO_EVENT_CODE_EXTRACT_MODIFIER(mask) ((mask >> 40) & 0xFF)
40+#define IIO_EVENT_CODE_EXTRACT_DIFF(mask) (((mask) >> 55) & 0x1)
41+
42+#endif /* _UAPI_IIO_EVENTS_H_ */
include/uapi/linux/iio/types.h+92−0
@@ -0,0 +1,92 @@
1+/* industrial I/O data types needed both in and out of kernel
2+ *
3+ * Copyright (c) 2008 Jonathan Cameron
4+ *
5+ * This program is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 as published by
7+ * the Free Software Foundation.
8+ */
9+
10+#ifndef _UAPI_IIO_TYPES_H_
11+#define _UAPI_IIO_TYPES_H_
12+
13+enum iio_chan_type {
14+ IIO_VOLTAGE,
15+ IIO_CURRENT,
16+ IIO_POWER,
17+ IIO_ACCEL,
18+ IIO_ANGL_VEL,
19+ IIO_MAGN,
20+ IIO_LIGHT,
21+ IIO_INTENSITY,
22+ IIO_PROXIMITY,
23+ IIO_TEMP,
24+ IIO_INCLI,
25+ IIO_ROT,
26+ IIO_ANGL,
27+ IIO_TIMESTAMP,
28+ IIO_CAPACITANCE,
29+ IIO_ALTVOLTAGE,
30+ IIO_CCT,
31+ IIO_PRESSURE,
32+ IIO_HUMIDITYRELATIVE,
33+ IIO_ACTIVITY,
34+ IIO_STEPS,
35+ IIO_ENERGY,
36+ IIO_DISTANCE,
37+ IIO_VELOCITY,
38+};
39+
40+enum iio_modifier {
41+ IIO_NO_MOD,
42+ IIO_MOD_X,
43+ IIO_MOD_Y,
44+ IIO_MOD_Z,
45+ IIO_MOD_X_AND_Y,
46+ IIO_MOD_X_AND_Z,
47+ IIO_MOD_Y_AND_Z,
48+ IIO_MOD_X_AND_Y_AND_Z,
49+ IIO_MOD_X_OR_Y,
50+ IIO_MOD_X_OR_Z,
51+ IIO_MOD_Y_OR_Z,
52+ IIO_MOD_X_OR_Y_OR_Z,
53+ IIO_MOD_LIGHT_BOTH,
54+ IIO_MOD_LIGHT_IR,
55+ IIO_MOD_ROOT_SUM_SQUARED_X_Y,
56+ IIO_MOD_SUM_SQUARED_X_Y_Z,
57+ IIO_MOD_LIGHT_CLEAR,
58+ IIO_MOD_LIGHT_RED,
59+ IIO_MOD_LIGHT_GREEN,
60+ IIO_MOD_LIGHT_BLUE,
61+ IIO_MOD_QUATERNION,
62+ IIO_MOD_TEMP_AMBIENT,
63+ IIO_MOD_TEMP_OBJECT,
64+ IIO_MOD_NORTH_MAGN,
65+ IIO_MOD_NORTH_TRUE,
66+ IIO_MOD_NORTH_MAGN_TILT_COMP,
67+ IIO_MOD_NORTH_TRUE_TILT_COMP,
68+ IIO_MOD_RUNNING,
69+ IIO_MOD_JOGGING,
70+ IIO_MOD_WALKING,
71+ IIO_MOD_STILL,
72+ IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
73+};
74+
75+enum iio_event_type {
76+ IIO_EV_TYPE_THRESH,
77+ IIO_EV_TYPE_MAG,
78+ IIO_EV_TYPE_ROC,
79+ IIO_EV_TYPE_THRESH_ADAPTIVE,
80+ IIO_EV_TYPE_MAG_ADAPTIVE,
81+ IIO_EV_TYPE_CHANGE,
82+};
83+
84+enum iio_event_direction {
85+ IIO_EV_DIR_EITHER,
86+ IIO_EV_DIR_RISING,
87+ IIO_EV_DIR_FALLING,
88+ IIO_EV_DIR_NONE,
89+};
90+
91+#endif /* _UAPI_IIO_TYPES_H_ */
92+
include/uapi/linux/input.h+6−1
@@ -369,7 +369,8 @@ struct input_keymap_entry { · 368 unmodified lines
369369 #define KEY_MSDOS 151
370370 #define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */
371371 #define KEY_SCREENLOCK KEY_COFFEE
372−#define KEY_DIRECTION 153
372+#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */
373+#define KEY_DIRECTION KEY_ROTATE_DISPLAY
373374 #define KEY_CYCLEWINDOWS 154
374375 #define KEY_MAIL 155
375376 #define KEY_BOOKMARKS 156 /* AC Bookmarks */
@@ -702,6 +703,10 @@ struct input_keymap_entry { · 326 unmodified lines
702703 #define KEY_NUMERIC_9 0x209
703704 #define KEY_NUMERIC_STAR 0x20a
704705 #define KEY_NUMERIC_POUND 0x20b
706+#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */
707+#define KEY_NUMERIC_B 0x20d
708+#define KEY_NUMERIC_C 0x20e
709+#define KEY_NUMERIC_D 0x20f
705710
706711 #define KEY_CAMERA_FOCUS 0x210
707712 #define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */
include/uapi/linux/ip_vs.h+6−1
@@ -358,6 +358,8 @@ enum { · 357 unmodified lines
358358
359359 IPVS_SVC_ATTR_PE_NAME, /* name of ct retriever */
360360
361+ IPVS_SVC_ATTR_STATS64, /* nested attribute for service stats */
362+
361363 __IPVS_SVC_ATTR_MAX,
362364 };
363365
@@ -387,6 +389,8 @@ enum { · 23 unmodified lines
387389
388390 IPVS_DEST_ATTR_ADDR_FAMILY, /* Address family of address */
389391
392+ IPVS_DEST_ATTR_STATS64, /* nested attribute for dest stats */
393+
390394 __IPVS_DEST_ATTR_MAX,
391395 };
392396
@@ -410,7 +414,8 @@ enum { · 17 unmodified lines
410414 /*
411415 * Attributes used to describe service or destination entry statistics
412416 *
413− * Used inside nested attributes IPVS_SVC_ATTR_STATS and IPVS_DEST_ATTR_STATS
417+ * Used inside nested attributes IPVS_SVC_ATTR_STATS, IPVS_DEST_ATTR_STATS,
418+ * IPVS_SVC_ATTR_STATS64 and IPVS_DEST_ATTR_STATS64.
414419 */
415420 enum {
416421 IPVS_STATS_ATTR_UNSPEC = 0,
include/uapi/linux/ipv6.h+1−0
@@ -170,6 +170,7 @@ enum { · 169 unmodified lines
170170 DEVCONF_ACCEPT_RA_FROM_LOCAL,
171171 DEVCONF_USE_OPTIMISTIC,
172172 DEVCONF_ACCEPT_RA_MTU,
173+ DEVCONF_STABLE_SECRET,
173174 DEVCONF_MAX
174175 };
175176
include/uapi/linux/kvm.h+64−1
@@ -147,6 +147,16 @@ struct kvm_pit_config { · 146 unmodified lines
147147
148148 #define KVM_PIT_SPEAKER_DUMMY 1
149149
150+struct kvm_s390_skeys {
151+ __u64 start_gfn;
152+ __u64 count;
153+ __u64 skeydata_addr;
154+ __u32 flags;
155+ __u32 reserved[9];
156+};
157+#define KVM_S390_GET_SKEYS_NONE 1
158+#define KVM_S390_SKEYS_MAX 1048576
159+
150160 #define KVM_EXIT_UNKNOWN 0
151161 #define KVM_EXIT_EXCEPTION 1
152162 #define KVM_EXIT_IO 2
@@ -172,6 +182,7 @@ struct kvm_pit_config { · 19 unmodified lines
172182 #define KVM_EXIT_S390_TSCH 22
173183 #define KVM_EXIT_EPR 23
174184 #define KVM_EXIT_SYSTEM_EVENT 24
185+#define KVM_EXIT_S390_STSI 25
175186
176187 /* For KVM_EXIT_INTERNAL_ERROR */
177188 /* Emulate instruction failed. */
@@ -309,6 +320,15 @@ struct kvm_run { · 131 unmodified lines
309320 __u32 type;
310321 __u64 flags;
311322 } system_event;
323+ /* KVM_EXIT_S390_STSI */
324+ struct {
325+ __u64 addr;
326+ __u8 ar;
327+ __u8 reserved;
328+ __u8 fc;
329+ __u8 sel1;
330+ __u16 sel2;
331+ } s390_stsi;
312332 /* Fix the size of the union. */
313333 char padding[256];
314334 };
@@ -324,7 +344,7 @@ struct kvm_run { · 9 unmodified lines
324344 __u64 kvm_dirty_regs;
325345 union {
326346 struct kvm_sync_regs regs;
327− char padding[1024];
347+ char padding[2048];
328348 } s;
329349 };
330350
@@ -365,6 +385,24 @@ struct kvm_translation { · 34 unmodified lines
365385 __u8 pad[5];
366386 };
367387
388+/* for KVM_S390_MEM_OP */
389+struct kvm_s390_mem_op {
390+ /* in */
391+ __u64 gaddr; /* the guest address */
392+ __u64 flags; /* flags */
393+ __u32 size; /* amount of bytes */
394+ __u32 op; /* type of operation */
395+ __u64 buf; /* buffer in userspace */
396+ __u8 ar; /* the access register number */
397+ __u8 reserved[31]; /* should be set to 0 */
398+};
399+/* types for kvm_s390_mem_op->op */
400+#define KVM_S390_MEMOP_LOGICAL_READ 0
401+#define KVM_S390_MEMOP_LOGICAL_WRITE 1
402+/* flags for kvm_s390_mem_op->flags */
403+#define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0)
404+#define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1)
405+
368406 /* for KVM_INTERRUPT */
369407 struct kvm_interrupt {
370408 /* in */
@@ -520,6 +558,13 @@ struct kvm_s390_irq { · 149 unmodified lines
520558 } u;
521559 };
522560
561+struct kvm_s390_irq_state {
562+ __u64 buf;
563+ __u32 flags;
564+ __u32 len;
565+ __u32 reserved[4];
566+};
567+
523568 /* for KVM_SET_GUEST_DEBUG */
524569
525570 #define KVM_GUESTDBG_ENABLE 0x00000001
@@ -760,6 +805,14 @@ struct kvm_ppc_smmu_info { · 234 unmodified lines
760805 #define KVM_CAP_PPC_ENABLE_HCALL 104
761806 #define KVM_CAP_CHECK_EXTENSION_VM 105
762807 #define KVM_CAP_S390_USER_SIGP 106
808+#define KVM_CAP_S390_VECTOR_REGISTERS 107
809+#define KVM_CAP_S390_MEM_OP 108
810+#define KVM_CAP_S390_USER_STSI 109
811+#define KVM_CAP_S390_SKEYS 110
812+#define KVM_CAP_MIPS_FPU 111
813+#define KVM_CAP_MIPS_MSA 112
814+#define KVM_CAP_S390_INJECT_IRQ 113
815+#define KVM_CAP_S390_IRQ_STATE 114
763816
764817 #ifdef KVM_CAP_IRQ_ROUTING
765818
@@ -1135,6 +1188,16 @@ struct kvm_s390_ucas_mapping { · 369 unmodified lines
11351188 #define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init)
11361189 #define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init)
11371190 #define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list)
1191+/* Available with KVM_CAP_S390_MEM_OP */
1192+#define KVM_S390_MEM_OP _IOW(KVMIO, 0xb1, struct kvm_s390_mem_op)
1193+/* Available with KVM_CAP_S390_SKEYS */
1194+#define KVM_S390_GET_SKEYS _IOW(KVMIO, 0xb2, struct kvm_s390_skeys)
1195+#define KVM_S390_SET_SKEYS _IOW(KVMIO, 0xb3, struct kvm_s390_skeys)
1196+/* Available with KVM_CAP_S390_INJECT_IRQ */
1197+#define KVM_S390_IRQ _IOW(KVMIO, 0xb4, struct kvm_s390_irq)
1198+/* Available with KVM_CAP_S390_IRQ_STATE */
1199+#define KVM_S390_SET_IRQ_STATE _IOW(KVMIO, 0xb5, struct kvm_s390_irq_state)
1200+#define KVM_S390_GET_IRQ_STATE _IOW(KVMIO, 0xb6, struct kvm_s390_irq_state)
11381201
11391202 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
11401203 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
include/uapi/linux/magic.h+2−0
@@ -58,6 +58,8 @@ · 57 unmodified lines
5858
5959 #define STACK_END_MAGIC 0x57AC6E9D
6060
61+#define TRACEFS_MAGIC 0x74726163
62+
6163 #define V9FS_MAGIC 0x01021997
6264
6365 #define BDEVFS_MAGIC 0x62646576
include/uapi/linux/neighbour.h+1−0
@@ -126,6 +126,7 @@ enum { · 125 unmodified lines
126126 NDTPA_PROXY_QLEN, /* u32 */
127127 NDTPA_LOCKTIME, /* u64, msecs */
128128 NDTPA_QUEUE_LENBYTES, /* u32 */
129+ NDTPA_MCAST_REPROBES, /* u32 */
129130 __NDTPA_MAX
130131 };
131132 #define NDTPA_MAX (__NDTPA_MAX - 1)
include/uapi/linux/netfilter/nf_tables.h+79−1
@@ -1,19 +1,49 @@
11 #ifndef _LINUX_NF_TABLES_H
22 #define _LINUX_NF_TABLES_H
33
4+#define NFT_TABLE_MAXNAMELEN 32
45 #define NFT_CHAIN_MAXNAMELEN 32
56 #define NFT_USERDATA_MAXLEN 256
67
8+/**
9+ * enum nft_registers - nf_tables registers
10+ *
11+ * nf_tables used to have five registers: a verdict register and four data
12+ * registers of size 16. The data registers have been changed to 16 registers
13+ * of size 4. For compatibility reasons, the NFT_REG_[1-4] registers still
14+ * map to areas of size 16, the 4 byte registers are addressed using
15+ * NFT_REG32_00 - NFT_REG32_15.
16+ */
717 enum nft_registers {
818 NFT_REG_VERDICT,
919 NFT_REG_1,
1020 NFT_REG_2,
1121 NFT_REG_3,
1222 NFT_REG_4,
13− __NFT_REG_MAX
23+ __NFT_REG_MAX,
24+
25+ NFT_REG32_00 = 8,
26+ MFT_REG32_01,
27+ NFT_REG32_02,
28+ NFT_REG32_03,
29+ NFT_REG32_04,
30+ NFT_REG32_05,
31+ NFT_REG32_06,
32+ NFT_REG32_07,
33+ NFT_REG32_08,
34+ NFT_REG32_09,
35+ NFT_REG32_10,
36+ NFT_REG32_11,
37+ NFT_REG32_12,
38+ NFT_REG32_13,
39+ NFT_REG32_14,
40+ NFT_REG32_15,
1441 };
1542 #define NFT_REG_MAX (__NFT_REG_MAX - 1)
1643
44+#define NFT_REG_SIZE 16
45+#define NFT_REG32_SIZE 4
46+
1747 /**
1848 * enum nft_verdicts - nf_tables internal verdicts
1949 *
@@ -207,12 +237,16 @@ enum nft_rule_compat_attributes { · 187 unmodified lines
207237 * @NFT_SET_CONSTANT: set contents may not change while bound
208238 * @NFT_SET_INTERVAL: set contains intervals
209239 * @NFT_SET_MAP: set is used as a dictionary
240+ * @NFT_SET_TIMEOUT: set uses timeouts
241+ * @NFT_SET_EVAL: set contains expressions for evaluation
210242 */
211243 enum nft_set_flags {
212244 NFT_SET_ANONYMOUS = 0x1,
213245 NFT_SET_CONSTANT = 0x2,
214246 NFT_SET_INTERVAL = 0x4,
215247 NFT_SET_MAP = 0x8,
248+ NFT_SET_TIMEOUT = 0x10,
249+ NFT_SET_EVAL = 0x20,
216250 };
217251
218252 /**
@@ -251,6 +285,8 @@ enum nft_set_desc_attributes { · 32 unmodified lines
251285 * @NFTA_SET_POLICY: selection policy (NLA_U32)
252286 * @NFTA_SET_DESC: set description (NLA_NESTED)
253287 * @NFTA_SET_ID: uniquely identifies a set in a transaction (NLA_U32)
288+ * @NFTA_SET_TIMEOUT: default timeout value (NLA_U64)
289+ * @NFTA_SET_GC_INTERVAL: garbage collection interval (NLA_U32)
254290 */
255291 enum nft_set_attributes {
256292 NFTA_SET_UNSPEC,
@@ -264,6 +300,8 @@ enum nft_set_attributes { · 7 unmodified lines
264300 NFTA_SET_POLICY,
265301 NFTA_SET_DESC,
266302 NFTA_SET_ID,
303+ NFTA_SET_TIMEOUT,
304+ NFTA_SET_GC_INTERVAL,
267305 __NFTA_SET_MAX
268306 };
269307 #define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
@@ -283,12 +321,20 @@ enum nft_set_elem_flags { · 13 unmodified lines
283321 * @NFTA_SET_ELEM_KEY: key value (NLA_NESTED: nft_data)
284322 * @NFTA_SET_ELEM_DATA: data value of mapping (NLA_NESTED: nft_data_attributes)
285323 * @NFTA_SET_ELEM_FLAGS: bitmask of nft_set_elem_flags (NLA_U32)
324+ * @NFTA_SET_ELEM_TIMEOUT: timeout value (NLA_U64)
325+ * @NFTA_SET_ELEM_EXPIRATION: expiration time (NLA_U64)
326+ * @NFTA_SET_ELEM_USERDATA: user data (NLA_BINARY)
327+ * @NFTA_SET_ELEM_EXPR: expression (NLA_NESTED: nft_expr_attributes)
286328 */
287329 enum nft_set_elem_attributes {
288330 NFTA_SET_ELEM_UNSPEC,
289331 NFTA_SET_ELEM_KEY,
290332 NFTA_SET_ELEM_DATA,
291333 NFTA_SET_ELEM_FLAGS,
334+ NFTA_SET_ELEM_TIMEOUT,
335+ NFTA_SET_ELEM_EXPIRATION,
336+ NFTA_SET_ELEM_USERDATA,
337+ NFTA_SET_ELEM_EXPR,
292338 __NFTA_SET_ELEM_MAX
293339 };
294340 #define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1)
@@ -346,6 +392,9 @@ enum nft_data_attributes { · 51 unmodified lines
346392 };
347393 #define NFTA_DATA_MAX (__NFTA_DATA_MAX - 1)
348394
395+/* Maximum length of a value */
396+#define NFT_DATA_VALUE_MAXLEN 64
397+
349398 /**
350399 * enum nft_verdict_attributes - nf_tables verdict netlink attributes
351400 *
@@ -504,6 +553,35 @@ enum nft_lookup_attributes { · 152 unmodified lines
504553 };
505554 #define NFTA_LOOKUP_MAX (__NFTA_LOOKUP_MAX - 1)
506555
556+enum nft_dynset_ops {
557+ NFT_DYNSET_OP_ADD,
558+ NFT_DYNSET_OP_UPDATE,
559+};
560+
561+/**
562+ * enum nft_dynset_attributes - dynset expression attributes
563+ *
564+ * @NFTA_DYNSET_SET_NAME: name of set the to add data to (NLA_STRING)
565+ * @NFTA_DYNSET_SET_ID: uniquely identifier of the set in the transaction (NLA_U32)
566+ * @NFTA_DYNSET_OP: operation (NLA_U32)
567+ * @NFTA_DYNSET_SREG_KEY: source register of the key (NLA_U32)
568+ * @NFTA_DYNSET_SREG_DATA: source register of the data (NLA_U32)
569+ * @NFTA_DYNSET_TIMEOUT: timeout value for the new element (NLA_U64)
570+ * @NFTA_DYNSET_EXPR: expression (NLA_NESTED: nft_expr_attributes)
571+ */
572+enum nft_dynset_attributes {
573+ NFTA_DYNSET_UNSPEC,
574+ NFTA_DYNSET_SET_NAME,
575+ NFTA_DYNSET_SET_ID,
576+ NFTA_DYNSET_OP,
577+ NFTA_DYNSET_SREG_KEY,
578+ NFTA_DYNSET_SREG_DATA,
579+ NFTA_DYNSET_TIMEOUT,
580+ NFTA_DYNSET_EXPR,
581+ __NFTA_DYNSET_MAX,
582+};
583+#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
584+
507585 /**
508586 * enum nft_payload_bases - nf_tables payload expression offset bases
509587 *
include/uapi/linux/netfilter_bridge/ebtables.h+0−2
@@ -12,9 +12,7 @@ · 11 unmodified lines
1212
1313 #ifndef _UAPI__LINUX_BRIDGE_EFF_H
1414 #define _UAPI__LINUX_BRIDGE_EFF_H
15−#include <linux/if.h>
1615 #include <linux/netfilter_bridge.h>
17−#include <linux/if_ether.h>
1816
1917 #define EBT_TABLE_MAXNAMELEN 32
2018 #define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN
include/uapi/linux/nl80211.h+31−3
@@ -25,6 +25,19 @@ · 24 unmodified lines
2525 *
2626 */
2727
28+/*
29+ * This header file defines the userspace API to the wireless stack. Please
30+ * be careful not to break things - i.e. don't move anything around or so
31+ * unless you can demonstrate that it breaks neither API nor ABI.
32+ *
33+ * Additions to the API should be accompanied by actual implementations in
34+ * an upstream driver, so that example implementations exist in case there
35+ * are ever concerns about the precise semantics of the API or changes are
36+ * needed, and to ensure that code for dead (no longer implemented) API
37+ * can actually be identified and removed.
38+ * Nonetheless, semantics should also be documented carefully in this file.
39+ */
40+
2841 #include <linux/types.h>
2942
3043 #define NL80211_GENL_NAME "nl80211"
@@ -1684,6 +1697,10 @@ enum nl80211_commands { · 1653 unmodified lines
16841697 * If set during scheduled scan start then the new scan req will be
16851698 * owned by the netlink socket that created it and the scheduled scan will
16861699 * be stopped when the socket is closed.
1700+ * If set during configuration of regulatory indoor operation then the
1701+ * regulatory indoor configuration would be owned by the netlink socket
1702+ * that configured the indoor setting, and the indoor operation would be
1703+ * cleared when the socket is closed.
16871704 *
16881705 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
16891706 * the TDLS link initiator.
@@ -1737,8 +1754,12 @@ enum nl80211_commands { · 47 unmodified lines
17371754 * should be contained in the result as the sum of the respective counters
17381755 * over all channels.
17391756 *
1740− * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before a scheduled scan (or a
1741− * WoWLAN net-detect scan) is started, u32 in seconds.
1757+ * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before the first cycle of a
1758+ * scheduled scan (or a WoWLAN net-detect scan) is started, u32
1759+ * in seconds.
1760+
1761+ * @NL80211_ATTR_REG_INDOOR: flag attribute, if set indicates that the device
1762+ * is operating in an indoor environment.
17421763 *
17431764 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
17441765 * @NL80211_ATTR_MAX: highest attribute number currently defined
@@ -2107,6 +2128,8 @@ enum nl80211_attrs { · 362 unmodified lines
21072128
21082129 NL80211_ATTR_SCHED_SCAN_DELAY,
21092130
2131+ NL80211_ATTR_REG_INDOOR,
2132+
21102133 /* add attributes here, update the policy in nl80211.c */
21112134
21122135 __NL80211_ATTR_AFTER_LAST,
@@ -3092,7 +3115,8 @@ enum nl80211_mesh_power_mode { · 979 unmodified lines
30923115 *
30933116 * @NL80211_MESHCONF_PLINK_TIMEOUT: If no tx activity is seen from a STA we've
30943117 * established peering with for longer than this time (in seconds), then
3095− * remove it from the STA's list of peers. Default is 30 minutes.
3118+ * remove it from the STA's list of peers. You may set this to 0 to disable
3119+ * the removal of the STA. Default is 30 minutes.
30963120 *
30973121 * @__NL80211_MESHCONF_ATTR_AFTER_LAST: internal use
30983122 */
@@ -3694,6 +3718,8 @@ struct nl80211_pattern_support { · 595 unmodified lines
36943718 * @NL80211_WOWLAN_TRIG_ANY: wake up on any activity, do not really put
36953719 * the chip into a special state -- works best with chips that have
36963720 * support for low-power operation already (flag)
3721+ * Note that this mode is incompatible with all of the others, if
3722+ * any others are even supported by the device.
36973723 * @NL80211_WOWLAN_TRIG_DISCONNECT: wake up on disconnect, the way disconnect
36983724 * is detected is implementation-specific (flag)
36993725 * @NL80211_WOWLAN_TRIG_MAGIC_PKT: wake up on magic packet (6x 0xff, followed
@@ -4327,11 +4353,13 @@ enum nl80211_feature_flags { · 627 unmodified lines
43274353
43284354 /**
43294355 * enum nl80211_ext_feature_index - bit index of extended features.
4356+ * @NL80211_EXT_FEATURE_VHT_IBSS: This driver supports IBSS with VHT datarates.
43304357 *
43314358 * @NUM_NL80211_EXT_FEATURES: number of extended features.
43324359 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
43334360 */
43344361 enum nl80211_ext_feature_index {
4362+ NL80211_EXT_FEATURE_VHT_IBSS,
43354363
43364364 /* add new features before the definition below */
43374365 NUM_NL80211_EXT_FEATURES,
include/uapi/linux/perf_event.h+98−17
@@ -152,21 +152,42 @@ enum perf_event_sample_format { · 151 unmodified lines
152152 * The branch types can be combined, however BRANCH_ANY covers all types
153153 * of branches and therefore it supersedes all the other types.
154154 */
155+enum perf_branch_sample_type_shift {
156+ PERF_SAMPLE_BRANCH_USER_SHIFT = 0, /* user branches */
157+ PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 1, /* kernel branches */
158+ PERF_SAMPLE_BRANCH_HV_SHIFT = 2, /* hypervisor branches */
159+
160+ PERF_SAMPLE_BRANCH_ANY_SHIFT = 3, /* any branch types */
161+ PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 4, /* any call branch */
162+ PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 5, /* any return branch */
163+ PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 6, /* indirect calls */
164+ PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 7, /* transaction aborts */
165+ PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 8, /* in transaction */
166+ PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 9, /* not in transaction */
167+ PERF_SAMPLE_BRANCH_COND_SHIFT = 10, /* conditional branches */
168+
169+ PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 11, /* call/ret stack */
170+
171+ PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
172+};
173+
155174 enum perf_branch_sample_type {
156− PERF_SAMPLE_BRANCH_USER = 1U << 0, /* user branches */
157− PERF_SAMPLE_BRANCH_KERNEL = 1U << 1, /* kernel branches */
158− PERF_SAMPLE_BRANCH_HV = 1U << 2, /* hypervisor branches */
159−
160− PERF_SAMPLE_BRANCH_ANY = 1U << 3, /* any branch types */
161− PERF_SAMPLE_BRANCH_ANY_CALL = 1U << 4, /* any call branch */
162− PERF_SAMPLE_BRANCH_ANY_RETURN = 1U << 5, /* any return branch */
163− PERF_SAMPLE_BRANCH_IND_CALL = 1U << 6, /* indirect calls */
164− PERF_SAMPLE_BRANCH_ABORT_TX = 1U << 7, /* transaction aborts */
165− PERF_SAMPLE_BRANCH_IN_TX = 1U << 8, /* in transaction */
166− PERF_SAMPLE_BRANCH_NO_TX = 1U << 9, /* not in transaction */
167− PERF_SAMPLE_BRANCH_COND = 1U << 10, /* conditional branches */
168−
169− PERF_SAMPLE_BRANCH_MAX = 1U << 11, /* non-ABI */
175+ PERF_SAMPLE_BRANCH_USER = 1U << PERF_SAMPLE_BRANCH_USER_SHIFT,
176+ PERF_SAMPLE_BRANCH_KERNEL = 1U << PERF_SAMPLE_BRANCH_KERNEL_SHIFT,
177+ PERF_SAMPLE_BRANCH_HV = 1U << PERF_SAMPLE_BRANCH_HV_SHIFT,
178+
179+ PERF_SAMPLE_BRANCH_ANY = 1U << PERF_SAMPLE_BRANCH_ANY_SHIFT,
180+ PERF_SAMPLE_BRANCH_ANY_CALL = 1U << PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT,
181+ PERF_SAMPLE_BRANCH_ANY_RETURN = 1U << PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT,
182+ PERF_SAMPLE_BRANCH_IND_CALL = 1U << PERF_SAMPLE_BRANCH_IND_CALL_SHIFT,
183+ PERF_SAMPLE_BRANCH_ABORT_TX = 1U << PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT,
184+ PERF_SAMPLE_BRANCH_IN_TX = 1U << PERF_SAMPLE_BRANCH_IN_TX_SHIFT,
185+ PERF_SAMPLE_BRANCH_NO_TX = 1U << PERF_SAMPLE_BRANCH_NO_TX_SHIFT,
186+ PERF_SAMPLE_BRANCH_COND = 1U << PERF_SAMPLE_BRANCH_COND_SHIFT,
187+
188+ PERF_SAMPLE_BRANCH_CALL_STACK = 1U << PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT,
189+
190+ PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
170191 };
171192
172193 #define PERF_SAMPLE_BRANCH_PLM_ALL \
@@ -240,6 +261,7 @@ enum perf_event_read_format { · 67 unmodified lines
240261 #define PERF_ATTR_SIZE_VER3 96 /* add: sample_regs_user */
241262 /* add: sample_stack_user */
242263 #define PERF_ATTR_SIZE_VER4 104 /* add: sample_regs_intr */
264+#define PERF_ATTR_SIZE_VER5 112 /* add: aux_watermark */
243265
244266 /*
245267 * Hardware event_id to monitor via a performance monitoring event:
@@ -305,7 +327,8 @@ struct perf_event_attr { · 59 unmodified lines
305327 exclude_callchain_user : 1, /* exclude user callchains */
306328 mmap2 : 1, /* include mmap with inode data */
307329 comm_exec : 1, /* flag comm events that are due to an exec */
308− __reserved_1 : 39;
330+ use_clockid : 1, /* use @clockid for time fields */
331+ __reserved_1 : 38;
309332
310333 union {
311334 __u32 wakeup_events; /* wakeup every n events */
@@ -334,8 +357,7 @@ struct perf_event_attr { · 22 unmodified lines
334357 */
335358 __u32 sample_stack_user;
336359
337− /* Align to u64. */
338− __u32 __reserved_2;
360+ __s32 clockid;
339361 /*
340362 * Defines set of regs to dump for each sample
341363 * state captured on:
@@ -345,6 +367,12 @@ struct perf_event_attr { · 3 unmodified lines
345367 * See asm/perf_regs.h for details.
346368 */
347369 __u64 sample_regs_intr;
370+
371+ /*
372+ * Wakeup watermark for AUX area
373+ */
374+ __u32 aux_watermark;
375+ __u32 __reserved_2; /* align to __u64 */
348376 };
349377
350378 #define perf_flags(attr) (*(&(attr)->read_format + 1))
@@ -360,6 +388,7 @@ struct perf_event_attr { · 9 unmodified lines
360388 #define PERF_EVENT_IOC_SET_OUTPUT _IO ('$', 5)
361389 #define PERF_EVENT_IOC_SET_FILTER _IOW('$', 6, char *)
362390 #define PERF_EVENT_IOC_ID _IOR('$', 7, __u64 *)
391+#define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, __u32)
363392
364393 enum perf_event_ioc_flags {
365394 PERF_IOC_FLAG_GROUP = 1U << 0,
@@ -500,9 +529,30 @@ struct perf_event_mmap_page { · 134 unmodified lines
500529 * In this case the kernel will not over-write unread data.
501530 *
502531 * See perf_output_put_handle() for the data ordering.
532+ *
533+ * data_{offset,size} indicate the location and size of the perf record
534+ * buffer within the mmapped area.
503535 */
504536 __u64 data_head; /* head in the data section */
505537 __u64 data_tail; /* user-space written tail */
538+ __u64 data_offset; /* where the buffer starts */
539+ __u64 data_size; /* data buffer size */
540+
541+ /*
542+ * AUX area is defined by aux_{offset,size} fields that should be set
543+ * by the userspace, so that
544+ *
545+ * aux_offset >= data_offset + data_size
546+ *
547+ * prior to mmap()ing it. Size of the mmap()ed area should be aux_size.
548+ *
549+ * Ring buffer pointers aux_{head,tail} have the same semantics as
550+ * data_{head,tail} and same ordering rules apply.
551+ */
552+ __u64 aux_head;
553+ __u64 aux_tail;
554+ __u64 aux_offset;
555+ __u64 aux_size;
506556 };
507557
508558 #define PERF_RECORD_MISC_CPUMODE_MASK (7 << 0)
@@ -725,6 +775,31 @@ enum perf_event_type { · 216 unmodified lines
725775 */
726776 PERF_RECORD_MMAP2 = 10,
727777
778+ /*
779+ * Records that new data landed in the AUX buffer part.
780+ *
781+ * struct {
782+ * struct perf_event_header header;
783+ *
784+ * u64 aux_offset;
785+ * u64 aux_size;
786+ * u64 flags;
787+ * struct sample_id sample_id;
788+ * };
789+ */
790+ PERF_RECORD_AUX = 11,
791+
792+ /*
793+ * Indicates that instruction trace has started
794+ *
795+ * struct {
796+ * struct perf_event_header header;
797+ * u32 pid;
798+ * u32 tid;
799+ * };
800+ */
801+ PERF_RECORD_ITRACE_START = 12,
802+
728803 PERF_RECORD_MAX, /* non-ABI */
729804 };
730805
@@ -742,6 +817,12 @@ enum perf_callchain_context { · 11 unmodified lines
742817 PERF_CONTEXT_MAX = (__u64)-4095,
743818 };
744819
820+/**
821+ * PERF_RECORD_AUX::flags bits
822+ */
823+#define PERF_AUX_FLAG_TRUNCATED 0x01 /* record was truncated to fit */
824+#define PERF_AUX_FLAG_OVERWRITE 0x02 /* snapshot from overwrite mode */
825+
745826 #define PERF_FLAG_FD_NO_GROUP (1UL << 0)
746827 #define PERF_FLAG_FD_OUTPUT (1UL << 1)
747828 #define PERF_FLAG_PID_CGROUP (1UL << 2) /* pid=cgroup id, per-cpu mode only */
include/uapi/linux/pkt_cls.h+2−0
@@ -397,6 +397,8 @@ enum { · 396 unmodified lines
397397 TCA_BPF_CLASSID,
398398 TCA_BPF_OPS_LEN,
399399 TCA_BPF_OPS,
400+ TCA_BPF_FD,
401+ TCA_BPF_NAME,
400402 __TCA_BPF_MAX,
401403 };
402404
include/uapi/linux/quota.h+4−2
@@ -36,11 +36,12 @@ · 35 unmodified lines
3636 #include <linux/errno.h>
3737 #include <linux/types.h>
3838
39−#define __DQUOT_VERSION__ "dquot_6.5.2"
39+#define __DQUOT_VERSION__ "dquot_6.6.0"
4040
41−#define MAXQUOTAS 2
41+#define MAXQUOTAS 3
4242 #define USRQUOTA 0 /* element used for user quotas */
4343 #define GRPQUOTA 1 /* element used for group quotas */
44+#define PRJQUOTA 2 /* element used for project quotas */
4445
4546 /*
4647 * Definitions for the default names of the quotas files.
@@ -48,6 +49,7 @@ · 1 unmodified line
4849 #define INITQFNAMES { \
4950 "user", /* USRQUOTA */ \
5051 "group", /* GRPQUOTA */ \
52+ "project", /* PRJQUOTA */ \
5153 "undefined", \
5254 };
5355
include/uapi/linux/rtnetlink.h+16−0
@@ -134,6 +134,8 @@ enum { · 133 unmodified lines
134134
135135 RTM_NEWNSID = 88,
136136 #define RTM_NEWNSID RTM_NEWNSID
137+ RTM_DELNSID = 89,
138+#define RTM_DELNSID RTM_DELNSID
137139 RTM_GETNSID = 90,
138140 #define RTM_GETNSID RTM_GETNSID
139141
@@ -303,6 +305,9 @@ enum rtattr_type_t { · 163 unmodified lines
303305 RTA_TABLE,
304306 RTA_MARK,
305307 RTA_MFC_STATS,
308+ RTA_VIA,
309+ RTA_NEWDST,
310+ RTA_PREF,
306311 __RTA_MAX
307312 };
308313
@@ -332,6 +337,7 @@ struct rtnexthop { · 23 unmodified lines
332337 #define RTNH_F_DEAD 1 /* Nexthop is dead (used by multipath) */
333338 #define RTNH_F_PERVASIVE 2 /* Do recursive gateway lookup */
334339 #define RTNH_F_ONLINK 4 /* Gateway is forced on link */
340+#define RTNH_F_EXTERNAL 8 /* Route installed externally */
335341
336342 /* Macros to handle hexthops */
337343
@@ -344,6 +350,12 @@ struct rtnexthop { · 6 unmodified lines
344350 #define RTNH_SPACE(len) RTNH_ALIGN(RTNH_LENGTH(len))
345351 #define RTNH_DATA(rtnh) ((struct rtattr*)(((char*)(rtnh)) + RTNH_LENGTH(0)))
346352
353+/* RTA_VIA */
354+struct rtvia {
355+ __kernel_sa_family_t rtvia_family;
356+ __u8 rtvia_addr[0];
357+};
358+
347359 /* RTM_CACHEINFO */
348360
349361 struct rta_cacheinfo {
@@ -623,6 +635,10 @@ enum rtnetlink_groups { · 273 unmodified lines
623635 #define RTNLGRP_IPV6_NETCONF RTNLGRP_IPV6_NETCONF
624636 RTNLGRP_MDB,
625637 #define RTNLGRP_MDB RTNLGRP_MDB
638+ RTNLGRP_MPLS_ROUTE,
639+#define RTNLGRP_MPLS_ROUTE RTNLGRP_MPLS_ROUTE
640+ RTNLGRP_NSID,
641+#define RTNLGRP_NSID RTNLGRP_NSID
626642 __RTNLGRP_MAX
627643 };
628644 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
include/uapi/linux/tc_act/tc_bpf.h+2−0
@@ -24,6 +24,8 @@ enum { · 23 unmodified lines
2424 TCA_ACT_BPF_PARMS,
2525 TCA_ACT_BPF_OPS_LEN,
2626 TCA_ACT_BPF_OPS,
27+ TCA_ACT_BPF_FD,
28+ TCA_ACT_BPF_NAME,
2729 __TCA_ACT_BPF_MAX,
2830 };
2931 #define TCA_ACT_BPF_MAX (__TCA_ACT_BPF_MAX - 1)
include/uapi/linux/tipc_netlink.h+9−0
@@ -83,11 +83,20 @@ enum { · 82 unmodified lines
8383 TIPC_NLA_BEARER_NAME, /* string */
8484 TIPC_NLA_BEARER_PROP, /* nest */
8585 TIPC_NLA_BEARER_DOMAIN, /* u32 */
86+ TIPC_NLA_BEARER_UDP_OPTS, /* nest */
8687
8788 __TIPC_NLA_BEARER_MAX,
8889 TIPC_NLA_BEARER_MAX = __TIPC_NLA_BEARER_MAX - 1
8990 };
9091
92+enum {
93+ TIPC_NLA_UDP_UNSPEC,
94+ TIPC_NLA_UDP_LOCAL, /* sockaddr_storage */
95+ TIPC_NLA_UDP_REMOTE, /* sockaddr_storage */
96+
97+ __TIPC_NLA_UDP_MAX,
98+ TIPC_NLA_UDP_MAX = __TIPC_NLA_UDP_MAX - 1
99+};
91100 /* Socket info */
92101 enum {
93102 TIPC_NLA_SOCK_UNSPEC,
include/uapi/linux/vfio.h+2−0
@@ -160,6 +160,8 @@ struct vfio_device_info { · 159 unmodified lines
160160 __u32 flags;
161161 #define VFIO_DEVICE_FLAGS_RESET (1 << 0) /* Device supports reset */
162162 #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */
163+#define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */
164+#define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */
163165 __u32 num_regions; /* Max region index + 1 */
164166 __u32 num_irqs; /* Max IRQ index + 1 */
165167 };
include/uapi/linux/xfrm.h+2−0
@@ -1,6 +1,7 @@
11 #ifndef _LINUX_XFRM_H
22 #define _LINUX_XFRM_H
33
4+#include <linux/in6.h>
45 #include <linux/types.h>
56
67 /* All of the structures in this file may not change size as they are
@@ -13,6 +14,7 @@ · 6 unmodified lines
1314 typedef union {
1415 __be32 a4;
1516 __be32 a6[4];
17+ struct in6_addr in6;
1618 } xfrm_address_t;
1719
1820 /* Ident of a specific xfrm_state. It is used on input to lookup