Linux 4.20-rc1 * tag 'v4.20-rc1': (836 commits) Linux 4.20-rc1 sched/topology: Fix off by one bug memory_hotplug: cond_resched in __remove_pages bfs: add sanity check at bfs_fill_super() kernel/sysctl.c: remove duplicated include kernel/kexec_file.c: remove some duplicated includes mm, thp: consolidate THP gfp handling into alloc_hugepage_direct_gfpmask ocfs2: fix clusters leak in ocfs2_defrag_extent() ocfs2: dlmglue: clean up timestamp handling ocfs2: don't put and assigning null to bh allocated outside ocfs2: fix a misuse a of brelse after failing ocfs2_check_dir_entry ocfs2: don't use iocb when EIOCBQUEUED returns ocfs2: without quota support, avoid calling quota recovery ocfs2: remove ocfs2_is_o2cb_active() mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings include/linux/notifier.h: SRCU: fix ctags mm: handle no memcg case in memcg_kmem_charge() properly ARM: dts: stm32: update HASH1 dmas property on stm32mp157c ARM: orion: avoid VLA in orion_mpp_conf iov_iter: Fix 9p virtio breakage ...
Showing the changes to include/uapi/linux (6 of 1051 files). Show all
Unified · Split
| @@ -41,6 +41,7 @@ · 40 unmodified lines | ||
| 41 | 41 | #define EM_TILEPRO 188 /* Tilera TILEPro */ |
| 42 | 42 | #define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */ |
| 43 | 43 | #define EM_TILEGX 191 /* Tilera TILE-Gx */ |
| 44 | +#define EM_RISCV 243 /* RISC-V */ | |
| 44 | 45 | #define EM_BPF 247 /* Linux BPF - in-kernel virtual machine */ |
| 45 | 46 | #define EM_FRV 0x5441 /* Fujitsu FR-V */ |
| 46 | 47 | |
| @@ -116,6 +116,12 @@ · 115 unmodified lines | ||
| 116 | 116 | * |
| 117 | 117 | * 7.27 |
| 118 | 118 | * - add FUSE_ABORT_ERROR |
| 119 | + * | |
| 120 | + * 7.28 | |
| 121 | + * - add FUSE_COPY_FILE_RANGE | |
| 122 | + * - add FOPEN_CACHE_DIR | |
| 123 | + * - add FUSE_MAX_PAGES, add max_pages to init_out | |
| 124 | + * - add FUSE_CACHE_SYMLINKS | |
| 119 | 125 | */ |
| 120 | 126 | |
| 121 | 127 | #ifndef _LINUX_FUSE_H |
| @@ -151,7 +157,7 @@ · 29 unmodified lines | ||
| 151 | 157 | #define FUSE_KERNEL_VERSION 7 |
| 152 | 158 | |
| 153 | 159 | /** Minor version number of this interface */ |
| 154 | −#define FUSE_KERNEL_MINOR_VERSION 27 | |
| 160 | +#define FUSE_KERNEL_MINOR_VERSION 28 | |
| 155 | 161 | |
| 156 | 162 | /** The node ID of the root inode */ |
| 157 | 163 | #define FUSE_ROOT_ID 1 |
| @@ -219,10 +225,12 @@ struct fuse_file_lock { · 61 unmodified lines | ||
| 219 | 225 | * FOPEN_DIRECT_IO: bypass page cache for this open file |
| 220 | 226 | * FOPEN_KEEP_CACHE: don't invalidate the data cache on open |
| 221 | 227 | * FOPEN_NONSEEKABLE: the file is not seekable |
| 228 | + * FOPEN_CACHE_DIR: allow caching this directory | |
| 222 | 229 | */ |
| 223 | 230 | #define FOPEN_DIRECT_IO (1 << 0) |
| 224 | 231 | #define FOPEN_KEEP_CACHE (1 << 1) |
| 225 | 232 | #define FOPEN_NONSEEKABLE (1 << 2) |
| 233 | +#define FOPEN_CACHE_DIR (1 << 3) | |
| 226 | 234 | |
| 227 | 235 | /** |
| 228 | 236 | * INIT request/reply flags |
| @@ -249,6 +257,8 @@ struct fuse_file_lock { · 20 unmodified lines | ||
| 249 | 257 | * FUSE_HANDLE_KILLPRIV: fs handles killing suid/sgid/cap on write/chown/trunc |
| 250 | 258 | * FUSE_POSIX_ACL: filesystem supports posix acls |
| 251 | 259 | * FUSE_ABORT_ERROR: reading the device after abort returns ECONNABORTED |
| 260 | + * FUSE_MAX_PAGES: init_out.max_pages contains the max number of req pages | |
| 261 | + * FUSE_CACHE_SYMLINKS: cache READLINK responses | |
| 252 | 262 | */ |
| 253 | 263 | #define FUSE_ASYNC_READ (1 << 0) |
| 254 | 264 | #define FUSE_POSIX_LOCKS (1 << 1) |
| @@ -272,6 +282,8 @@ struct fuse_file_lock { · 17 unmodified lines | ||
| 272 | 282 | #define FUSE_HANDLE_KILLPRIV (1 << 19) |
| 273 | 283 | #define FUSE_POSIX_ACL (1 << 20) |
| 274 | 284 | #define FUSE_ABORT_ERROR (1 << 21) |
| 285 | +#define FUSE_MAX_PAGES (1 << 22) | |
| 286 | +#define FUSE_CACHE_SYMLINKS (1 << 23) | |
| 275 | 287 | |
| 276 | 288 | /** |
| 277 | 289 | * CUSE INIT request/reply flags |
| @@ -337,53 +349,54 @@ struct fuse_file_lock { · 59 unmodified lines | ||
| 337 | 349 | #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0) |
| 338 | 350 | |
| 339 | 351 | enum fuse_opcode { |
| 340 | − FUSE_LOOKUP = 1, | |
| 341 | − FUSE_FORGET = 2, /* no reply */ | |
| 342 | − FUSE_GETATTR = 3, | |
| 343 | − FUSE_SETATTR = 4, | |
| 344 | − FUSE_READLINK = 5, | |
| 345 | − FUSE_SYMLINK = 6, | |
| 346 | − FUSE_MKNOD = 8, | |
| 347 | − FUSE_MKDIR = 9, | |
| 348 | − FUSE_UNLINK = 10, | |
| 349 | − FUSE_RMDIR = 11, | |
| 350 | − FUSE_RENAME = 12, | |
| 351 | − FUSE_LINK = 13, | |
| 352 | − FUSE_OPEN = 14, | |
| 353 | − FUSE_READ = 15, | |
| 354 | − FUSE_WRITE = 16, | |
| 355 | − FUSE_STATFS = 17, | |
| 356 | − FUSE_RELEASE = 18, | |
| 357 | − FUSE_FSYNC = 20, | |
| 358 | − FUSE_SETXATTR = 21, | |
| 359 | − FUSE_GETXATTR = 22, | |
| 360 | − FUSE_LISTXATTR = 23, | |
| 361 | − FUSE_REMOVEXATTR = 24, | |
| 362 | − FUSE_FLUSH = 25, | |
| 363 | − FUSE_INIT = 26, | |
| 364 | − FUSE_OPENDIR = 27, | |
| 365 | − FUSE_READDIR = 28, | |
| 366 | − FUSE_RELEASEDIR = 29, | |
| 367 | − FUSE_FSYNCDIR = 30, | |
| 368 | − FUSE_GETLK = 31, | |
| 369 | − FUSE_SETLK = 32, | |
| 370 | − FUSE_SETLKW = 33, | |
| 371 | − FUSE_ACCESS = 34, | |
| 372 | − FUSE_CREATE = 35, | |
| 373 | − FUSE_INTERRUPT = 36, | |
| 374 | − FUSE_BMAP = 37, | |
| 375 | − FUSE_DESTROY = 38, | |
| 376 | − FUSE_IOCTL = 39, | |
| 377 | − FUSE_POLL = 40, | |
| 378 | − FUSE_NOTIFY_REPLY = 41, | |
| 379 | − FUSE_BATCH_FORGET = 42, | |
| 380 | − FUSE_FALLOCATE = 43, | |
| 381 | − FUSE_READDIRPLUS = 44, | |
| 382 | − FUSE_RENAME2 = 45, | |
| 383 | − FUSE_LSEEK = 46, | |
| 352 | + FUSE_LOOKUP = 1, | |
| 353 | + FUSE_FORGET = 2, /* no reply */ | |
| 354 | + FUSE_GETATTR = 3, | |
| 355 | + FUSE_SETATTR = 4, | |
| 356 | + FUSE_READLINK = 5, | |
| 357 | + FUSE_SYMLINK = 6, | |
| 358 | + FUSE_MKNOD = 8, | |
| 359 | + FUSE_MKDIR = 9, | |
| 360 | + FUSE_UNLINK = 10, | |
| 361 | + FUSE_RMDIR = 11, | |
| 362 | + FUSE_RENAME = 12, | |
| 363 | + FUSE_LINK = 13, | |
| 364 | + FUSE_OPEN = 14, | |
| 365 | + FUSE_READ = 15, | |
| 366 | + FUSE_WRITE = 16, | |
| 367 | + FUSE_STATFS = 17, | |
| 368 | + FUSE_RELEASE = 18, | |
| 369 | + FUSE_FSYNC = 20, | |
| 370 | + FUSE_SETXATTR = 21, | |
| 371 | + FUSE_GETXATTR = 22, | |
| 372 | + FUSE_LISTXATTR = 23, | |
| 373 | + FUSE_REMOVEXATTR = 24, | |
| 374 | + FUSE_FLUSH = 25, | |
| 375 | + FUSE_INIT = 26, | |
| 376 | + FUSE_OPENDIR = 27, | |
| 377 | + FUSE_READDIR = 28, | |
| 378 | + FUSE_RELEASEDIR = 29, | |
| 379 | + FUSE_FSYNCDIR = 30, | |
| 380 | + FUSE_GETLK = 31, | |
| 381 | + FUSE_SETLK = 32, | |
| 382 | + FUSE_SETLKW = 33, | |
| 383 | + FUSE_ACCESS = 34, | |
| 384 | + FUSE_CREATE = 35, | |
| 385 | + FUSE_INTERRUPT = 36, | |
| 386 | + FUSE_BMAP = 37, | |
| 387 | + FUSE_DESTROY = 38, | |
| 388 | + FUSE_IOCTL = 39, | |
| 389 | + FUSE_POLL = 40, | |
| 390 | + FUSE_NOTIFY_REPLY = 41, | |
| 391 | + FUSE_BATCH_FORGET = 42, | |
| 392 | + FUSE_FALLOCATE = 43, | |
| 393 | + FUSE_READDIRPLUS = 44, | |
| 394 | + FUSE_RENAME2 = 45, | |
| 395 | + FUSE_LSEEK = 46, | |
| 396 | + FUSE_COPY_FILE_RANGE = 47, | |
| 384 | 397 | |
| 385 | 398 | /* CUSE specific operations */ |
| 386 | − CUSE_INIT = 4096, | |
| 399 | + CUSE_INIT = 4096, | |
| 387 | 400 | }; |
| 388 | 401 | |
| 389 | 402 | enum fuse_notify_code { |
| @@ -610,7 +623,9 @@ struct fuse_init_out { · 220 unmodified lines | ||
| 610 | 623 | uint16_t congestion_threshold; |
| 611 | 624 | uint32_t max_write; |
| 612 | 625 | uint32_t time_gran; |
| 613 | − uint32_t unused[9]; | |
| 626 | + uint16_t max_pages; | |
| 627 | + uint16_t padding; | |
| 628 | + uint32_t unused[8]; | |
| 614 | 629 | }; |
| 615 | 630 | |
| 616 | 631 | #define CUSE_INIT_INFO_MAX 4096 |
| @@ -792,4 +807,14 @@ struct fuse_lseek_out { · 175 unmodified lines | ||
| 792 | 807 | uint64_t offset; |
| 793 | 808 | }; |
| 794 | 809 | |
| 810 | +struct fuse_copy_file_range_in { | |
| 811 | + uint64_t fh_in; | |
| 812 | + uint64_t off_in; | |
| 813 | + uint64_t nodeid_out; | |
| 814 | + uint64_t fh_out; | |
| 815 | + uint64_t off_out; | |
| 816 | + uint64_t len; | |
| 817 | + uint64_t flags; | |
| 818 | +}; | |
| 819 | + | |
| 795 | 820 | #endif /* _LINUX_FUSE_H */ |
| @@ -61,6 +61,11 @@ · 60 unmodified lines | ||
| 61 | 61 | #define KEYCTL_INVALIDATE 21 /* invalidate a key */ |
| 62 | 62 | #define KEYCTL_GET_PERSISTENT 22 /* get a user's persistent keyring */ |
| 63 | 63 | #define KEYCTL_DH_COMPUTE 23 /* Compute Diffie-Hellman values */ |
| 64 | +#define KEYCTL_PKEY_QUERY 24 /* Query public key parameters */ | |
| 65 | +#define KEYCTL_PKEY_ENCRYPT 25 /* Encrypt a blob using a public key */ | |
| 66 | +#define KEYCTL_PKEY_DECRYPT 26 /* Decrypt a blob using a public key */ | |
| 67 | +#define KEYCTL_PKEY_SIGN 27 /* Create a public key signature */ | |
| 68 | +#define KEYCTL_PKEY_VERIFY 28 /* Verify a public key signature */ | |
| 64 | 69 | #define KEYCTL_RESTRICT_KEYRING 29 /* Restrict keys allowed to link to a keyring */ |
| 65 | 70 | |
| 66 | 71 | /* keyctl structures */ |
| @@ -82,4 +87,29 @@ struct keyctl_kdf_params { · 15 unmodified lines | ||
| 82 | 87 | __u32 __spare[8]; |
| 83 | 88 | }; |
| 84 | 89 | |
| 90 | +#define KEYCTL_SUPPORTS_ENCRYPT 0x01 | |
| 91 | +#define KEYCTL_SUPPORTS_DECRYPT 0x02 | |
| 92 | +#define KEYCTL_SUPPORTS_SIGN 0x04 | |
| 93 | +#define KEYCTL_SUPPORTS_VERIFY 0x08 | |
| 94 | + | |
| 95 | +struct keyctl_pkey_query { | |
| 96 | + __u32 supported_ops; /* Which ops are supported */ | |
| 97 | + __u32 key_size; /* Size of the key in bits */ | |
| 98 | + __u16 max_data_size; /* Maximum size of raw data to sign in bytes */ | |
| 99 | + __u16 max_sig_size; /* Maximum size of signature in bytes */ | |
| 100 | + __u16 max_enc_size; /* Maximum size of encrypted blob in bytes */ | |
| 101 | + __u16 max_dec_size; /* Maximum size of decrypted blob in bytes */ | |
| 102 | + __u32 __spare[10]; | |
| 103 | +}; | |
| 104 | + | |
| 105 | +struct keyctl_pkey_params { | |
| 106 | + __s32 key_id; /* Serial no. of public key to use */ | |
| 107 | + __u32 in_len; /* Input data size */ | |
| 108 | + union { | |
| 109 | + __u32 out_len; /* Output buffer size (encrypt/decrypt/sign) */ | |
| 110 | + __u32 in2_len; /* 2nd input data size (verify) */ | |
| 111 | + }; | |
| 112 | + __u32 __spare[7]; | |
| 113 | +}; | |
| 114 | + | |
| 85 | 115 | #endif /* _LINUX_KEYCTL_H */ |
| @@ -646,10 +646,12 @@ struct perf_event_mmap_page { · 645 unmodified lines | ||
| 646 | 646 | * |
| 647 | 647 | * PERF_RECORD_MISC_MMAP_DATA - PERF_RECORD_MMAP* events |
| 648 | 648 | * PERF_RECORD_MISC_COMM_EXEC - PERF_RECORD_COMM event |
| 649 | + * PERF_RECORD_MISC_FORK_EXEC - PERF_RECORD_FORK event (perf internal) | |
| 649 | 650 | * PERF_RECORD_MISC_SWITCH_OUT - PERF_RECORD_SWITCH* events |
| 650 | 651 | */ |
| 651 | 652 | #define PERF_RECORD_MISC_MMAP_DATA (1 << 13) |
| 652 | 653 | #define PERF_RECORD_MISC_COMM_EXEC (1 << 13) |
| 654 | +#define PERF_RECORD_MISC_FORK_EXEC (1 << 13) | |
| 653 | 655 | #define PERF_RECORD_MISC_SWITCH_OUT (1 << 13) |
| 654 | 656 | /* |
| 655 | 657 | * These PERF_RECORD_MISC_* flags below are safely reused |
| @@ -303,6 +303,56 @@ struct vfio_region_info_cap_type { · 302 unmodified lines | ||
| 303 | 303 | #define VFIO_REGION_SUBTYPE_INTEL_IGD_HOST_CFG (2) |
| 304 | 304 | #define VFIO_REGION_SUBTYPE_INTEL_IGD_LPC_CFG (3) |
| 305 | 305 | |
| 306 | +#define VFIO_REGION_TYPE_GFX (1) | |
| 307 | +#define VFIO_REGION_SUBTYPE_GFX_EDID (1) | |
| 308 | + | |
| 309 | +/** | |
| 310 | + * struct vfio_region_gfx_edid - EDID region layout. | |
| 311 | + * | |
| 312 | + * Set display link state and EDID blob. | |
| 313 | + * | |
| 314 | + * The EDID blob has monitor information such as brand, name, serial | |
| 315 | + * number, physical size, supported video modes and more. | |
| 316 | + * | |
| 317 | + * This special region allows userspace (typically qemu) set a virtual | |
| 318 | + * EDID for the virtual monitor, which allows a flexible display | |
| 319 | + * configuration. | |
| 320 | + * | |
| 321 | + * For the edid blob spec look here: | |
| 322 | + * https://en.wikipedia.org/wiki/Extended_Display_Identification_Data | |
| 323 | + * | |
| 324 | + * On linux systems you can find the EDID blob in sysfs: | |
| 325 | + * /sys/class/drm/${card}/${connector}/edid | |
| 326 | + * | |
| 327 | + * You can use the edid-decode ulility (comes with xorg-x11-utils) to | |
| 328 | + * decode the EDID blob. | |
| 329 | + * | |
| 330 | + * @edid_offset: location of the edid blob, relative to the | |
| 331 | + * start of the region (readonly). | |
| 332 | + * @edid_max_size: max size of the edid blob (readonly). | |
| 333 | + * @edid_size: actual edid size (read/write). | |
| 334 | + * @link_state: display link state (read/write). | |
| 335 | + * VFIO_DEVICE_GFX_LINK_STATE_UP: Monitor is turned on. | |
| 336 | + * VFIO_DEVICE_GFX_LINK_STATE_DOWN: Monitor is turned off. | |
| 337 | + * @max_xres: max display width (0 == no limitation, readonly). | |
| 338 | + * @max_yres: max display height (0 == no limitation, readonly). | |
| 339 | + * | |
| 340 | + * EDID update protocol: | |
| 341 | + * (1) set link-state to down. | |
| 342 | + * (2) update edid blob and size. | |
| 343 | + * (3) set link-state to up. | |
| 344 | + */ | |
| 345 | +struct vfio_region_gfx_edid { | |
| 346 | + __u32 edid_offset; | |
| 347 | + __u32 edid_max_size; | |
| 348 | + __u32 edid_size; | |
| 349 | + __u32 max_xres; | |
| 350 | + __u32 max_yres; | |
| 351 | + __u32 link_state; | |
| 352 | +#define VFIO_DEVICE_GFX_LINK_STATE_UP 1 | |
| 353 | +#define VFIO_DEVICE_GFX_LINK_STATE_DOWN 2 | |
| 354 | +}; | |
| 355 | + | |
| 306 | 356 | /* |
| 307 | 357 | * The MSIX mappable capability informs that MSIX data of a BAR can be mmapped |
| 308 | 358 | * which allows direct access to non-MSIX registers which happened to be within |
| @@ -34,15 +34,23 @@ · 33 unmodified lines | ||
| 34 | 34 | #define VIRTIO_BALLOON_F_MUST_TELL_HOST 0 /* Tell before reclaiming pages */ |
| 35 | 35 | #define VIRTIO_BALLOON_F_STATS_VQ 1 /* Memory Stats virtqueue */ |
| 36 | 36 | #define VIRTIO_BALLOON_F_DEFLATE_ON_OOM 2 /* Deflate balloon on OOM */ |
| 37 | +#define VIRTIO_BALLOON_F_FREE_PAGE_HINT 3 /* VQ to report free pages */ | |
| 38 | +#define VIRTIO_BALLOON_F_PAGE_POISON 4 /* Guest is using page poisoning */ | |
| 37 | 39 | |
| 38 | 40 | /* Size of a PFN in the balloon interface. */ |
| 39 | 41 | #define VIRTIO_BALLOON_PFN_SHIFT 12 |
| 40 | 42 | |
| 43 | +#define VIRTIO_BALLOON_CMD_ID_STOP 0 | |
| 44 | +#define VIRTIO_BALLOON_CMD_ID_DONE 1 | |
| 41 | 45 | struct virtio_balloon_config { |
| 42 | 46 | /* Number of pages host wants Guest to give up. */ |
| 43 | 47 | __u32 num_pages; |
| 44 | 48 | /* Number of pages we've actually got in balloon. */ |
| 45 | 49 | __u32 actual; |
| 50 | + /* Free page report command id, readonly by guest */ | |
| 51 | + __u32 free_page_report_cmd_id; | |
| 52 | + /* Stores PAGE_POISON if page poisoning is in use */ | |
| 53 | + __u32 poison_val; | |
| 46 | 54 | }; |
| 47 | 55 | |
| 48 | 56 | #define VIRTIO_BALLOON_S_SWAP_IN 0 /* Amount of memory swapped in */ |