History

Merge tag 'v4.0-rc1' into perf/core, to refresh the tree

Ingo Molnar committed 11 years ago

Commit e9e4e442 parents 8a26ce4 c517d838443 files · +371440 −196089Browse files

Showing the changes to include/uapi (58 of 8443 files). Show all

Unified · Split

58 files
  1. include/uapi/drm/drm.h +8 −0
  2. include/uapi/drm/drm_fourcc.h +0 −3
  3. include/uapi/drm/drm_mode.h +34 −4
  4. include/uapi/drm/i915_drm.h +29 −1
  5. include/uapi/linux/Kbuild +2 −1
  6. include/uapi/linux/am437x-vpfe.h +122 −0
  7. include/uapi/linux/btrfs.h +1 −2
  8. include/uapi/linux/dm-ioctl.h +2 −2
  9. include/uapi/linux/ethtool.h +3 −1
  10. include/uapi/linux/fou.h +1 −0
  11. include/uapi/linux/fs.h +3 −1
  12. include/uapi/linux/if_bridge.h +2 −0
  13. include/uapi/linux/if_link.h +5 −0
  14. include/uapi/linux/in.h +1 −0
  15. include/uapi/linux/input.h +1 −0
  16. include/uapi/linux/ipv6.h +6 −1
  17. include/uapi/linux/kernel-page-flags.h +1 −0
  18. include/uapi/linux/kexec.h +0 −6
  19. include/uapi/linux/kvm.h +9 −0
  20. include/uapi/linux/l2tp.h +1 −0
  21. include/uapi/linux/libc-compat.h +6 −0
  22. include/uapi/linux/mempolicy.h +1 −1
  23. include/uapi/linux/msdos_fs.h +2 −2
  24. include/uapi/linux/neighbour.h +1 −0
  25. include/uapi/linux/net_namespace.h +23 −0
  26. include/uapi/linux/net_tstamp.h +2 −1
  27. include/uapi/linux/nfc.h +1 −0
  28. include/uapi/linux/nfsd/debug.h +1 −0
  29. include/uapi/linux/nfsd/export.h +3 −1
  30. include/uapi/linux/nl80211.h +176 −31
  31. include/uapi/linux/nvme.h +25 −1
  32. include/uapi/linux/openvswitch.h +52 −1
  33. include/uapi/linux/pci_regs.h +4 −0
  34. include/uapi/linux/pkt_sched.h +2 −0
  35. include/uapi/linux/prctl.h +5 −0
  36. include/uapi/linux/quota.h +13 −1
  37. include/uapi/linux/rtnetlink.h +8 −0
  38. include/uapi/linux/serial_core.h +11 −1
  39. include/uapi/linux/serial_reg.h +2 −1
  40. include/uapi/linux/snmp.h +6 −0
  41. include/uapi/linux/som.h +0 −154
  42. include/uapi/linux/tc_act/Kbuild +1 −0
  43. include/uapi/linux/tc_act/tc_bpf.h +31 −0
  44. include/uapi/linux/tc_act/tc_connmark.h +22 −0
  45. include/uapi/linux/tipc_config.h +20 −0
  46. include/uapi/linux/usb/functionfs.h +1 −0
  47. include/uapi/linux/usbdevice_fs.h +2 −1
  48. include/uapi/linux/v4l2-controls.h +4 −0
  49. include/uapi/linux/vfio.h +1 −0
  50. include/uapi/linux/videodev2.h +9 −8
  51. include/uapi/linux/virtio_balloon.h +1 −2
  52. include/uapi/linux/virtio_blk.h +13 −4
  53. include/uapi/linux/virtio_config.h +2 −0
  54. include/uapi/linux/virtio_net.h +33 −9
  55. include/uapi/linux/virtio_pci.h +92 −1
  56. include/uapi/rdma/ib_user_verbs.h +1 −5
  57. include/uapi/sound/asound.h +1 −0
  58. include/uapi/sound/usb_stream.h +76 −0
