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()
...
This commit is contained in:
@@ -410,6 +410,29 @@ struct ublk_param_dma_align {
|
||||
__u8 pad[4];
|
||||
};
|
||||
|
||||
#define UBLK_MIN_SEGMENT_SIZE 4096
|
||||
/*
|
||||
* If any one of the three segment parameter is set as 0, the behavior is
|
||||
* undefined.
|
||||
*/
|
||||
struct ublk_param_segment {
|
||||
/*
|
||||
* seg_boundary_mask + 1 needs to be power_of_2(), and the sum has
|
||||
* to be >= UBLK_MIN_SEGMENT_SIZE(4096)
|
||||
*/
|
||||
__u64 seg_boundary_mask;
|
||||
|
||||
/*
|
||||
* max_segment_size could be override by virt_boundary_mask, so be
|
||||
* careful when setting both.
|
||||
*
|
||||
* max_segment_size has to be >= UBLK_MIN_SEGMENT_SIZE(4096)
|
||||
*/
|
||||
__u32 max_segment_size;
|
||||
__u16 max_segments;
|
||||
__u8 pad[2];
|
||||
};
|
||||
|
||||
struct ublk_params {
|
||||
/*
|
||||
* Total length of parameters, userspace has to set 'len' for both
|
||||
@@ -423,6 +446,7 @@ struct ublk_params {
|
||||
#define UBLK_PARAM_TYPE_DEVT (1 << 2)
|
||||
#define UBLK_PARAM_TYPE_ZONED (1 << 3)
|
||||
#define UBLK_PARAM_TYPE_DMA_ALIGN (1 << 4)
|
||||
#define UBLK_PARAM_TYPE_SEGMENT (1 << 5)
|
||||
__u32 types; /* types of parameter included */
|
||||
|
||||
struct ublk_param_basic basic;
|
||||
@@ -430,6 +454,7 @@ struct ublk_params {
|
||||
struct ublk_param_devt devt;
|
||||
struct ublk_param_zoned zoned;
|
||||
struct ublk_param_dma_align dma;
|
||||
struct ublk_param_segment seg;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user