History

Merge tag 'io_uring-6.15-20250403' of git://git.kernel.dk/linux

Pull more io_uring updates from Jens Axboe: "Set of fixes/updates for io_uring that should go into this release. The ublk bits could've gone via either tree - usually I put them in block, but they got a bit mixed this series with the zero-copy supported that ended up dipping into both trees. This contains: - Fix for sendmsg zc, include in pinned pages accounting like we do for the other zc types - Series for ublk fixing request aborting, doing various little cleanups, fixing some zc issues, and adding queue_rqs support - Another ublk series doing some code cleanups - Series cleaning up the io_uring send path, mostly in preparation for registered buffers - Series doing little MSG_RING cleanups - Fix for the newly added zc rx, fixing len being 0 for the last invocation of the callback - Add vectored registered buffer support for ublk. With that, then ublk also supports this feature in the kernel revision where it could generically introduced for rw/net - A bunch of selftest additions for ublk. This is the majority of the diffstat - Silence a KCSAN data race warning for io-wq - Various little cleanups and fixes" * tag 'io_uring-6.15-20250403' of git://git.kernel.dk/linux: (44 commits) io_uring: always do atomic put from iowq selftests: ublk: enable zero copy for stripe target io_uring: support vectored kernel fixed buffer block: add for_each_mp_bvec() io_uring: add validate_fixed_range() for validate fixed buffer selftests: ublk: kublk: fix an error log line selftests: ublk: kublk: use ioctl-encoded opcodes io_uring/zcrx: return early from io_zcrx_recv_skb if readlen is 0 io_uring/net: avoid import_ubuf for regvec send io_uring/rsrc: check size when importing reg buffer io_uring: cleanup {g,s]etsockopt sqe reading io_uring: hide caches sqes from drivers io_uring: make zcrx depend on CONFIG_IO_URING io_uring: add req flag invariant build assertion Documentation: ublk: remove dead footnote selftests: ublk: specify io_cmd_buf pointer type ublk: specify io_cmd_buf pointer type io_uring: don't pass ctx to tw add remote helper io_uring/msg: initialise msg request opcode io_uring/msg: rename io_double_lock_ctx() ...

Linus Torvalds committed 1 year ago

Commit 7930edc2 parents c0dbd11 390513630 files · +673 −238Browse files

Showing the changes to include/uapi/linux (1 of 30 files). Show all

Unified · Split

include/uapi/linux/ublk_cmd.h+25−0
@@ -410,6 +410,29 @@ struct ublk_param_dma_align { · 409 unmodified lines
410 __u8 pad[4];410 __u8 pad[4];
411};411};
412 412
413#define UBLK_MIN_SEGMENT_SIZE 4096
414/*
415 * If any one of the three segment parameter is set as 0, the behavior is
416 * undefined.
417 */
418struct ublk_param_segment {
419 /*
420 * seg_boundary_mask + 1 needs to be power_of_2(), and the sum has
421 * to be >= UBLK_MIN_SEGMENT_SIZE(4096)
422 */
423 __u64 seg_boundary_mask;
424
425 /*
426 * max_segment_size could be override by virt_boundary_mask, so be
427 * careful when setting both.
428 *
429 * max_segment_size has to be >= UBLK_MIN_SEGMENT_SIZE(4096)
430 */
431 __u32 max_segment_size;
432 __u16 max_segments;
433 __u8 pad[2];
434};
435
413struct ublk_params {436struct ublk_params {
414 /*437 /*
415 * Total length of parameters, userspace has to set 'len' for both438 * Total length of parameters, userspace has to set 'len' for both
@@ -423,6 +446,7 @@ struct ublk_params { · 7 unmodified lines
423#define UBLK_PARAM_TYPE_DEVT (1 << 2)446#define UBLK_PARAM_TYPE_DEVT (1 << 2)
424#define UBLK_PARAM_TYPE_ZONED (1 << 3)447#define UBLK_PARAM_TYPE_ZONED (1 << 3)
425#define UBLK_PARAM_TYPE_DMA_ALIGN (1 << 4)448#define UBLK_PARAM_TYPE_DMA_ALIGN (1 << 4)
449#define UBLK_PARAM_TYPE_SEGMENT (1 << 5)
426 __u32 types; /* types of parameter included */450 __u32 types; /* types of parameter included */
427 451
428 struct ublk_param_basic basic;452 struct ublk_param_basic basic;
@@ -430,6 +454,7 @@ struct ublk_params { · 1 unmodified line
430 struct ublk_param_devt devt;454 struct ublk_param_devt devt;
431 struct ublk_param_zoned zoned;455 struct ublk_param_zoned zoned;
432 struct ublk_param_dma_align dma;456 struct ublk_param_dma_align dma;
457 struct ublk_param_segment seg;
433};458};
434 459
435#endif460#endif