include/uapi/drm/drm.h+8−0
@@ -654,6 +654,13 @@ struct drm_get_cap { · 653 unmodified lines
654654 */
655655 #define DRM_CLIENT_CAP_UNIVERSAL_PLANES 2
656656
657+/**
658+ * DRM_CLIENT_CAP_ATOMIC
659+ *
660+ * If set to 1, the DRM core will expose atomic properties to userspace
661+ */
662+#define DRM_CLIENT_CAP_ATOMIC 3
663+
657664 /** DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
658665 struct drm_set_client_cap {
659666 __u64 capability;
@@ -777,6 +784,7 @@ struct drm_prime_handle { · 117 unmodified lines
777784 #define DRM_IOCTL_MODE_OBJ_GETPROPERTIES DRM_IOWR(0xB9, struct drm_mode_obj_get_properties)
778785 #define DRM_IOCTL_MODE_OBJ_SETPROPERTY DRM_IOWR(0xBA, struct drm_mode_obj_set_property)
779786 #define DRM_IOCTL_MODE_CURSOR2 DRM_IOWR(0xBB, struct drm_mode_cursor2)
787+#define DRM_IOCTL_MODE_ATOMIC DRM_IOWR(0xBC, struct drm_mode_atomic)
780788
781789 /**
782790 * Device specific ioctls should only be in their respective headers
include/uapi/drm/drm_fourcc.h+0−3
@@ -109,9 +109,6 @@ · 108 unmodified lines
109109 #define DRM_FORMAT_NV24 fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
110110 #define DRM_FORMAT_NV42 fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
111111
112−/* special NV12 tiled format */
113−#define DRM_FORMAT_NV12MT fourcc_code('T', 'M', '1', '2') /* 2x2 subsampled Cr:Cb plane 64x32 macroblocks */
114−
115112 /*
116113 * 3 plane YCbCr
117114 * index 0: Y plane, [7:0] Y
include/uapi/drm/drm_mode.h+34−4
@@ -272,6 +272,13 @@ struct drm_mode_get_connector { · 271 unmodified lines
272272 #define DRM_MODE_PROP_OBJECT DRM_MODE_PROP_TYPE(1)
273273 #define DRM_MODE_PROP_SIGNED_RANGE DRM_MODE_PROP_TYPE(2)
274274
275+/* the PROP_ATOMIC flag is used to hide properties from userspace that
276+ * is not aware of atomic properties. This is mostly to work around
277+ * older userspace (DDX drivers) that read/write each prop they find,
278+ * witout being aware that this could be triggering a lengthy modeset.
279+ */
280+#define DRM_MODE_PROP_ATOMIC 0x80000000
281+
275282 struct drm_mode_property_enum {
276283 __u64 value;
277284 char name[DRM_PROP_NAME_LEN];
@@ -338,7 +345,7 @@ struct drm_mode_fb_cmd2 { · 60 unmodified lines
338345
339346 /*
340347 * In case of planar formats, this ioctl allows up to 4
341− * buffer objects with offets and pitches per plane.
348+ * buffer objects with offsets and pitches per plane.
342349 * The pitch and offset order is dictated by the fourcc,
343350 * e.g. NV12 (http://fourcc.org/yuv.php#NV12) is described as:
344351 *
@@ -346,9 +353,9 @@ struct drm_mode_fb_cmd2 { · 1 unmodified line
346353 * followed by an interleaved U/V plane containing
347354 * 8 bit 2x2 subsampled colour difference samples.
348355 *
349− * So it would consist of Y as offset[0] and UV as
350− * offeset[1]. Note that offset[0] will generally
351− * be 0.
356+ * So it would consist of Y as offsets[0] and UV as
357+ * offsets[1]. Note that offsets[0] will generally
358+ * be 0 (but this is not required).
352359 */
353360 __u32 handles[4];
354361 __u32 pitches[4]; /* pitch for each plane */
@@ -519,4 +526,27 @@ struct drm_mode_destroy_dumb { · 164 unmodified lines
519526 uint32_t handle;
520527 };
521528
529+/* page-flip flags are valid, plus: */
530+#define DRM_MODE_ATOMIC_TEST_ONLY 0x0100
531+#define DRM_MODE_ATOMIC_NONBLOCK 0x0200
532+#define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400
533+
534+#define DRM_MODE_ATOMIC_FLAGS (\
535+ DRM_MODE_PAGE_FLIP_EVENT |\
536+ DRM_MODE_PAGE_FLIP_ASYNC |\
537+ DRM_MODE_ATOMIC_TEST_ONLY |\
538+ DRM_MODE_ATOMIC_NONBLOCK |\
539+ DRM_MODE_ATOMIC_ALLOW_MODESET)
540+
541+struct drm_mode_atomic {
542+ __u32 flags;
543+ __u32 count_objs;
544+ __u64 objs_ptr;
545+ __u64 count_props_ptr;
546+ __u64 props_ptr;
547+ __u64 prop_values_ptr;
548+ __u64 reserved;
549+ __u64 user_data;
550+};
551+
522552 #endif
include/uapi/drm/i915_drm.h+29−1
@@ -224,6 +224,8 @@ typedef struct _drm_i915_sarea { · 223 unmodified lines
224224 #define DRM_I915_REG_READ 0x31
225225 #define DRM_I915_GET_RESET_STATS 0x32
226226 #define DRM_I915_GEM_USERPTR 0x33
227+#define DRM_I915_GEM_CONTEXT_GETPARAM 0x34
228+#define DRM_I915_GEM_CONTEXT_SETPARAM 0x35
227229
228230 #define DRM_IOCTL_I915_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
229231 #define DRM_IOCTL_I915_FLUSH DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -275,6 +277,8 @@ typedef struct _drm_i915_sarea { · 45 unmodified lines
275277 #define DRM_IOCTL_I915_REG_READ DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_REG_READ, struct drm_i915_reg_read)
276278 #define DRM_IOCTL_I915_GET_RESET_STATS DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GET_RESET_STATS, struct drm_i915_reset_stats)
277279 #define DRM_IOCTL_I915_GEM_USERPTR DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_USERPTR, struct drm_i915_gem_userptr)
280+#define DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_GETPARAM, struct drm_i915_gem_context_param)
281+#define DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_SETPARAM, struct drm_i915_gem_context_param)
278282
279283 /* Allow drivers to submit batchbuffers directly to hardware, relying
280284 * on the security mechanisms provided by hardware.
@@ -341,6 +345,8 @@ typedef struct drm_i915_irq_wait { · 60 unmodified lines
341345 #define I915_PARAM_HAS_WT 27
342346 #define I915_PARAM_CMD_PARSER_VERSION 28
343347 #define I915_PARAM_HAS_COHERENT_PHYS_GTT 29
348+#define I915_PARAM_MMAP_VERSION 30
349+#define I915_PARAM_HAS_BSD2 31
344350
345351 typedef struct drm_i915_getparam {
346352 int param;
@@ -488,6 +494,14 @@ struct drm_i915_gem_mmap { · 141 unmodified lines
488494 * This is a fixed-size type for 32/64 compatibility.
489495 */
490496 __u64 addr_ptr;
497+
498+ /**
499+ * Flags for extended behaviour.
500+ *
501+ * Added in version 2.
502+ */
503+ __u64 flags;
504+#define I915_MMAP_WC 0x1
491505 };
492506
493507 struct drm_i915_gem_mmap_gtt {
@@ -737,7 +751,13 @@ struct drm_i915_gem_execbuffer2 { · 243 unmodified lines
737751 */
738752 #define I915_EXEC_HANDLE_LUT (1<<12)
739753
740−#define __I915_EXEC_UNKNOWN_FLAGS -(I915_EXEC_HANDLE_LUT<<1)
754+/** Used for switching BSD rings on the platforms with two BSD rings */
755+#define I915_EXEC_BSD_MASK (3<<13)
756+#define I915_EXEC_BSD_DEFAULT (0<<13) /* default ping-pong mode */
757+#define I915_EXEC_BSD_RING1 (1<<13)
758+#define I915_EXEC_BSD_RING2 (2<<13)
759+
760+#define __I915_EXEC_UNKNOWN_FLAGS -(1<<15)
741761
742762 #define I915_EXEC_CONTEXT_ID_MASK (0xffffffff)
743763 #define i915_execbuffer2_set_context_id(eb2, context) \
@@ -1073,4 +1093,12 @@ struct drm_i915_gem_userptr { · 329 unmodified lines
10731093 __u32 handle;
10741094 };
10751095
1096+struct drm_i915_gem_context_param {
1097+ __u32 ctx_id;
1098+ __u32 size;
1099+ __u64 param;
1100+#define I915_CONTEXT_PARAM_BAN_PERIOD 0x1
1101+ __u64 value;
1102+};
1103+
10761104 #endif /* _UAPI_I915_DRM_H_ */
include/uapi/linux/Kbuild+2−1
@@ -35,6 +35,7 @@ header-y += adfs_fs.h · 34 unmodified lines
3535 header-y += affs_hardblocks.h
3636 header-y += agpgart.h
3737 header-y += aio_abi.h
38+header-y += am437x-vpfe.h
3839 header-y += apm_bios.h
3940 header-y += arcfb.h
4041 header-y += atalk.h
@@ -283,6 +284,7 @@ header-y += net.h · 242 unmodified lines
283284 header-y += netlink_diag.h
284285 header-y += netlink.h
285286 header-y += netrom.h
287+header-y += net_namespace.h
286288 header-y += net_tstamp.h
287289 header-y += nfc.h
288290 header-y += nfs2.h
@@ -368,7 +370,6 @@ header-y += snmp.h · 79 unmodified lines
368370 header-y += sock_diag.h
369371 header-y += socket.h
370372 header-y += sockios.h
371−header-y += som.h
372373 header-y += sonet.h
373374 header-y += sonypi.h
374375 header-y += soundcard.h
include/uapi/linux/am437x-vpfe.h+122−0
@@ -0,0 +1,122 @@
1+/*
2+ * Copyright (C) 2013 - 2014 Texas Instruments, Inc.
3+ *
4+ * Benoit Parrot <bparrot@ti.com>
5+ * Lad, Prabhakar <prabhakar.csengg@gmail.com>
6+ *
7+ * This program is free software; you may redistribute it and/or modify
8+ * it under the terms of the GNU General Public License as published by
9+ * the Free Software Foundation; version 2 of the License.
10+ *
11+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
12+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
13+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
14+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
15+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
16+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18+ * SOFTWARE.
19+ */
20+
21+#ifndef AM437X_VPFE_USER_H
22+#define AM437X_VPFE_USER_H
23+
24+enum vpfe_ccdc_data_size {
25+ VPFE_CCDC_DATA_16BITS = 0,
26+ VPFE_CCDC_DATA_15BITS,
27+ VPFE_CCDC_DATA_14BITS,
28+ VPFE_CCDC_DATA_13BITS,
29+ VPFE_CCDC_DATA_12BITS,
30+ VPFE_CCDC_DATA_11BITS,
31+ VPFE_CCDC_DATA_10BITS,
32+ VPFE_CCDC_DATA_8BITS,
33+};
34+
35+/* enum for No of pixel per line to be avg. in Black Clamping*/
36+enum vpfe_ccdc_sample_length {
37+ VPFE_CCDC_SAMPLE_1PIXELS = 0,
38+ VPFE_CCDC_SAMPLE_2PIXELS,
39+ VPFE_CCDC_SAMPLE_4PIXELS,
40+ VPFE_CCDC_SAMPLE_8PIXELS,
41+ VPFE_CCDC_SAMPLE_16PIXELS,
42+};
43+
44+/* enum for No of lines in Black Clamping */
45+enum vpfe_ccdc_sample_line {
46+ VPFE_CCDC_SAMPLE_1LINES = 0,
47+ VPFE_CCDC_SAMPLE_2LINES,
48+ VPFE_CCDC_SAMPLE_4LINES,
49+ VPFE_CCDC_SAMPLE_8LINES,
50+ VPFE_CCDC_SAMPLE_16LINES,
51+};
52+
53+/* enum for Alaw gamma width */
54+enum vpfe_ccdc_gamma_width {
55+ VPFE_CCDC_GAMMA_BITS_15_6 = 0, /* use bits 15-6 for gamma */
56+ VPFE_CCDC_GAMMA_BITS_14_5,
57+ VPFE_CCDC_GAMMA_BITS_13_4,
58+ VPFE_CCDC_GAMMA_BITS_12_3,
59+ VPFE_CCDC_GAMMA_BITS_11_2,
60+ VPFE_CCDC_GAMMA_BITS_10_1,
61+ VPFE_CCDC_GAMMA_BITS_09_0, /* use bits 9-0 for gamma */
62+};
63+
64+/* structure for ALaw */
65+struct vpfe_ccdc_a_law {
66+ /* Enable/disable A-Law */
67+ unsigned char enable;
68+ /* Gamma Width Input */
69+ enum vpfe_ccdc_gamma_width gamma_wd;
70+};
71+
72+/* structure for Black Clamping */
73+struct vpfe_ccdc_black_clamp {
74+ unsigned char enable;
75+ /* only if bClampEnable is TRUE */
76+ enum vpfe_ccdc_sample_length sample_pixel;
77+ /* only if bClampEnable is TRUE */
78+ enum vpfe_ccdc_sample_line sample_ln;
79+ /* only if bClampEnable is TRUE */
80+ unsigned short start_pixel;
81+ /* only if bClampEnable is TRUE */
82+ unsigned short sgain;
83+ /* only if bClampEnable is FALSE */
84+ unsigned short dc_sub;
85+};
86+
87+/* structure for Black Level Compensation */
88+struct vpfe_ccdc_black_compensation {
89+ /* Constant value to subtract from Red component */
90+ char r;
91+ /* Constant value to subtract from Gr component */
92+ char gr;
93+ /* Constant value to subtract from Blue component */
94+ char b;
95+ /* Constant value to subtract from Gb component */
96+ char gb;
97+};
98+
99+/* Structure for CCDC configuration parameters for raw capture mode passed
100+ * by application
101+ */
102+struct vpfe_ccdc_config_params_raw {
103+ /* data size value from 8 to 16 bits */
104+ enum vpfe_ccdc_data_size data_sz;
105+ /* Structure for Optional A-Law */
106+ struct vpfe_ccdc_a_law alaw;
107+ /* Structure for Optical Black Clamp */
108+ struct vpfe_ccdc_black_clamp blk_clamp;
109+ /* Structure for Black Compensation */
110+ struct vpfe_ccdc_black_compensation blk_comp;
111+};
112+
113+/*
114+ * Private IOCTL
115+ * VIDIOC_AM437X_CCDC_CFG - Set CCDC configuration for raw capture
116+ * This is an experimental ioctl that will change in future kernels. So use
117+ * this ioctl with care !
118+ **/
119+#define VIDIOC_AM437X_CCDC_CFG \
120+ _IOW('V', BASE_VIDIOC_PRIVATE + 1, void *)
121+
122+#endif /* AM437X_VPFE_USER_H */
include/uapi/linux/btrfs.h+1−2
@@ -495,8 +495,7 @@ struct btrfs_ioctl_send_args { · 494 unmodified lines
495495
496496 /* Error codes as returned by the kernel */
497497 enum btrfs_err_code {
498− notused,
499− BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET,
498+ BTRFS_ERROR_DEV_RAID1_MIN_NOT_MET = 1,
500499 BTRFS_ERROR_DEV_RAID10_MIN_NOT_MET,
501500 BTRFS_ERROR_DEV_RAID5_MIN_NOT_MET,
502501 BTRFS_ERROR_DEV_RAID6_MIN_NOT_MET,
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 29
270+#define DM_VERSION_MINOR 30
271271 #define DM_VERSION_PATCHLEVEL 0
272−#define DM_VERSION_EXTRA "-ioctl (2014-10-28)"
272+#define DM_VERSION_EXTRA "-ioctl (2014-12-22)"
273273
274274 /* Status bits */
275275 #define DM_READONLY_FLAG (1 << 0) /* In/Out */
include/uapi/linux/ethtool.h+3−1
@@ -139,6 +139,7 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 138 unmodified lines
139139
140140 #define ETHTOOL_FWVERS_LEN 32
141141 #define ETHTOOL_BUSINFO_LEN 32
142+#define ETHTOOL_EROMVERS_LEN 32
142143
143144 /**
144145 * struct ethtool_drvinfo - general driver and device information
@@ -148,6 +149,7 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep) · 3 unmodified lines
148149 * not be an empty string.
149150 * @version: Driver version string; may be an empty string
150151 * @fw_version: Firmware version string; may be an empty string
152+ * @erom_version: Expansion ROM version string; may be an empty string
151153 * @bus_info: Device bus address. This should match the dev_name()
152154 * string for the underlying bus device, if there is one. May be
153155 * an empty string.
@@ -176,7 +178,7 @@ struct ethtool_drvinfo { · 22 unmodified lines
176178 char version[32];
177179 char fw_version[ETHTOOL_FWVERS_LEN];
178180 char bus_info[ETHTOOL_BUSINFO_LEN];
179− char reserved1[32];
181+ char erom_version[ETHTOOL_EROMVERS_LEN];
180182 char reserved2[12];
181183 __u32 n_priv_flags;
182184 __u32 n_stats;
include/uapi/linux/fou.h+1−0
@@ -14,6 +14,7 @@ enum { · 13 unmodified lines
1414 FOU_ATTR_AF, /* u8 */
1515 FOU_ATTR_IPPROTO, /* u8 */
1616 FOU_ATTR_TYPE, /* u8 */
17+ FOU_ATTR_REMCSUM_NOPARTIAL, /* flag */
1718
1819 __FOU_ATTR_MAX,
1920 };
include/uapi/linux/fs.h+3−1
@@ -90,6 +90,7 @@ struct inodes_stat_t { · 89 unmodified lines
9090 #define MS_KERNMOUNT (1<<22) /* this is a kern_mount call */
9191 #define MS_I_VERSION (1<<23) /* Update inode I_version field */
9292 #define MS_STRICTATIME (1<<24) /* Always perform atime updates */
93+#define MS_LAZYTIME (1<<25) /* Update the on-disk [acm]times lazily */
9394
9495 /* These sb flags are internal to the kernel */
9596 #define MS_NOSEC (1<<28)
@@ -100,7 +101,8 @@ struct inodes_stat_t { · 4 unmodified lines
100101 /*
101102 * Superblock flags that can be altered by MS_REMOUNT
102103 */
103−#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
104+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION|\
105+ MS_LAZYTIME)
104106
105107 /*
106108 * Old magic mount flag and mask
include/uapi/linux/if_bridge.h+2−0
@@ -125,6 +125,8 @@ enum { · 124 unmodified lines
125125 #define BRIDGE_VLAN_INFO_MASTER (1<<0) /* Operate on Bridge device as well */
126126 #define BRIDGE_VLAN_INFO_PVID (1<<1) /* VLAN is PVID, ingress untagged */
127127 #define BRIDGE_VLAN_INFO_UNTAGGED (1<<2) /* VLAN egresses untagged */
128+#define BRIDGE_VLAN_INFO_RANGE_BEGIN (1<<3) /* VLAN is start of vlan range */
129+#define BRIDGE_VLAN_INFO_RANGE_END (1<<4) /* VLAN is end of vlan range */
128130
129131 struct bridge_vlan_info {
130132 __u16 flags;
include/uapi/linux/if_link.h+5−0
@@ -146,6 +146,7 @@ enum { · 145 unmodified lines
146146 IFLA_PHYS_PORT_ID,
147147 IFLA_CARRIER_CHANGES,
148148 IFLA_PHYS_SWITCH_ID,
149+ IFLA_LINK_NETNSID,
149150 __IFLA_MAX
150151 };
151152
@@ -370,6 +371,10 @@ enum { · 218 unmodified lines
370371 IFLA_VXLAN_UDP_CSUM,
371372 IFLA_VXLAN_UDP_ZERO_CSUM6_TX,
372373 IFLA_VXLAN_UDP_ZERO_CSUM6_RX,
374+ IFLA_VXLAN_REMCSUM_TX,
375+ IFLA_VXLAN_REMCSUM_RX,
376+ IFLA_VXLAN_GBP,
377+ IFLA_VXLAN_REMCSUM_NOPARTIAL,
373378 __IFLA_VXLAN_MAX
374379 };
375380 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
include/uapi/linux/in.h+1−0
@@ -109,6 +109,7 @@ struct in_addr { · 108 unmodified lines
109109
110110 #define IP_MINTTL 21
111111 #define IP_NODEFRAG 22
112+#define IP_CHECKSUM 23
112113
113114 /* IP_MTU_DISCOVER values */
114115 #define IP_PMTUDISC_DONT 0 /* Never send DF frames */
include/uapi/linux/input.h+1−0
@@ -166,6 +166,7 @@ struct input_keymap_entry { · 165 unmodified lines
166166 #define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */
167167 #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */
168168 #define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */
169+#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */
169170
170171 #define INPUT_PROP_MAX 0x1f
171172 #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1)
include/uapi/linux/ipv6.h+6−1
@@ -1,6 +1,7 @@
11 #ifndef _UAPI_IPV6_H
22 #define _UAPI_IPV6_H
33
4+#include <linux/libc-compat.h>
45 #include <linux/types.h>
56 #include <linux/in6.h>
67 #include <asm/byteorder.h>
@@ -15,16 +16,19 @@ · 8 unmodified lines
1516 * *under construction*
1617 */
1718
18−
19+#if __UAPI_DEF_IN6_PKTINFO
1920 struct in6_pktinfo {
2021 struct in6_addr ipi6_addr;
2122 int ipi6_ifindex;
2223 };
24+#endif
2325
26+#if __UAPI_DEF_IP6_MTUINFO
2427 struct ip6_mtuinfo {
2528 struct sockaddr_in6 ip6m_addr;
2629 __u32 ip6m_mtu;
2730 };
31+#endif
2832
2933 struct in6_ifreq {
3034 struct in6_addr ifr6_addr;
@@ -165,6 +169,7 @@ enum { · 134 unmodified lines
165169 DEVCONF_SUPPRESS_FRAG_NDISC,
166170 DEVCONF_ACCEPT_RA_FROM_LOCAL,
167171 DEVCONF_USE_OPTIMISTIC,
172+ DEVCONF_ACCEPT_RA_MTU,
168173 DEVCONF_MAX
169174 };
170175
include/uapi/linux/kernel-page-flags.h+1−0
@@ -32,6 +32,7 @@ · 31 unmodified lines
3232 #define KPF_KSM 21
3333 #define KPF_THP 22
3434 #define KPF_BALLOON 23
35+#define KPF_ZERO_PAGE 24
3536
3637
3738 #endif /* _UAPILINUX_KERNEL_PAGE_FLAGS_H */
include/uapi/linux/kexec.h+0−6
@@ -55,12 +55,6 @@ struct kexec_segment { · 54 unmodified lines
5555 size_t memsz;
5656 };
5757
58−/* Load a new kernel image as described by the kexec_segment array
59− * consisting of passed number of segments at the entry-point address.
60− * The flags allow different useage types.
61− */
62−extern int kexec_load(void *, size_t, struct kexec_segment *,
63− unsigned long int);
6458 #endif /* __KERNEL__ */
6559
6660 #endif /* _UAPILINUX_KEXEC_H */
include/uapi/linux/kvm.h+9−0
@@ -491,6 +491,11 @@ struct kvm_s390_emerg_info { · 490 unmodified lines
491491 __u16 code;
492492 };
493493
494+#define KVM_S390_STOP_FLAG_STORE_STATUS 0x01
495+struct kvm_s390_stop_info {
496+ __u32 flags;
497+};
498+
494499 struct kvm_s390_mchk_info {
495500 __u64 cr14;
496501 __u64 mcic;
@@ -509,6 +514,7 @@ struct kvm_s390_irq { · 12 unmodified lines
509514 struct kvm_s390_emerg_info emerg;
510515 struct kvm_s390_extcall_info extcall;
511516 struct kvm_s390_prefix_info prefix;
517+ struct kvm_s390_stop_info stop;
512518 struct kvm_s390_mchk_info mchk;
513519 char reserved[64];
514520 } u;
@@ -753,6 +759,7 @@ struct kvm_ppc_smmu_info { · 238 unmodified lines
753759 #define KVM_CAP_PPC_FIXUP_HCALL 103
754760 #define KVM_CAP_PPC_ENABLE_HCALL 104
755761 #define KVM_CAP_CHECK_EXTENSION_VM 105
762+#define KVM_CAP_S390_USER_SIGP 106
756763
757764 #ifdef KVM_CAP_IRQ_ROUTING
758765
@@ -952,6 +959,8 @@ enum kvm_device_type { · 193 unmodified lines
952959 #define KVM_DEV_TYPE_ARM_VGIC_V2 KVM_DEV_TYPE_ARM_VGIC_V2
953960 KVM_DEV_TYPE_FLIC,
954961 #define KVM_DEV_TYPE_FLIC KVM_DEV_TYPE_FLIC
962+ KVM_DEV_TYPE_ARM_VGIC_V3,
963+#define KVM_DEV_TYPE_ARM_VGIC_V3 KVM_DEV_TYPE_ARM_VGIC_V3
955964 KVM_DEV_TYPE_MAX,
956965 };
957966
include/uapi/linux/l2tp.h+1−0
@@ -178,5 +178,6 @@ enum l2tp_seqmode { · 177 unmodified lines
178178 */
179179 #define L2TP_GENL_NAME "l2tp"
180180 #define L2TP_GENL_VERSION 0x1
181+#define L2TP_GENL_MCGROUP "l2tp"
181182
182183 #endif /* _UAPI_LINUX_L2TP_H_ */
include/uapi/linux/libc-compat.h+6−0
@@ -70,6 +70,8 @@ · 69 unmodified lines
7070 #define __UAPI_DEF_IPV6_MREQ 0
7171 #define __UAPI_DEF_IPPROTO_V6 0
7272 #define __UAPI_DEF_IPV6_OPTIONS 0
73+#define __UAPI_DEF_IN6_PKTINFO 0
74+#define __UAPI_DEF_IP6_MTUINFO 0
7375
7476 #else
7577
@@ -84,6 +86,8 @@ · 8 unmodified lines
8486 #define __UAPI_DEF_IPV6_MREQ 1
8587 #define __UAPI_DEF_IPPROTO_V6 1
8688 #define __UAPI_DEF_IPV6_OPTIONS 1
89+#define __UAPI_DEF_IN6_PKTINFO 1
90+#define __UAPI_DEF_IP6_MTUINFO 1
8791
8892 #endif /* _NETINET_IN_H */
8993
@@ -106,6 +110,8 @@ · 16 unmodified lines
106110 #define __UAPI_DEF_IPV6_MREQ 1
107111 #define __UAPI_DEF_IPPROTO_V6 1
108112 #define __UAPI_DEF_IPV6_OPTIONS 1
113+#define __UAPI_DEF_IN6_PKTINFO 1
114+#define __UAPI_DEF_IP6_MTUINFO 1
109115
110116 /* Definitions for xattr.h */
111117 #define __UAPI_DEF_XATTR 1
include/uapi/linux/mempolicy.h+1−1
@@ -67,7 +67,7 @@ enum mpol_rebind_step { · 66 unmodified lines
6767 #define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */
6868 #define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */
6969 #define MPOL_F_MOF (1 << 3) /* this policy wants migrate on fault */
70−#define MPOL_F_MORON (1 << 4) /* Migrate On pte_numa Reference On Node */
70+#define MPOL_F_MORON (1 << 4) /* Migrate On protnone Reference On Node */
7171
7272
7373 #endif /* _UAPI_LINUX_MEMPOLICY_H */
include/uapi/linux/msdos_fs.h+2−2
@@ -134,7 +134,7 @@ struct fat_boot_sector { · 133 unmodified lines
134134 __u8 vol_id[4]; /* volume ID */
135135 __u8 vol_label[11]; /* volume label */
136136 __u8 fs_type[8]; /* file system type */
137− /* other fiealds are not added here */
137+ /* other fields are not added here */
138138 } fat16;
139139
140140 struct {
@@ -157,7 +157,7 @@ struct fat_boot_sector { · 16 unmodified lines
157157 __u8 vol_id[4]; /* volume ID */
158158 __u8 vol_label[11]; /* volume label */
159159 __u8 fs_type[8]; /* file system type */
160− /* other fiealds are not added here */
160+ /* other fields are not added here */
161161 } fat32;
162162 };
163163 };
include/uapi/linux/neighbour.h+1−0
@@ -25,6 +25,7 @@ enum { · 24 unmodified lines
2525 NDA_VNI,
2626 NDA_IFINDEX,
2727 NDA_MASTER,
28+ NDA_LINK_NETNSID,
2829 __NDA_MAX
2930 };
3031
include/uapi/linux/net_namespace.h+23−0
@@ -0,0 +1,23 @@
1+/* Copyright (c) 2015 6WIND S.A.
2+ * Author: Nicolas Dichtel <nicolas.dichtel@6wind.com>
3+ *
4+ * This program is free software; you can redistribute it and/or modify it
5+ * under the terms and conditions of the GNU General Public License,
6+ * version 2, as published by the Free Software Foundation.
7+ */
8+#ifndef _UAPI_LINUX_NET_NAMESPACE_H_
9+#define _UAPI_LINUX_NET_NAMESPACE_H_
10+
11+/* Attributes of RTM_NEWNSID/RTM_GETNSID messages */
12+enum {
13+ NETNSA_NONE,
14+#define NETNSA_NSID_NOT_ASSIGNED -1
15+ NETNSA_NSID,
16+ NETNSA_PID,
17+ NETNSA_FD,
18+ __NETNSA_MAX,
19+};
20+
21+#define NETNSA_MAX (__NETNSA_MAX - 1)
22+
23+#endif /* _UAPI_LINUX_NET_NAMESPACE_H_ */
include/uapi/linux/net_tstamp.h+2−1
@@ -24,8 +24,9 @@ enum { · 23 unmodified lines
2424 SOF_TIMESTAMPING_TX_SCHED = (1<<8),
2525 SOF_TIMESTAMPING_TX_ACK = (1<<9),
2626 SOF_TIMESTAMPING_OPT_CMSG = (1<<10),
27+ SOF_TIMESTAMPING_OPT_TSONLY = (1<<11),
2728
28− SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_CMSG,
29+ SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TSONLY,
2930 SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
3031 SOF_TIMESTAMPING_LAST
3132 };
include/uapi/linux/nfc.h+1−0
@@ -183,6 +183,7 @@ enum nfc_attrs { · 182 unmodified lines
183183 NFC_ATTR_SE_APDU,
184184 NFC_ATTR_TARGET_ISO15693_DSFID,
185185 NFC_ATTR_TARGET_ISO15693_UID,
186+ NFC_ATTR_SE_PARAMS,
186187 /* private: internal use only */
187188 __NFC_ATTR_AFTER_LAST
188189 };
include/uapi/linux/nfsd/debug.h+1−0
@@ -32,6 +32,7 @@ · 31 unmodified lines
3232 #define NFSDDBG_REPCACHE 0x0080
3333 #define NFSDDBG_XDR 0x0100
3434 #define NFSDDBG_LOCKD 0x0200
35+#define NFSDDBG_PNFS 0x0400
3536 #define NFSDDBG_ALL 0x7FFF
3637 #define NFSDDBG_NOCHANGE 0xFFFF
3738
include/uapi/linux/nfsd/export.h+3−1
@@ -47,8 +47,10 @@ · 46 unmodified lines
4747 * exported filesystem.
4848 */
4949 #define NFSEXP_V4ROOT 0x10000
50+#define NFSEXP_NOPNFS 0x20000
51+
5052 /* All flags that we claim to support. (Note we don't support NOACL.) */
51−#define NFSEXP_ALLFLAGS 0x1FE7F
53+#define NFSEXP_ALLFLAGS 0x3FE7F
5254
5355 /* The flags that may vary depending on security flavor: */
5456 #define NFSEXP_SECINFO_FLAGS (NFSEXP_READONLY | NFSEXP_ROOTSQUASH \
include/uapi/linux/nl80211.h+176−31
@@ -29,6 +29,13 @@ · 28 unmodified lines
2929
3030 #define NL80211_GENL_NAME "nl80211"
3131
32+#define NL80211_MULTICAST_GROUP_CONFIG "config"
33+#define NL80211_MULTICAST_GROUP_SCAN "scan"
34+#define NL80211_MULTICAST_GROUP_REG "regulatory"
35+#define NL80211_MULTICAST_GROUP_MLME "mlme"
36+#define NL80211_MULTICAST_GROUP_VENDOR "vendor"
37+#define NL80211_MULTICAST_GROUP_TESTMODE "testmode"
38+
3239 /**
3340 * DOC: Station handling
3441 *
@@ -173,8 +180,8 @@ · 138 unmodified lines
173180 * %NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME.
174181 *
175182 * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration;
176− * either a dump request on a %NL80211_ATTR_WIPHY or a specific get
177− * on an %NL80211_ATTR_IFINDEX is supported.
183+ * either a dump request for all interfaces or a specific get with a
184+ * single %NL80211_ATTR_IFINDEX is supported.
178185 * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires
179186 * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE.
180187 * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response
@@ -252,7 +259,18 @@ · 71 unmodified lines
252259 * %NL80211_ATTR_IFINDEX.
253260 *
254261 * @NL80211_CMD_GET_REG: ask the wireless core to send us its currently set
255− * regulatory domain.
262+ * regulatory domain. If %NL80211_ATTR_WIPHY is specified and the device
263+ * has a private regulatory domain, it will be returned. Otherwise, the
264+ * global regdomain will be returned.
265+ * A device will have a private regulatory domain if it uses the
266+ * regulatory_hint() API. Even when a private regdomain is used the channel
267+ * information will still be mended according to further hints from
268+ * the regulatory core to help with compliance. A dump version of this API
269+ * is now available which will returns the global regdomain as well as
270+ * all private regdomains of present wiphys (for those that have it).
271+ * If a wiphy is self-managed (%NL80211_ATTR_WIPHY_SELF_MANAGED_REG), then
272+ * its private regdomain is the only valid one for it. The regulatory
273+ * core is not used to help with compliance in this case.
256274 * @NL80211_CMD_SET_REG: Set current regulatory domain. CRDA sends this command
257275 * after being queried by the kernel. CRDA replies by sending a regulatory
258276 * domain structure which consists of %NL80211_ATTR_REG_ALPHA set to our
@@ -306,7 +324,9 @@ · 47 unmodified lines
306324 * if passed, define which channels should be scanned; if not
307325 * passed, all channels allowed for the current regulatory domain
308326 * are used. Extra IEs can also be passed from the userspace by
309− * using the %NL80211_ATTR_IE attribute.
327+ * using the %NL80211_ATTR_IE attribute. The first cycle of the
328+ * scheduled scan can be delayed by %NL80211_ATTR_SCHED_SCAN_DELAY
329+ * is supplied.
310330 * @NL80211_CMD_STOP_SCHED_SCAN: stop a scheduled scan. Returns -ENOENT if
311331 * scheduled scan is not running. The caller may assume that as soon
312332 * as the call returns, it is safe to start a new scheduled scan again.
@@ -774,6 +794,10 @@ · 461 unmodified lines
774794 * peer given by %NL80211_ATTR_MAC. Both peers must be on the base channel
775795 * when this command completes.
776796 *
797+ * @NL80211_CMD_WIPHY_REG_CHANGE: Similar to %NL80211_CMD_REG_CHANGE, but used
798+ * as an event to indicate changes for devices with wiphy-specific regdom
799+ * management.
800+ *
777801 * @NL80211_CMD_MAX: highest used command number
778802 * @__NL80211_CMD_AFTER_LAST: internal use
779803 */
@@ -958,6 +982,8 @@ enum nl80211_commands { · 178 unmodified lines
958982 NL80211_CMD_TDLS_CHANNEL_SWITCH,
959983 NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH,
960984
985+ NL80211_CMD_WIPHY_REG_CHANGE,
986+
961987 /* add new commands above here */
962988
963989 /* used to define NL80211_CMD_MAX below */
@@ -1655,6 +1681,9 @@ enum nl80211_commands { · 691 unmodified lines
16551681 * @NL80211_ATTR_SOCKET_OWNER: Flag attribute, if set during interface
16561682 * creation then the new interface will be owned by the netlink socket
16571683 * that created it and will be destroyed when the socket is closed.
1684+ * If set during scheduled scan start then the new scan req will be
1685+ * owned by the netlink socket that created it and the scheduled scan will
1686+ * be stopped when the socket is closed.
16581687 *
16591688 * @NL80211_ATTR_TDLS_INITIATOR: flag attribute indicating the current end is
16601689 * the TDLS link initiator.
@@ -1688,6 +1717,29 @@ enum nl80211_commands { · 27 unmodified lines
16881717 *
16891718 * @NL80211_ATTR_MAC_MASK: MAC address mask
16901719 *
1720+ * @NL80211_ATTR_WIPHY_SELF_MANAGED_REG: flag attribute indicating this device
1721+ * is self-managing its regulatory information and any regulatory domain
1722+ * obtained from it is coming from the device's wiphy and not the global
1723+ * cfg80211 regdomain.
1724+ *
1725+ * @NL80211_ATTR_EXT_FEATURES: extended feature flags contained in a byte
1726+ * array. The feature flags are identified by their bit index (see &enum
1727+ * nl80211_ext_feature_index). The bit index is ordered starting at the
1728+ * least-significant bit of the first byte in the array, ie. bit index 0
1729+ * is located at bit 0 of byte 0. bit index 25 would be located at bit 1
1730+ * of byte 3 (u8 array).
1731+ *
1732+ * @NL80211_ATTR_SURVEY_RADIO_STATS: Request overall radio statistics to be
1733+ * returned along with other survey data. If set, @NL80211_CMD_GET_SURVEY
1734+ * may return a survey entry without a channel indicating global radio
1735+ * statistics (only some values are valid and make sense.)
1736+ * For devices that don't return such an entry even then, the information
1737+ * should be contained in the result as the sum of the respective counters
1738+ * over all channels.
1739+ *
1740+ * @NL80211_ATTR_SCHED_SCAN_DELAY: delay before a scheduled scan (or a
1741+ * WoWLAN net-detect scan) is started, u32 in seconds.
1742+ *
16911743 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
16921744 * @NL80211_ATTR_MAX: highest attribute number currently defined
16931745 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2045,6 +2097,16 @@ enum nl80211_attrs { · 351 unmodified lines
20452097
20462098 NL80211_ATTR_MAC_MASK,
20472099
2100+ NL80211_ATTR_WIPHY_SELF_MANAGED_REG,
2101+
2102+ NL80211_ATTR_EXT_FEATURES,
2103+
2104+ NL80211_ATTR_SURVEY_RADIO_STATS,
2105+
2106+ NL80211_ATTR_NETNS_FD,
2107+
2108+ NL80211_ATTR_SCHED_SCAN_DELAY,
2109+
20482110 /* add attributes here, update the policy in nl80211.c */
20492111
20502112 __NL80211_ATTR_AFTER_LAST,
@@ -2085,7 +2147,7 @@ enum nl80211_attrs { · 34 unmodified lines
20852147
20862148 #define NL80211_MAX_SUPP_RATES 32
20872149 #define NL80211_MAX_SUPP_HT_RATES 77
2088−#define NL80211_MAX_SUPP_REG_RULES 32
2150+#define NL80211_MAX_SUPP_REG_RULES 64
20892151 #define NL80211_TKIP_DATA_OFFSET_ENCR_KEY 0
20902152 #define NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY 16
20912153 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
@@ -2225,8 +2287,15 @@ struct nl80211_sta_flag_update { · 133 unmodified lines
22252287 * @NL80211_RATE_INFO_VHT_MCS: MCS index for VHT (u8)
22262288 * @NL80211_RATE_INFO_VHT_NSS: number of streams in VHT (u8)
22272289 * @NL80211_RATE_INFO_80_MHZ_WIDTH: 80 MHz VHT rate
2228− * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: 80+80 MHz VHT rate
2290+ * @NL80211_RATE_INFO_80P80_MHZ_WIDTH: unused - 80+80 is treated the
2291+ * same as 160 for purposes of the bitrates
22292292 * @NL80211_RATE_INFO_160_MHZ_WIDTH: 160 MHz VHT rate
2293+ * @NL80211_RATE_INFO_10_MHZ_WIDTH: 10 MHz width - note that this is
2294+ * a legacy rate and will be reported as the actual bitrate, i.e.
2295+ * half the base (20 MHz) rate
2296+ * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is
2297+ * a legacy rate and will be reported as the actual bitrate, i.e.
2298+ * a quarter of the base (20 MHz) rate
22302299 * @__NL80211_RATE_INFO_AFTER_LAST: internal use
22312300 */
22322301 enum nl80211_rate_info {
@@ -2241,6 +2310,8 @@ enum nl80211_rate_info { · 8 unmodified lines
22412310 NL80211_RATE_INFO_80_MHZ_WIDTH,
22422311 NL80211_RATE_INFO_80P80_MHZ_WIDTH,
22432312 NL80211_RATE_INFO_160_MHZ_WIDTH,
2313+ NL80211_RATE_INFO_10_MHZ_WIDTH,
2314+ NL80211_RATE_INFO_5_MHZ_WIDTH,
22442315
22452316 /* keep last */
22462317 __NL80211_RATE_INFO_AFTER_LAST,
@@ -2285,18 +2356,24 @@ enum nl80211_sta_bss_param { · 38 unmodified lines
22852356 *
22862357 * @__NL80211_STA_INFO_INVALID: attribute number 0 is reserved
22872358 * @NL80211_STA_INFO_INACTIVE_TIME: time since last activity (u32, msecs)
2288− * @NL80211_STA_INFO_RX_BYTES: total received bytes (u32, from this station)
2289− * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (u32, to this station)
2290− * @NL80211_STA_INFO_RX_BYTES64: total received bytes (u64, from this station)
2291− * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (u64, to this station)
2359+ * @NL80211_STA_INFO_RX_BYTES: total received bytes (MPDU length)
2360+ * (u32, from this station)
2361+ * @NL80211_STA_INFO_TX_BYTES: total transmitted bytes (MPDU length)
2362+ * (u32, to this station)
2363+ * @NL80211_STA_INFO_RX_BYTES64: total received bytes (MPDU length)
2364+ * (u64, from this station)
2365+ * @NL80211_STA_INFO_TX_BYTES64: total transmitted bytes (MPDU length)
2366+ * (u64, to this station)
22922367 * @NL80211_STA_INFO_SIGNAL: signal strength of last received PPDU (u8, dBm)
22932368 * @NL80211_STA_INFO_TX_BITRATE: current unicast tx rate, nested attribute
22942369 * containing info as possible, see &enum nl80211_rate_info
2295− * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station)
2296− * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this
2297− * station)
2298− * @NL80211_STA_INFO_TX_RETRIES: total retries (u32, to this station)
2299− * @NL80211_STA_INFO_TX_FAILED: total failed packets (u32, to this station)
2370+ * @NL80211_STA_INFO_RX_PACKETS: total received packet (MSDUs and MMPDUs)
2371+ * (u32, from this station)
2372+ * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (MSDUs and MMPDUs)
2373+ * (u32, to this station)
2374+ * @NL80211_STA_INFO_TX_RETRIES: total retries (MPDUs) (u32, to this station)
2375+ * @NL80211_STA_INFO_TX_FAILED: total failed packets (MPDUs)
2376+ * (u32, to this station)
23002377 * @NL80211_STA_INFO_SIGNAL_AVG: signal strength average (u8, dBm)
23012378 * @NL80211_STA_INFO_LLID: the station's mesh LLID
23022379 * @NL80211_STA_INFO_PLID: the station's mesh PLID
@@ -2320,6 +2397,16 @@ enum nl80211_sta_bss_param { · 17 unmodified lines
23202397 * Same format as NL80211_STA_INFO_CHAIN_SIGNAL.
23212398 * @NL80211_STA_EXPECTED_THROUGHPUT: expected throughput considering also the
23222399 * 802.11 header (u32, kbps)
2400+ * @NL80211_STA_INFO_RX_DROP_MISC: RX packets dropped for unspecified reasons
2401+ * (u64)
2402+ * @NL80211_STA_INFO_BEACON_RX: number of beacons received from this peer (u64)
2403+ * @NL80211_STA_INFO_BEACON_SIGNAL_AVG: signal strength average
2404+ * for beacons only (u8, dBm)
2405+ * @NL80211_STA_INFO_TID_STATS: per-TID statistics (see &enum nl80211_tid_stats)
2406+ * This is a nested attribute where each the inner attribute number is the
2407+ * TID+1 and the special TID 16 (i.e. value 17) is used for non-QoS frames;
2408+ * each one of those is again nested with &enum nl80211_tid_stats
2409+ * attributes carrying the actual values.
23232410 * @__NL80211_STA_INFO_AFTER_LAST: internal
23242411 * @NL80211_STA_INFO_MAX: highest possible station info attribute
23252412 */
@@ -2352,12 +2439,41 @@ enum nl80211_sta_info { · 26 unmodified lines
23522439 NL80211_STA_INFO_CHAIN_SIGNAL,
23532440 NL80211_STA_INFO_CHAIN_SIGNAL_AVG,
23542441 NL80211_STA_INFO_EXPECTED_THROUGHPUT,
2442+ NL80211_STA_INFO_RX_DROP_MISC,
2443+ NL80211_STA_INFO_BEACON_RX,
2444+ NL80211_STA_INFO_BEACON_SIGNAL_AVG,
2445+ NL80211_STA_INFO_TID_STATS,
23552446
23562447 /* keep last */
23572448 __NL80211_STA_INFO_AFTER_LAST,
23582449 NL80211_STA_INFO_MAX = __NL80211_STA_INFO_AFTER_LAST - 1
23592450 };
23602451
2452+/**
2453+ * enum nl80211_tid_stats - per TID statistics attributes
2454+ * @__NL80211_TID_STATS_INVALID: attribute number 0 is reserved
2455+ * @NL80211_TID_STATS_RX_MSDU: number of MSDUs received (u64)
2456+ * @NL80211_TID_STATS_TX_MSDU: number of MSDUs transmitted (or
2457+ * attempted to transmit; u64)
2458+ * @NL80211_TID_STATS_TX_MSDU_RETRIES: number of retries for
2459+ * transmitted MSDUs (not counting the first attempt; u64)
2460+ * @NL80211_TID_STATS_TX_MSDU_FAILED: number of failed transmitted
2461+ * MSDUs (u64)
2462+ * @NUM_NL80211_TID_STATS: number of attributes here
2463+ * @NL80211_TID_STATS_MAX: highest numbered attribute here
2464+ */
2465+enum nl80211_tid_stats {
2466+ __NL80211_TID_STATS_INVALID,
2467+ NL80211_TID_STATS_RX_MSDU,
2468+ NL80211_TID_STATS_TX_MSDU,
2469+ NL80211_TID_STATS_TX_MSDU_RETRIES,
2470+ NL80211_TID_STATS_TX_MSDU_FAILED,
2471+
2472+ /* keep last */
2473+ NUM_NL80211_TID_STATS,
2474+ NL80211_TID_STATS_MAX = NUM_NL80211_TID_STATS - 1
2475+};
2476+
23612477 /**
23622478 * enum nl80211_mpath_flags - nl80211 mesh path flags
23632479 *
@@ -2772,16 +2888,18 @@ enum nl80211_user_reg_hint_type { · 408 unmodified lines
27722888 * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
27732889 * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
27742890 * @NL80211_SURVEY_INFO_IN_USE: channel is currently being used
2775− * @NL80211_SURVEY_INFO_CHANNEL_TIME: amount of time (in ms) that the radio
2776− * spent on this channel
2777− * @NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY: amount of the time the primary
2891+ * @NL80211_SURVEY_INFO_TIME: amount of time (in ms) that the radio
2892+ * was turned on (on channel or globally)
2893+ * @NL80211_SURVEY_INFO_TIME_BUSY: amount of the time the primary
27782894 * channel was sensed busy (either due to activity or energy detect)
2779− * @NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY: amount of time the extension
2895+ * @NL80211_SURVEY_INFO_TIME_EXT_BUSY: amount of time the extension
27802896 * channel was sensed busy
2781− * @NL80211_SURVEY_INFO_CHANNEL_TIME_RX: amount of time the radio spent
2782− * receiving data
2783− * @NL80211_SURVEY_INFO_CHANNEL_TIME_TX: amount of time the radio spent
2784− * transmitting data
2897+ * @NL80211_SURVEY_INFO_TIME_RX: amount of time the radio spent
2898+ * receiving data (on channel or globally)
2899+ * @NL80211_SURVEY_INFO_TIME_TX: amount of time the radio spent
2900+ * transmitting data (on channel or globally)
2901+ * @NL80211_SURVEY_INFO_TIME_SCAN: time the radio spent for scan
2902+ * (on this channel or globally)
27852903 * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
27862904 * currently defined
27872905 * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
@@ -2791,17 +2909,25 @@ enum nl80211_survey_info { · 3 unmodified lines
27912909 NL80211_SURVEY_INFO_FREQUENCY,
27922910 NL80211_SURVEY_INFO_NOISE,
27932911 NL80211_SURVEY_INFO_IN_USE,
2794− NL80211_SURVEY_INFO_CHANNEL_TIME,
2795− NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY,
2796− NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY,
2797− NL80211_SURVEY_INFO_CHANNEL_TIME_RX,
2798− NL80211_SURVEY_INFO_CHANNEL_TIME_TX,
2912+ NL80211_SURVEY_INFO_TIME,
2913+ NL80211_SURVEY_INFO_TIME_BUSY,
2914+ NL80211_SURVEY_INFO_TIME_EXT_BUSY,
2915+ NL80211_SURVEY_INFO_TIME_RX,
2916+ NL80211_SURVEY_INFO_TIME_TX,
2917+ NL80211_SURVEY_INFO_TIME_SCAN,
27992918
28002919 /* keep last */
28012920 __NL80211_SURVEY_INFO_AFTER_LAST,
28022921 NL80211_SURVEY_INFO_MAX = __NL80211_SURVEY_INFO_AFTER_LAST - 1
28032922 };
28042923
2924+/* keep old names for compatibility */
2925+#define NL80211_SURVEY_INFO_CHANNEL_TIME NL80211_SURVEY_INFO_TIME
2926+#define NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY NL80211_SURVEY_INFO_TIME_BUSY
2927+#define NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY NL80211_SURVEY_INFO_TIME_EXT_BUSY
2928+#define NL80211_SURVEY_INFO_CHANNEL_TIME_RX NL80211_SURVEY_INFO_TIME_RX
2929+#define NL80211_SURVEY_INFO_CHANNEL_TIME_TX NL80211_SURVEY_INFO_TIME_TX
2930+
28052931 /**
28062932 * enum nl80211_mntr_flags - monitor configuration flags
28072933 *
@@ -3238,6 +3364,9 @@ enum nl80211_bss { · 430 unmodified lines
32383364 /**
32393365 * enum nl80211_bss_status - BSS "status"
32403366 * @NL80211_BSS_STATUS_AUTHENTICATED: Authenticated with this BSS.
3367+ * Note that this is no longer used since cfg80211 no longer
3368+ * keeps track of whether or not authentication was done with
3369+ * a given BSS.
32413370 * @NL80211_BSS_STATUS_ASSOCIATED: Associated with this BSS.
32423371 * @NL80211_BSS_STATUS_IBSS_JOINED: Joined to this IBSS.
32433372 *
@@ -3621,9 +3750,12 @@ struct nl80211_pattern_support { · 377 unmodified lines
36213750 * @NL80211_WOWLAN_TRIG_NET_DETECT: wake up when a configured network
36223751 * is detected. This is a nested attribute that contains the
36233752 * same attributes used with @NL80211_CMD_START_SCHED_SCAN. It
3624− * specifies how the scan is performed (e.g. the interval and the
3625− * channels to scan) as well as the scan results that will
3626− * trigger a wake (i.e. the matchsets).
3753+ * specifies how the scan is performed (e.g. the interval, the
3754+ * channels to scan and the initial delay) as well as the scan
3755+ * results that will trigger a wake (i.e. the matchsets). This
3756+ * attribute is also sent in a response to
3757+ * @NL80211_CMD_GET_WIPHY, indicating the number of match sets
3758+ * supported by the driver (u32).
36273759 * @NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS: nested attribute
36283760 * containing an array with information about what triggered the
36293761 * wake up. If no elements are present in the array, it means
@@ -4193,6 +4325,19 @@ enum nl80211_feature_flags { · 563 unmodified lines
41934325 NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 1 << 31,
41944326 };
41954327
4328+/**
4329+ * enum nl80211_ext_feature_index - bit index of extended features.
4330+ *
4331+ * @NUM_NL80211_EXT_FEATURES: number of extended features.
4332+ * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
4333+ */
4334+enum nl80211_ext_feature_index {
4335+
4336+ /* add new features before the definition below */
4337+ NUM_NL80211_EXT_FEATURES,
4338+ MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
4339+};
4340+
41964341 /**
41974342 * enum nl80211_probe_resp_offload_support_attr - optional supported
41984343 * protocols for probe-response offloading by the driver/FW.
include/uapi/linux/nvme.h+25−1
@@ -115,7 +115,13 @@ struct nvme_id_ns { · 114 unmodified lines
115115 __le16 nawun;
116116 __le16 nawupf;
117117 __le16 nacwu;
118− __u8 rsvd40[80];
118+ __le16 nabsn;
119+ __le16 nabo;
120+ __le16 nabspf;
121+ __u16 rsvd46;
122+ __le64 nvmcap[2];
123+ __u8 rsvd64[40];
124+ __u8 nguid[16];
119125 __u8 eui64[8];
120126 struct nvme_lbaf lbaf[16];
121127 __u8 rsvd192[192];
@@ -124,10 +130,22 @@ struct nvme_id_ns { · 2 unmodified lines
124130
125131 enum {
126132 NVME_NS_FEAT_THIN = 1 << 0,
133+ NVME_NS_FLBAS_LBA_MASK = 0xf,
134+ NVME_NS_FLBAS_META_EXT = 0x10,
127135 NVME_LBAF_RP_BEST = 0,
128136 NVME_LBAF_RP_BETTER = 1,
129137 NVME_LBAF_RP_GOOD = 2,
130138 NVME_LBAF_RP_DEGRADED = 3,
139+ NVME_NS_DPC_PI_LAST = 1 << 4,
140+ NVME_NS_DPC_PI_FIRST = 1 << 3,
141+ NVME_NS_DPC_PI_TYPE3 = 1 << 2,
142+ NVME_NS_DPC_PI_TYPE2 = 1 << 1,
143+ NVME_NS_DPC_PI_TYPE1 = 1 << 0,
144+ NVME_NS_DPS_PI_FIRST = 1 << 3,
145+ NVME_NS_DPS_PI_MASK = 0x7,
146+ NVME_NS_DPS_PI_TYPE1 = 1,
147+ NVME_NS_DPS_PI_TYPE2 = 2,
148+ NVME_NS_DPS_PI_TYPE3 = 3,
131149 };
132150
133151 struct nvme_smart_log {
@@ -261,6 +279,10 @@ enum { · 127 unmodified lines
261279 NVME_RW_DSM_LATENCY_LOW = 3 << 4,
262280 NVME_RW_DSM_SEQ_REQ = 1 << 6,
263281 NVME_RW_DSM_COMPRESSED = 1 << 7,
282+ NVME_RW_PRINFO_PRCHK_REF = 1 << 10,
283+ NVME_RW_PRINFO_PRCHK_APP = 1 << 11,
284+ NVME_RW_PRINFO_PRCHK_GUARD = 1 << 12,
285+ NVME_RW_PRINFO_PRACT = 1 << 13,
264286 };
265287
266288 struct nvme_dsm_cmd {
@@ -549,6 +571,8 @@ struct nvme_passthru_cmd { · 282 unmodified lines
549571 __u32 result;
550572 };
551573
574+#define NVME_VS(major, minor) (((major) << 16) | ((minor) << 8))
575+
552576 #define nvme_admin_cmd nvme_passthru_cmd
553577
554578 #define NVME_IOCTL_ID _IO('N', 0x40)
include/uapi/linux/openvswitch.h+52−1
@@ -252,11 +252,21 @@ enum ovs_vport_attr { · 251 unmodified lines
252252
253253 #define OVS_VPORT_ATTR_MAX (__OVS_VPORT_ATTR_MAX - 1)
254254
255+enum {
256+ OVS_VXLAN_EXT_UNSPEC,
257+ OVS_VXLAN_EXT_GBP, /* Flag or __u32 */
258+ __OVS_VXLAN_EXT_MAX,
259+};
260+
261+#define OVS_VXLAN_EXT_MAX (__OVS_VXLAN_EXT_MAX - 1)
262+
263+
255264 /* OVS_VPORT_ATTR_OPTIONS attributes for tunnels.
256265 */
257266 enum {
258267 OVS_TUNNEL_ATTR_UNSPEC,
259268 OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by L4 tunnels. */
269+ OVS_TUNNEL_ATTR_EXTENSION,
260270 __OVS_TUNNEL_ATTR_MAX
261271 };
262272
@@ -328,6 +338,7 @@ enum ovs_tunnel_key_attr { · 65 unmodified lines
328338 OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS, /* Array of Geneve options. */
329339 OVS_TUNNEL_KEY_ATTR_TP_SRC, /* be16 src Transport Port. */
330340 OVS_TUNNEL_KEY_ATTR_TP_DST, /* be16 dst Transport Port. */
341+ OVS_TUNNEL_KEY_ATTR_VXLAN_OPTS, /* Nested OVS_VXLAN_EXT_* */
331342 __OVS_TUNNEL_KEY_ATTR_MAX
332343 };
333344
@@ -448,6 +459,14 @@ struct ovs_key_nd { · 114 unmodified lines
448459 * a wildcarded match. Omitting attribute is treated as wildcarding all
449460 * corresponding fields. Optional for all requests. If not present,
450461 * all flow key bits are exact match bits.
462+ * @OVS_FLOW_ATTR_UFID: A value between 1-16 octets specifying a unique
463+ * identifier for the flow. Causes the flow to be indexed by this value rather
464+ * than the value of the %OVS_FLOW_ATTR_KEY attribute. Optional for all
465+ * requests. Present in notifications if the flow was created with this
466+ * attribute.
467+ * @OVS_FLOW_ATTR_UFID_FLAGS: A 32-bit value of OR'd %OVS_UFID_F_*
468+ * flags that provide alternative semantics for flow installation and
469+ * retrieval. Optional for all requests.
451470 *
452471 * These attributes follow the &struct ovs_header within the Generic Netlink
453472 * payload for %OVS_FLOW_* commands.
@@ -463,11 +482,23 @@ enum ovs_flow_attr { · 9 unmodified lines
463482 OVS_FLOW_ATTR_MASK, /* Sequence of OVS_KEY_ATTR_* attributes. */
464483 OVS_FLOW_ATTR_PROBE, /* Flow operation is a feature probe, error
465484 * logging should be suppressed. */
485+ OVS_FLOW_ATTR_UFID, /* Variable length unique flow identifier. */
486+ OVS_FLOW_ATTR_UFID_FLAGS,/* u32 of OVS_UFID_F_*. */
466487 __OVS_FLOW_ATTR_MAX
467488 };
468489
469490 #define OVS_FLOW_ATTR_MAX (__OVS_FLOW_ATTR_MAX - 1)
470491
492+/**
493+ * Omit attributes for notifications.
494+ *
495+ * If a datapath request contains an %OVS_UFID_F_OMIT_* flag, then the datapath
496+ * may omit the corresponding %OVS_FLOW_ATTR_* from the response.
497+ */
498+#define OVS_UFID_F_OMIT_KEY (1 << 0)
499+#define OVS_UFID_F_OMIT_MASK (1 << 1)
500+#define OVS_UFID_F_OMIT_ACTIONS (1 << 2)
501+
471502 /**
472503 * enum ovs_sample_attr - Attributes for %OVS_ACTION_ATTR_SAMPLE action.
473504 * @OVS_SAMPLE_ATTR_PROBABILITY: 32-bit fraction of packets to sample with
@@ -568,6 +599,12 @@ struct ovs_action_hash { · 94 unmodified lines
568599 * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header. The
569600 * single nested %OVS_KEY_ATTR_* attribute specifies a header to modify and its
570601 * value.
602+ * @OVS_ACTION_ATTR_SET_MASKED: Replaces the contents of an existing header. A
603+ * nested %OVS_KEY_ATTR_* attribute specifies a header to modify, its value,
604+ * and a mask. For every bit set in the mask, the corresponding bit value
605+ * is copied from the value to the packet header field, rest of the bits are
606+ * left unchanged. The non-masked value bits must be passed in as zeroes.
607+ * Masking is not supported for the %OVS_KEY_ATTR_TUNNEL attribute.
571608 * @OVS_ACTION_ATTR_PUSH_VLAN: Push a new outermost 802.1Q header onto the
572609 * packet.
573610 * @OVS_ACTION_ATTR_POP_VLAN: Pop the outermost 802.1Q header off the packet.
@@ -586,6 +623,9 @@ struct ovs_action_hash { · 12 unmodified lines
586623 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
587624 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
588625 * type may not be changed.
626+ *
627+ * @OVS_ACTION_ATTR_SET_TO_MASKED: Kernel internal masked set action translated
628+ * from the @OVS_ACTION_ATTR_SET.
589629 */
590630
591631 enum ovs_action_attr {
@@ -600,8 +640,19 @@ enum ovs_action_attr { · 8 unmodified lines
600640 OVS_ACTION_ATTR_HASH, /* struct ovs_action_hash. */
601641 OVS_ACTION_ATTR_PUSH_MPLS, /* struct ovs_action_push_mpls. */
602642 OVS_ACTION_ATTR_POP_MPLS, /* __be16 ethertype. */
643+ OVS_ACTION_ATTR_SET_MASKED, /* One nested OVS_KEY_ATTR_* including
644+ * data immediately followed by a mask.
645+ * The data must be zero for the unmasked
646+ * bits. */
603647
604− __OVS_ACTION_ATTR_MAX
648+ __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
649+ * from userspace. */
650+
651+#ifdef __KERNEL__
652+ OVS_ACTION_ATTR_SET_TO_MASKED, /* Kernel module internal masked
653+ * set action converted from
654+ * OVS_ACTION_ATTR_SET. */
655+#endif
605656 };
606657
607658 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
include/uapi/linux/pci_regs.h+4−0
@@ -451,6 +451,10 @@ · 450 unmodified lines
451451 #define PCI_EXP_DEVCTL_AUX_PME 0x0400 /* Auxiliary Power PM Enable */
452452 #define PCI_EXP_DEVCTL_NOSNOOP_EN 0x0800 /* Enable No Snoop */
453453 #define PCI_EXP_DEVCTL_READRQ 0x7000 /* Max_Read_Request_Size */
454+#define PCI_EXP_DEVCTL_READRQ_128B 0x0000 /* 128 Bytes */
455+#define PCI_EXP_DEVCTL_READRQ_256B 0x1000 /* 256 Bytes */
456+#define PCI_EXP_DEVCTL_READRQ_512B 0x2000 /* 512 Bytes */
457+#define PCI_EXP_DEVCTL_READRQ_1024B 0x3000 /* 1024 Bytes */
454458 #define PCI_EXP_DEVCTL_BCR_FLR 0x8000 /* Bridge Configuration Retry / FLR */
455459 #define PCI_EXP_DEVSTA 10 /* Device Status */
456460 #define PCI_EXP_DEVSTA_CED 0x0001 /* Correctable Error Detected */
include/uapi/linux/pkt_sched.h+2−0
@@ -774,6 +774,8 @@ enum { · 773 unmodified lines
774774
775775 TCA_FQ_FLOW_REFILL_DELAY, /* flow credit refill delay in usec */
776776
777+ TCA_FQ_ORPHAN_MASK, /* mask applied to orphaned skb hashes */
778+
777779 __TCA_FQ_MAX
778780 };
779781
include/uapi/linux/prctl.h+5−0
@@ -185,4 +185,9 @@ struct prctl_mm_map { · 184 unmodified lines
185185 #define PR_MPX_ENABLE_MANAGEMENT 43
186186 #define PR_MPX_DISABLE_MANAGEMENT 44
187187
188+#define PR_SET_FP_MODE 45
189+#define PR_GET_FP_MODE 46
190+# define PR_FP_MODE_FR (1 << 0) /* 64b FP registers */
191+# define PR_FP_MODE_FRE (1 << 1) /* 32b compatibility */
192+
188193 #endif /* _LINUX_PRCTL_H */
include/uapi/linux/quota.h+13−1
@@ -126,10 +126,22 @@ struct if_dqblk { · 125 unmodified lines
126126 #define IIF_FLAGS 4
127127 #define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
128128
129+enum {
130+ DQF_ROOT_SQUASH_B = 0,
131+ DQF_SYS_FILE_B = 16,
132+ /* Kernel internal flags invisible to userspace */
133+ DQF_PRIVATE
134+};
135+
136+/* Root squash enabled (for v1 quota format) */
137+#define DQF_ROOT_SQUASH (1 << DQF_ROOT_SQUASH_B)
138+/* Quota stored in a system file */
139+#define DQF_SYS_FILE (1 << DQF_SYS_FILE_B)
140+
129141 struct if_dqinfo {
130142 __u64 dqi_bgrace;
131143 __u64 dqi_igrace;
132− __u32 dqi_flags;
144+ __u32 dqi_flags; /* DFQ_* */
133145 __u32 dqi_valid;
134146 };
135147
include/uapi/linux/rtnetlink.h+8−0
@@ -132,6 +132,11 @@ enum { · 131 unmodified lines
132132 RTM_GETMDB = 86,
133133 #define RTM_GETMDB RTM_GETMDB
134134
135+ RTM_NEWNSID = 88,
136+#define RTM_NEWNSID RTM_NEWNSID
137+ RTM_GETNSID = 90,
138+#define RTM_GETNSID RTM_GETNSID
139+
135140 __RTM_MAX,
136141 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
137142 };
@@ -389,6 +394,8 @@ enum { · 251 unmodified lines
389394 #define RTAX_INITRWND RTAX_INITRWND
390395 RTAX_QUICKACK,
391396 #define RTAX_QUICKACK RTAX_QUICKACK
397+ RTAX_CC_ALGO,
398+#define RTAX_CC_ALGO RTAX_CC_ALGO
392399 __RTAX_MAX
393400 };
394401
@@ -634,6 +641,7 @@ struct tcamsg { · 239 unmodified lines
634641 /* New extended info filters for IFLA_EXT_MASK */
635642 #define RTEXT_FILTER_VF (1 << 0)
636643 #define RTEXT_FILTER_BRVLAN (1 << 1)
644+#define RTEXT_FILTER_BRVLAN_COMPRESSED (1 << 2)
637645
638646 /* End of information exported to user level */
639647
include/uapi/linux/serial_core.h+11−1
@@ -55,7 +55,8 @@ · 54 unmodified lines
5555 #define PORT_ALTR_16550_F64 27 /* Altera 16550 UART with 64 FIFOs */
5656 #define PORT_ALTR_16550_F128 28 /* Altera 16550 UART with 128 FIFOs */
5757 #define PORT_RT2880 29 /* Ralink RT2880 internal UART */
58−#define PORT_MAX_8250 29 /* max port ID */
58+#define PORT_16550A_FSL64 30 /* Freescale 16550 UART with 64 FIFOs */
59+#define PORT_MAX_8250 30 /* max port ID */
5960
6061 /*
6162 * ARM specific type numbers. These are not currently guaranteed
@@ -248,4 +249,13 @@ · 186 unmodified lines
248249 /* MESON */
249250 #define PORT_MESON 109
250251
252+/* Conexant Digicolor */
253+#define PORT_DIGICOLOR 110
254+
255+/* SPRD SERIAL */
256+#define PORT_SPRD 111
257+
258+/* Cris v10 / v32 SoC */
259+#define PORT_CRIS 112
260+
251261 #endif /* _UAPILINUX_SERIAL_CORE_H */
include/uapi/linux/serial_reg.h+2−1
@@ -86,7 +86,8 @@ · 85 unmodified lines
8686 #define UART_FCR6_T_TRIGGER_8 0x10 /* Mask for transmit trigger set at 8 */
8787 #define UART_FCR6_T_TRIGGER_24 0x20 /* Mask for transmit trigger set at 24 */
8888 #define UART_FCR6_T_TRIGGER_30 0x30 /* Mask for transmit trigger set at 30 */
89−#define UART_FCR7_64BYTE 0x20 /* Go into 64 byte mode (TI16C750) */
89+#define UART_FCR7_64BYTE 0x20 /* Go into 64 byte mode (TI16C750 and
90+ some Freescale UARTs) */
9091
9192 #define UART_FCR_R_TRIG_SHIFT 6
9293 #define UART_FCR_R_TRIG_BITS(x) \
include/uapi/linux/snmp.h+6−0
@@ -270,6 +270,12 @@ enum · 269 unmodified lines
270270 LINUX_MIB_TCPHYSTARTTRAINCWND, /* TCPHystartTrainCwnd */
271271 LINUX_MIB_TCPHYSTARTDELAYDETECT, /* TCPHystartDelayDetect */
272272 LINUX_MIB_TCPHYSTARTDELAYCWND, /* TCPHystartDelayCwnd */
273+ LINUX_MIB_TCPACKSKIPPEDSYNRECV, /* TCPACKSkippedSynRecv */
274+ LINUX_MIB_TCPACKSKIPPEDPAWS, /* TCPACKSkippedPAWS */
275+ LINUX_MIB_TCPACKSKIPPEDSEQ, /* TCPACKSkippedSeq */
276+ LINUX_MIB_TCPACKSKIPPEDFINWAIT2, /* TCPACKSkippedFinWait2 */
277+ LINUX_MIB_TCPACKSKIPPEDTIMEWAIT, /* TCPACKSkippedTimeWait */
278+ LINUX_MIB_TCPACKSKIPPEDCHALLENGE, /* TCPACKSkippedChallenge */
273279 __LINUX_MIB_MAX
274280 };
275281
include/uapi/linux/som.h+0−154
@@ -1,154 +0,0 @@
1−#ifndef _LINUX_SOM_H
2−#define _LINUX_SOM_H
3−
4−/* File format definition for SOM executables / shared libraries */
5−
6−/* we need struct timespec */
7−#include <linux/time.h>
8−
9−#define SOM_PAGESIZE 4096
10−
11−/* this is the SOM header */
12−struct som_hdr {
13− short system_id; /* magic number - system */
14− short a_magic; /* magic number - file type */
15− unsigned int version_id; /* versiod ID: YYMMDDHH */
16− struct timespec file_time; /* system clock */
17− unsigned int entry_space; /* space for entry point */
18− unsigned int entry_subspace; /* subspace for entry point */
19− unsigned int entry_offset; /* offset of entry point */
20− unsigned int aux_header_location; /* auxiliary header location */
21− unsigned int aux_header_size; /* auxiliary header size */
22− unsigned int som_length; /* length of entire SOM */
23− unsigned int presumed_dp; /* compiler's DP value */
24− unsigned int space_location; /* space dictionary location */
25− unsigned int space_total; /* number of space entries */
26− unsigned int subspace_location; /* subspace entries location */
27− unsigned int subspace_total; /* number of subspace entries */
28− unsigned int loader_fixup_location; /* MPE/iX loader fixup */
29− unsigned int loader_fixup_total; /* number of fixup records */
30− unsigned int space_strings_location; /* (sub)space names */
31− unsigned int space_strings_size; /* size of strings area */
32− unsigned int init_array_location; /* reserved */
33− unsigned int init_array_total; /* reserved */
34− unsigned int compiler_location; /* module dictionary */
35− unsigned int compiler_total; /* number of modules */
36− unsigned int symbol_location; /* symbol dictionary */
37− unsigned int symbol_total; /* number of symbols */
38− unsigned int fixup_request_location; /* fixup requests */
39− unsigned int fixup_request_total; /* number of fixup requests */
40− unsigned int symbol_strings_location;/* module & symbol names area */
41− unsigned int symbol_strings_size; /* size of strings area */
42− unsigned int unloadable_sp_location; /* unloadable spaces location */
43− unsigned int unloadable_sp_size; /* size of data */
44− unsigned int checksum;
45−};
46−
47−/* values for system_id */
48−
49−#define SOM_SID_PARISC_1_0 0x020b
50−#define SOM_SID_PARISC_1_1 0x0210
51−#define SOM_SID_PARISC_2_0 0x0214
52−
53−/* values for a_magic */
54−
55−#define SOM_LIB_EXEC 0x0104
56−#define SOM_RELOCATABLE 0x0106
57−#define SOM_EXEC_NONSHARE 0x0107
58−#define SOM_EXEC_SHARE 0x0108
59−#define SOM_EXEC_DEMAND 0x010B
60−#define SOM_LIB_DYN 0x010D
61−#define SOM_LIB_SHARE 0x010E
62−#define SOM_LIB_RELOC 0x0619
63−
64−/* values for version_id. Decimal not hex, yes. Grr. */
65−
66−#define SOM_ID_OLD 85082112
67−#define SOM_ID_NEW 87102412
68−
69−struct aux_id {
70− unsigned int mandatory :1; /* the linker must understand this */
71− unsigned int copy :1; /* Must be copied by the linker */
72− unsigned int append :1; /* Must be merged by the linker */
73− unsigned int ignore :1; /* Discard section if unknown */
74− unsigned int reserved :12;
75− unsigned int type :16; /* Header type */
76− unsigned int length; /* length of _following_ data */
77−};
78−
79−/* The Exec Auxiliary Header. Called The HP-UX Header within HP apparently. */
80−struct som_exec_auxhdr {
81− struct aux_id som_auxhdr;
82− int exec_tsize; /* Text size in bytes */
83− int exec_tmem; /* Address to load text at */
84− int exec_tfile; /* Location of text in file */
85− int exec_dsize; /* Data size in bytes */
86− int exec_dmem; /* Address to load data at */
87− int exec_dfile; /* Location of data in file */
88− int exec_bsize; /* Uninitialised data (bss) */
89− int exec_entry; /* Address to start executing */
90− int exec_flags; /* loader flags */
91− int exec_bfill; /* initialisation value for bss */
92−};
93−
94−/* Oh, the things people do to avoid casts. Shame it'll break with gcc's
95− * new aliasing rules really.
96− */
97−union name_pt {
98− char * n_name;
99− unsigned int n_strx;
100−};
101−
102−/* The Space Dictionary */
103−struct space_dictionary_record {
104− union name_pt name; /* index to subspace name */
105− unsigned int is_loadable :1; /* loadable */
106− unsigned int is_defined :1; /* defined within file */
107− unsigned int is_private :1; /* not sharable */
108− unsigned int has_intermediate_code :1; /* contains intermediate code */
109− unsigned int is_tspecific :1; /* thread specific */
110− unsigned int reserved :11; /* for future expansion */
111− unsigned int sort_key :8; /* for linker */
112− unsigned int reserved2 :8; /* for future expansion */
113−
114− int space_number; /* index */
115− int subspace_index; /* index into subspace dict */
116− unsigned int subspace_quantity; /* number of subspaces */
117− int loader_fix_index; /* for loader */
118− unsigned int loader_fix_quantity; /* for loader */
119− int init_pointer_index; /* data pointer array index */
120− unsigned int init_pointer_quantity; /* number of data pointers */
121−};
122−
123−/* The Subspace Dictionary */
124−struct subspace_dictionary_record {
125− int space_index;
126− unsigned int access_control_bits :7;
127− unsigned int memory_resident :1;
128− unsigned int dup_common :1;
129− unsigned int is_common :1;
130− unsigned int quadrant :2;
131− unsigned int initially_frozen :1;
132− unsigned int is_first :1;
133− unsigned int code_only :1;
134− unsigned int sort_key :8;
135− unsigned int replicate_init :1;
136− unsigned int continuation :1;
137− unsigned int is_tspecific :1;
138− unsigned int is_comdat :1;
139− unsigned int reserved :4;
140−
141− int file_loc_init_value;
142− unsigned int initialization_length;
143− unsigned int subspace_start;
144− unsigned int subspace_length;
145−
146− unsigned int reserved2 :5;
147− unsigned int alignment :27;
148−
149− union name_pt name;
150− int fixup_request_index;
151− unsigned int fixup_request_quantity;
152−};
153−
154−#endif /* _LINUX_SOM_H */
include/uapi/linux/tc_act/Kbuild+1−0
@@ -8,3 +8,4 @@ header-y += tc_nat.h · 7 unmodified lines
88 header-y += tc_pedit.h
99 header-y += tc_skbedit.h
1010 header-y += tc_vlan.h
11+header-y += tc_bpf.h
include/uapi/linux/tc_act/tc_bpf.h+31−0
@@ -0,0 +1,31 @@
1+/*
2+ * Copyright (c) 2015 Jiri Pirko <jiri@resnulli.us>
3+ *
4+ * This program is free software; you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation; either version 2 of the License, or
7+ * (at your option) any later version.
8+ */
9+
10+#ifndef __LINUX_TC_BPF_H
11+#define __LINUX_TC_BPF_H
12+
13+#include <linux/pkt_cls.h>
14+
15+#define TCA_ACT_BPF 13
16+
17+struct tc_act_bpf {
18+ tc_gen;
19+};
20+
21+enum {
22+ TCA_ACT_BPF_UNSPEC,
23+ TCA_ACT_BPF_TM,
24+ TCA_ACT_BPF_PARMS,
25+ TCA_ACT_BPF_OPS_LEN,
26+ TCA_ACT_BPF_OPS,
27+ __TCA_ACT_BPF_MAX,
28+};
29+#define TCA_ACT_BPF_MAX (__TCA_ACT_BPF_MAX - 1)
30+
31+#endif
include/uapi/linux/tc_act/tc_connmark.h+22−0
@@ -0,0 +1,22 @@
1+#ifndef __UAPI_TC_CONNMARK_H
2+#define __UAPI_TC_CONNMARK_H
3+
4+#include <linux/types.h>
5+#include <linux/pkt_cls.h>
6+
7+#define TCA_ACT_CONNMARK 14
8+
9+struct tc_connmark {
10+ tc_gen;
11+ __u16 zone;
12+};
13+
14+enum {
15+ TCA_CONNMARK_UNSPEC,
16+ TCA_CONNMARK_PARMS,
17+ TCA_CONNMARK_TM,
18+ __TCA_CONNMARK_MAX
19+};
20+#define TCA_CONNMARK_MAX (__TCA_CONNMARK_MAX - 1)
21+
22+#endif
include/uapi/linux/tipc_config.h+20−0
@@ -272,6 +272,26 @@ static inline int TLV_CHECK(const void *tlv, __u16 space, __u16 exp_type) · 271 unmodified lines
272272 (ntohs(((struct tlv_desc *)tlv)->tlv_type) == exp_type);
273273 }
274274
275+static inline int TLV_GET_LEN(struct tlv_desc *tlv)
276+{
277+ return ntohs(tlv->tlv_len);
278+}
279+
280+static inline void TLV_SET_LEN(struct tlv_desc *tlv, __u16 len)
281+{
282+ tlv->tlv_len = htons(len);
283+}
284+
285+static inline int TLV_CHECK_TYPE(struct tlv_desc *tlv, __u16 type)
286+{
287+ return (ntohs(tlv->tlv_type) == type);
288+}
289+
290+static inline void TLV_SET_TYPE(struct tlv_desc *tlv, __u16 type)
291+{
292+ tlv->tlv_type = htons(type);
293+}
294+
275295 static inline int TLV_SET(void *tlv, __u16 type, void *data, __u16 len)
276296 {
277297 struct tlv_desc *tlv_ptr;
include/uapi/linux/usb/functionfs.h+1−0
@@ -20,6 +20,7 @@ enum functionfs_flags { · 19 unmodified lines
2020 FUNCTIONFS_HAS_SS_DESC = 4,
2121 FUNCTIONFS_HAS_MS_OS_DESC = 8,
2222 FUNCTIONFS_VIRTUAL_ADDR = 16,
23+ FUNCTIONFS_EVENTFD = 32,
2324 };
2425
2526 /* Descriptor of an non-audio endpoint */
include/uapi/linux/usbdevice_fs.h+2−1
@@ -128,11 +128,12 @@ struct usbdevfs_hub_portinfo { · 127 unmodified lines
128128 char port [127]; /* e.g. port 3 connects to device 27 */
129129 };
130130
131−/* Device capability flags */
131+/* System and bus capability flags */
132132 #define USBDEVFS_CAP_ZERO_PACKET 0x01
133133 #define USBDEVFS_CAP_BULK_CONTINUATION 0x02
134134 #define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04
135135 #define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08
136+#define USBDEVFS_CAP_REAP_AFTER_DISCONNECT 0x10
136137
137138 /* USBDEVFS_DISCONNECT_CLAIM flags & struct */
138139
include/uapi/linux/v4l2-controls.h+4−0
@@ -170,6 +170,10 @@ enum v4l2_colorfx { · 169 unmodified lines
170170 * We reserve 16 controls for this driver. */
171171 #define V4L2_CID_USER_SAA7134_BASE (V4L2_CID_USER_BASE + 0x1060)
172172
173+/* The base for the adv7180 driver controls.
174+ * We reserve 16 controls for this driver. */
175+#define V4L2_CID_USER_ADV7180_BASE (V4L2_CID_USER_BASE + 0x1070)
176+
173177 /* MPEG-class control IDs */
174178 /* The MPEG controls are applicable to all codec controls
175179 * and the 'MPEG' part of the define is historical */
include/uapi/linux/vfio.h+1−0
@@ -333,6 +333,7 @@ enum { · 332 unmodified lines
333333 VFIO_PCI_MSI_IRQ_INDEX,
334334 VFIO_PCI_MSIX_IRQ_INDEX,
335335 VFIO_PCI_ERR_IRQ_INDEX,
336+ VFIO_PCI_REQ_IRQ_INDEX,
336337 VFIO_PCI_NUM_IRQS
337338 };
338339
include/uapi/linux/videodev2.h+9−8
@@ -463,10 +463,11 @@ struct v4l2_pix_format { · 462 unmodified lines
463463 #define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */
464464 #define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */
465465 #define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */
466−#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */
467−#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
468−#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
469−#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
466+ /* 10bit raw bayer packed, 5 bytes for every 4 pixels */
467+#define V4L2_PIX_FMT_SBGGR10P v4l2_fourcc('p', 'B', 'A', 'A')
468+#define V4L2_PIX_FMT_SGBRG10P v4l2_fourcc('p', 'G', 'A', 'A')
469+#define V4L2_PIX_FMT_SGRBG10P v4l2_fourcc('p', 'g', 'A', 'A')
470+#define V4L2_PIX_FMT_SRGGB10P v4l2_fourcc('p', 'R', 'A', 'A')
470471 /* 10bit raw bayer a-law compressed to 8 bits */
471472 #define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8')
472473 #define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8')
@@ -477,10 +478,10 @@ struct v4l2_pix_format { · 4 unmodified lines
477478 #define V4L2_PIX_FMT_SGBRG10DPCM8 v4l2_fourcc('b', 'G', 'A', '8')
478479 #define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0')
479480 #define V4L2_PIX_FMT_SRGGB10DPCM8 v4l2_fourcc('b', 'R', 'A', '8')
480− /*
481− * 10bit raw bayer, expanded to 16 bits
482− * xxxxrrrrrrrrrrxxxxgggggggggg xxxxggggggggggxxxxbbbbbbbbbb...
483− */
481+#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12 BGBG.. GRGR.. */
482+#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12 GBGB.. RGRG.. */
483+#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12 GRGR.. BGBG.. */
484+#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12 RGRG.. GBGB.. */
484485 #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
485486
486487 /* compressed formats */
include/uapi/linux/virtio_balloon.h+1−2
@@ -36,8 +36,7 @@ · 35 unmodified lines
3636 /* Size of a PFN in the balloon interface. */
3737 #define VIRTIO_BALLOON_PFN_SHIFT 12
3838
39−struct virtio_balloon_config
40−{
39+struct virtio_balloon_config {
4140 /* Number of pages host wants Guest to give up. */
4241 __le32 num_pages;
4342 /* Number of pages we've actually got in balloon. */
include/uapi/linux/virtio_blk.h+13−4
@@ -31,22 +31,25 @@ · 30 unmodified lines
3131 #include <linux/virtio_types.h>
3232
3333 /* Feature bits */
34−#define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */
3534 #define VIRTIO_BLK_F_SIZE_MAX 1 /* Indicates maximum segment size */
3635 #define VIRTIO_BLK_F_SEG_MAX 2 /* Indicates maximum # of segments */
3736 #define VIRTIO_BLK_F_GEOMETRY 4 /* Legacy geometry available */
3837 #define VIRTIO_BLK_F_RO 5 /* Disk is read-only */
3938 #define VIRTIO_BLK_F_BLK_SIZE 6 /* Block size of disk is available*/
40−#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */
41−#define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */
4239 #define VIRTIO_BLK_F_TOPOLOGY 10 /* Topology information is available */
43−#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */
4440 #define VIRTIO_BLK_F_MQ 12 /* support more than one vq */
4541
42+/* Legacy feature bits */
43+#ifndef VIRTIO_BLK_NO_LEGACY
44+#define VIRTIO_BLK_F_BARRIER 0 /* Does host support barriers? */
45+#define VIRTIO_BLK_F_SCSI 7 /* Supports scsi command passthru */
46+#define VIRTIO_BLK_F_WCE 9 /* Writeback mode enabled after reset */
47+#define VIRTIO_BLK_F_CONFIG_WCE 11 /* Writeback mode available in config */
4648 #ifndef __KERNEL__
4749 /* Old (deprecated) name for VIRTIO_BLK_F_WCE. */
4850 #define VIRTIO_BLK_F_FLUSH VIRTIO_BLK_F_WCE
4951 #endif
52+#endif /* !VIRTIO_BLK_NO_LEGACY */
5053
5154 #define VIRTIO_BLK_ID_BYTES 20 /* ID string length */
5255
@@ -100,8 +103,10 @@ struct virtio_blk_config { · 47 unmodified lines
100103 #define VIRTIO_BLK_T_IN 0
101104 #define VIRTIO_BLK_T_OUT 1
102105
106+#ifndef VIRTIO_BLK_NO_LEGACY
103107 /* This bit says it's a scsi command, not an actual read or write. */
104108 #define VIRTIO_BLK_T_SCSI_CMD 2
109+#endif /* VIRTIO_BLK_NO_LEGACY */
105110
106111 /* Cache flush command */
107112 #define VIRTIO_BLK_T_FLUSH 4
@@ -109,8 +114,10 @@ struct virtio_blk_config { · 1 unmodified line
109114 /* Get device ID command */
110115 #define VIRTIO_BLK_T_GET_ID 8
111116
117+#ifndef VIRTIO_BLK_NO_LEGACY
112118 /* Barrier before this op. */
113119 #define VIRTIO_BLK_T_BARRIER 0x80000000
120+#endif /* !VIRTIO_BLK_NO_LEGACY */
114121
115122 /* This is the first element of the read scatter-gather list. */
116123 struct virtio_blk_outhdr {
@@ -122,12 +129,14 @@ struct virtio_blk_outhdr { · 5 unmodified lines
122129 __virtio64 sector;
123130 };
124131
132+#ifndef VIRTIO_BLK_NO_LEGACY
125133 struct virtio_scsi_inhdr {
126134 __virtio32 errors;
127135 __virtio32 data_len;
128136 __virtio32 sense_len;
129137 __virtio32 residual;
130138 };
139+#endif /* !VIRTIO_BLK_NO_LEGACY */
131140
132141 /* And this is the final byte of the write scatter-gather list. */
133142 #define VIRTIO_BLK_S_OK 0
include/uapi/linux/virtio_config.h+2−0
@@ -49,12 +49,14 @@ · 48 unmodified lines
4949 #define VIRTIO_TRANSPORT_F_START 28
5050 #define VIRTIO_TRANSPORT_F_END 33
5151
52+#ifndef VIRTIO_CONFIG_NO_LEGACY
5253 /* Do we get callbacks when the ring is completely used, even if we've
5354 * suppressed them? */
5455 #define VIRTIO_F_NOTIFY_ON_EMPTY 24
5556
5657 /* Can the device handle any descriptor layout? */
5758 #define VIRTIO_F_ANY_LAYOUT 27
59+#endif /* VIRTIO_CONFIG_NO_LEGACY */
5860
5961 /* v1.0 compliant. */
6062 #define VIRTIO_F_VERSION_1 32
include/uapi/linux/virtio_net.h+33−9
@@ -35,7 +35,6 @@ · 34 unmodified lines
3535 #define VIRTIO_NET_F_CSUM 0 /* Host handles pkts w/ partial csum */
3636 #define VIRTIO_NET_F_GUEST_CSUM 1 /* Guest handles pkts w/ partial csum */
3737 #define VIRTIO_NET_F_MAC 5 /* Host has given MAC address. */
38−#define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */
3938 #define VIRTIO_NET_F_GUEST_TSO4 7 /* Guest can handle TSOv4 in. */
4039 #define VIRTIO_NET_F_GUEST_TSO6 8 /* Guest can handle TSOv6 in. */
4140 #define VIRTIO_NET_F_GUEST_ECN 9 /* Guest can handle TSO[6] w/ ECN in. */
@@ -56,6 +55,10 @@ · 14 unmodified lines
5655 * Steering */
5756 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
5857
58+#ifndef VIRTIO_NET_NO_LEGACY
59+#define VIRTIO_NET_F_GSO 6 /* Host handles pkts w/ any GSO type */
60+#endif /* VIRTIO_NET_NO_LEGACY */
61+
5962 #define VIRTIO_NET_S_LINK_UP 1 /* Link is up */
6063 #define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */
6164
@@ -71,19 +74,39 @@ struct virtio_net_config { · 9 unmodified lines
7174 __u16 max_virtqueue_pairs;
7275 } __attribute__((packed));
7376
77+/*
78+ * This header comes first in the scatter-gather list. If you don't
79+ * specify GSO or CSUM features, you can simply ignore the header.
80+ *
81+ * This is bitwise-equivalent to the legacy struct virtio_net_hdr_mrg_rxbuf,
82+ * only flattened.
83+ */
84+struct virtio_net_hdr_v1 {
85+#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 /* Use csum_start, csum_offset */
86+#define VIRTIO_NET_HDR_F_DATA_VALID 2 /* Csum is valid */
87+ __u8 flags;
88+#define VIRTIO_NET_HDR_GSO_NONE 0 /* Not a GSO frame */
89+#define VIRTIO_NET_HDR_GSO_TCPV4 1 /* GSO frame, IPv4 TCP (TSO) */
90+#define VIRTIO_NET_HDR_GSO_UDP 3 /* GSO frame, IPv4 UDP (UFO) */
91+#define VIRTIO_NET_HDR_GSO_TCPV6 4 /* GSO frame, IPv6 TCP */
92+#define VIRTIO_NET_HDR_GSO_ECN 0x80 /* TCP has ECN set */
93+ __u8 gso_type;
94+ __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
95+ __virtio16 gso_size; /* Bytes to append to hdr_len per frame */
96+ __virtio16 csum_start; /* Position to start checksumming from */
97+ __virtio16 csum_offset; /* Offset after that to place checksum */
98+ __virtio16 num_buffers; /* Number of merged rx buffers */
99+};
100+
101+#ifndef VIRTIO_NET_NO_LEGACY
74102 /* This header comes first in the scatter-gather list.
75− * If VIRTIO_F_ANY_LAYOUT is not negotiated, it must
103+ * For legacy virtio, if VIRTIO_F_ANY_LAYOUT is not negotiated, it must
76104 * be the first element of the scatter-gather list. If you don't
77105 * specify GSO or CSUM features, you can simply ignore the header. */
78106 struct virtio_net_hdr {
79−#define VIRTIO_NET_HDR_F_NEEDS_CSUM 1 // Use csum_start, csum_offset
80−#define VIRTIO_NET_HDR_F_DATA_VALID 2 // Csum is valid
107+ /* See VIRTIO_NET_HDR_F_* */
81108 __u8 flags;
82−#define VIRTIO_NET_HDR_GSO_NONE 0 // Not a GSO frame
83−#define VIRTIO_NET_HDR_GSO_TCPV4 1 // GSO frame, IPv4 TCP (TSO)
84−#define VIRTIO_NET_HDR_GSO_UDP 3 // GSO frame, IPv4 UDP (UFO)
85−#define VIRTIO_NET_HDR_GSO_TCPV6 4 // GSO frame, IPv6 TCP
86−#define VIRTIO_NET_HDR_GSO_ECN 0x80 // TCP has ECN set
109+ /* See VIRTIO_NET_HDR_GSO_* */
87110 __u8 gso_type;
88111 __virtio16 hdr_len; /* Ethernet + IP + tcp/udp hdrs */
89112 __virtio16 gso_size; /* Bytes to append to hdr_len per frame */
@@ -97,6 +120,7 @@ struct virtio_net_hdr_mrg_rxbuf { · 7 unmodified lines
97120 struct virtio_net_hdr hdr;
98121 __virtio16 num_buffers; /* Number of merged rx buffers */
99122 };
123+#endif /* ...VIRTIO_NET_NO_LEGACY */
100124
101125 /*
102126 * Control virtqueue data structures
include/uapi/linux/virtio_pci.h+92−1
@@ -39,7 +39,7 @@ · 38 unmodified lines
3939 #ifndef _LINUX_VIRTIO_PCI_H
4040 #define _LINUX_VIRTIO_PCI_H
4141
42−#include <linux/virtio_config.h>
42+#include <linux/types.h>
4343
4444 #ifndef VIRTIO_PCI_NO_LEGACY
4545
@@ -99,4 +99,95 @@ · 53 unmodified lines
9999 /* Vector value used to disable MSI for queue */
100100 #define VIRTIO_MSI_NO_VECTOR 0xffff
101101
102+#ifndef VIRTIO_PCI_NO_MODERN
103+
104+/* IDs for different capabilities. Must all exist. */
105+
106+/* Common configuration */
107+#define VIRTIO_PCI_CAP_COMMON_CFG 1
108+/* Notifications */
109+#define VIRTIO_PCI_CAP_NOTIFY_CFG 2
110+/* ISR access */
111+#define VIRTIO_PCI_CAP_ISR_CFG 3
112+/* Device specific configuration */
113+#define VIRTIO_PCI_CAP_DEVICE_CFG 4
114+/* PCI configuration access */
115+#define VIRTIO_PCI_CAP_PCI_CFG 5
116+
117+/* This is the PCI capability header: */
118+struct virtio_pci_cap {
119+ __u8 cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */
120+ __u8 cap_next; /* Generic PCI field: next ptr. */
121+ __u8 cap_len; /* Generic PCI field: capability length */
122+ __u8 cfg_type; /* Identifies the structure. */
123+ __u8 bar; /* Where to find it. */
124+ __u8 padding[3]; /* Pad to full dword. */
125+ __le32 offset; /* Offset within bar. */
126+ __le32 length; /* Length of the structure, in bytes. */
127+};
128+
129+struct virtio_pci_notify_cap {
130+ struct virtio_pci_cap cap;
131+ __le32 notify_off_multiplier; /* Multiplier for queue_notify_off. */
132+};
133+
134+/* Fields in VIRTIO_PCI_CAP_COMMON_CFG: */
135+struct virtio_pci_common_cfg {
136+ /* About the whole device. */
137+ __le32 device_feature_select; /* read-write */
138+ __le32 device_feature; /* read-only */
139+ __le32 guest_feature_select; /* read-write */
140+ __le32 guest_feature; /* read-write */
141+ __le16 msix_config; /* read-write */
142+ __le16 num_queues; /* read-only */
143+ __u8 device_status; /* read-write */
144+ __u8 config_generation; /* read-only */
145+
146+ /* About a specific virtqueue. */
147+ __le16 queue_select; /* read-write */
148+ __le16 queue_size; /* read-write, power of 2. */
149+ __le16 queue_msix_vector; /* read-write */
150+ __le16 queue_enable; /* read-write */
151+ __le16 queue_notify_off; /* read-only */
152+ __le32 queue_desc_lo; /* read-write */
153+ __le32 queue_desc_hi; /* read-write */
154+ __le32 queue_avail_lo; /* read-write */
155+ __le32 queue_avail_hi; /* read-write */
156+ __le32 queue_used_lo; /* read-write */
157+ __le32 queue_used_hi; /* read-write */
158+};
159+
160+/* Macro versions of offsets for the Old Timers! */
161+#define VIRTIO_PCI_CAP_VNDR 0
162+#define VIRTIO_PCI_CAP_NEXT 1
163+#define VIRTIO_PCI_CAP_LEN 2
164+#define VIRTIO_PCI_CAP_CFG_TYPE 3
165+#define VIRTIO_PCI_CAP_BAR 4
166+#define VIRTIO_PCI_CAP_OFFSET 8
167+#define VIRTIO_PCI_CAP_LENGTH 12
168+
169+#define VIRTIO_PCI_NOTIFY_CAP_MULT 16
170+
171+#define VIRTIO_PCI_COMMON_DFSELECT 0
172+#define VIRTIO_PCI_COMMON_DF 4
173+#define VIRTIO_PCI_COMMON_GFSELECT 8
174+#define VIRTIO_PCI_COMMON_GF 12
175+#define VIRTIO_PCI_COMMON_MSIX 16
176+#define VIRTIO_PCI_COMMON_NUMQ 18
177+#define VIRTIO_PCI_COMMON_STATUS 20
178+#define VIRTIO_PCI_COMMON_CFGGENERATION 21
179+#define VIRTIO_PCI_COMMON_Q_SELECT 22
180+#define VIRTIO_PCI_COMMON_Q_SIZE 24
181+#define VIRTIO_PCI_COMMON_Q_MSIX 26
182+#define VIRTIO_PCI_COMMON_Q_ENABLE 28
183+#define VIRTIO_PCI_COMMON_Q_NOFF 30
184+#define VIRTIO_PCI_COMMON_Q_DESCLO 32
185+#define VIRTIO_PCI_COMMON_Q_DESCHI 36
186+#define VIRTIO_PCI_COMMON_Q_AVAILLO 40
187+#define VIRTIO_PCI_COMMON_Q_AVAILHI 44
188+#define VIRTIO_PCI_COMMON_Q_USEDLO 48
189+#define VIRTIO_PCI_COMMON_Q_USEDHI 52
190+
191+#endif /* VIRTIO_PCI_NO_MODERN */
192+
102193 #endif
include/uapi/rdma/ib_user_verbs.h+1−5
@@ -202,10 +202,6 @@ struct ib_uverbs_query_device_resp { · 201 unmodified lines
202202 __u8 reserved[4];
203203 };
204204
205−enum {
206− IB_USER_VERBS_EX_QUERY_DEVICE_ODP = 1ULL << 0,
207−};
208−
209205 struct ib_uverbs_ex_query_device {
210206 __u32 comp_mask;
211207 __u32 reserved;
@@ -224,7 +220,7 @@ struct ib_uverbs_odp_caps { · 12 unmodified lines
224220 struct ib_uverbs_ex_query_device_resp {
225221 struct ib_uverbs_query_device_resp base;
226222 __u32 comp_mask;
227− __u32 reserved;
223+ __u32 response_length;
228224 struct ib_uverbs_odp_caps odp_caps;
229225 };
230226
include/uapi/sound/asound.h+1−0
@@ -268,6 +268,7 @@ typedef int __bitwise snd_pcm_subformat_t; · 267 unmodified lines
268268 #define SNDRV_PCM_INFO_SYNC_START 0x00400000 /* pcm support some kind of sync go */
269269 #define SNDRV_PCM_INFO_NO_PERIOD_WAKEUP 0x00800000 /* period wakeup can be disabled */
270270 #define SNDRV_PCM_INFO_HAS_WALL_CLOCK 0x01000000 /* has audio wall clock for audio/system time sync */
271+#define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000 /* internal kernel flag - trigger in drain */
271272 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000 /* internal kernel flag - FIFO size is in frames */
272273
273274 typedef int __bitwise snd_pcm_state_t;
include/uapi/sound/usb_stream.h+76−0
@@ -0,0 +1,76 @@
1+/*
2+ * Copyright (C) 2007, 2008 Karsten Wiese <fzu@wemgehoertderstaat.de>
3+ *
4+ * This program is free software; you can redistribute it and/or modify it
5+ * under the terms of the GNU General Public License as published by the
6+ * Free Software Foundation; either version 2 of the License, or (at your
7+ * option) any later version.
8+ *
9+ * This program is distributed in the hope that it will be useful, but
10+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
11+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12+ * for more details.
13+ *
14+ * You should have received a copy of the GNU General Public License
15+ * along with this program; if not, write to the Free Software Foundation,
16+ * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17+ */
18+
19+#ifndef _UAPI__SOUND_USB_STREAM_H
20+#define _UAPI__SOUND_USB_STREAM_H
21+
22+#define USB_STREAM_INTERFACE_VERSION 2
23+
24+#define SNDRV_USB_STREAM_IOCTL_SET_PARAMS \
25+ _IOW('H', 0x90, struct usb_stream_config)
26+
27+struct usb_stream_packet {
28+ unsigned offset;
29+ unsigned length;
30+};
31+
32+
33+struct usb_stream_config {
34+ unsigned version;
35+ unsigned sample_rate;
36+ unsigned period_frames;
37+ unsigned frame_size;
38+};
39+
40+struct usb_stream {
41+ struct usb_stream_config cfg;
42+ unsigned read_size;
43+ unsigned write_size;
44+
45+ int period_size;
46+
47+ unsigned state;
48+
49+ int idle_insize;
50+ int idle_outsize;
51+ int sync_packet;
52+ unsigned insize_done;
53+ unsigned periods_done;
54+ unsigned periods_polled;
55+
56+ struct usb_stream_packet outpacket[2];
57+ unsigned inpackets;
58+ unsigned inpacket_head;
59+ unsigned inpacket_split;
60+ unsigned inpacket_split_at;
61+ unsigned next_inpacket_split;
62+ unsigned next_inpacket_split_at;
63+ struct usb_stream_packet inpacket[0];
64+};
65+
66+enum usb_stream_state {
67+ usb_stream_invalid,
68+ usb_stream_stopped,
69+ usb_stream_sync0,
70+ usb_stream_sync1,
71+ usb_stream_ready,
72+ usb_stream_running,
73+ usb_stream_xrun,
74+};
75+
76+#endif /* _UAPI__SOUND_USB_STREAM_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t