History

Merge tag 'for-5.20/block-2022-08-04' of git://git.kernel.dk/linux-block

Pull block driver updates from Jens Axboe: - NVMe pull requests via Christoph: - add support for In-Band authentication (Hannes Reinecke) - handle the persistent internal error AER (Michael Kelley) - use in-capsule data for TCP I/O queue connect (Caleb Sander) - remove timeout for getting RDMA-CM established event (Israel Rukshin) - misc cleanups (Joel Granados, Sagi Grimberg, Chaitanya Kulkarni, Guixin Liu, Xiang wangx) - use command_id instead of req->tag in trace_nvme_complete_rq() (Bean Huo) - various fixes for the new authentication code (Lukas Bulwahn, Dan Carpenter, Colin Ian King, Chaitanya Kulkarni, Hannes Reinecke) - small cleanups (Liu Song, Christoph Hellwig) - restore compat_ioctl support (Nick Bowler) - make a nvmet-tcp workqueue lockdep-safe (Sagi Grimberg) - enable generic interface (/dev/ngXnY) for unknown command sets (Joel Granados, Christoph Hellwig) - don't always build constants.o (Christoph Hellwig) - print the command name of aborted commands (Christoph Hellwig) - MD pull requests via Song: - Improve raid5 lock contention, by Logan Gunthorpe. - Misc fixes to raid5, by Logan Gunthorpe. - Fix race condition with md_reap_sync_thread(), by Guoqing Jiang. - Fix potential deadlock with raid5_quiesce and raid5_get_active_stripe, by Logan Gunthorpe. - Refactoring md_alloc(), by Christoph" - Fix md disk_name lifetime problems, by Christoph Hellwig - Convert prepare_to_wait() to wait_woken() api, by Logan Gunthorpe; - Fix sectors_to_do bitmap issue, by Logan Gunthorpe. - Work on unifying the null_blk module parameters and configfs API (Vincent) - drbd bitmap IO error fix (Lars) - Set of rnbd fixes (Guoqing, Md Haris) - Remove experimental marker on bcache async device registration (Coly) - Series from cleaning up the bio splitting (Christoph) - Removal of the sx8 block driver. This hardware never really widespread, and it didn't receive a lot of attention after the initial merge of it back in 2005 (Christoph) - A few fixes for s390 dasd (Eric, Jiang) - Followup set of fixes for ublk (Ming) - Support for UBLK_IO_NEED_GET_DATA for ublk (ZiyangZhang) - Fixes for the dio dma alignment (Keith) - Misc fixes and cleanups (Ming, Yu, Dan, Christophe * tag 'for-5.20/block-2022-08-04' of git://git.kernel.dk/linux-block: (136 commits) s390/dasd: Establish DMA alignment s390/dasd: drop unexpected word 'for' in comments ublk_drv: add support for UBLK_IO_NEED_GET_DATA ublk_cmd.h: add one new ublk command: UBLK_IO_NEED_GET_DATA ublk_drv: cleanup ublksrv_ctrl_dev_info ublk_drv: add SET_PARAMS/GET_PARAMS control command ublk_drv: fix ublk device leak in case that add_disk fails ublk_drv: cancel device even though disk isn't up block: fix leaking page ref on truncated direct io block: ensure bio_iov_add_page can't fail block: ensure iov_iter advances for added pages drivers:md:fix a potential use-after-free bug md/raid5: Ensure batch_last is released before sleeping for quiesce md/raid5: Move stripe_request_ctx up md/raid5: Drop unnecessary call to r5c_check_stripe_cache_usage() md/raid5: Make is_inactive_blocked() helper md/raid5: Refactor raid5_get_active_stripe() block: pass struct queue_limits to the bio splitting helpers block: move bio_allowed_max_sectors to blk-merge.c block: move the call to get_max_io_size out of blk_bio_segment_split ...

Linus Torvalds committed 4 years ago

Commit fa9db652 parents e495274 bc7928886 files · +5640 −2856Browse files

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

Unified · Split

include/uapi/linux/ublk_cmd.h+73−7
@@ -15,6 +15,8 @@ · 14 unmodified lines
15#define UBLK_CMD_DEL_DEV 0x0515#define UBLK_CMD_DEL_DEV 0x05
16#define UBLK_CMD_START_DEV 0x0616#define UBLK_CMD_START_DEV 0x06
17#define UBLK_CMD_STOP_DEV 0x0717#define UBLK_CMD_STOP_DEV 0x07
18#define UBLK_CMD_SET_PARAMS 0x08
19#define UBLK_CMD_GET_PARAMS 0x09
18 20
19/*21/*
20 * IO commands, issued by ublk server, and handled by ublk driver.22 * IO commands, issued by ublk server, and handled by ublk driver.
@@ -28,12 +30,21 @@ · 7 unmodified lines
28 * this IO request, request's handling result is committed to ublk30 * this IO request, request's handling result is committed to ublk
29 * driver, meantime FETCH_REQ is piggyback, and FETCH_REQ has to be31 * driver, meantime FETCH_REQ is piggyback, and FETCH_REQ has to be
30 * handled before completing io request.32 * handled before completing io request.
33 *
34 * NEED_GET_DATA: only used for write requests to set io addr and copy data
35 * When NEED_GET_DATA is set, ublksrv has to issue UBLK_IO_NEED_GET_DATA
36 * command after ublk driver returns UBLK_IO_RES_NEED_GET_DATA.
37 *
38 * It is only used if ublksrv set UBLK_F_NEED_GET_DATA flag
39 * while starting a ublk device.
31 */40 */
32#define UBLK_IO_FETCH_REQ 0x2041#define UBLK_IO_FETCH_REQ 0x20
33#define UBLK_IO_COMMIT_AND_FETCH_REQ 0x2142#define UBLK_IO_COMMIT_AND_FETCH_REQ 0x21
43#define UBLK_IO_NEED_GET_DATA 0x22
34 44
35/* only ABORT means that no re-fetch */45/* only ABORT means that no re-fetch */
36#define UBLK_IO_RES_OK 046#define UBLK_IO_RES_OK 0
47#define UBLK_IO_RES_NEED_GET_DATA 1
37#define UBLK_IO_RES_ABORT (-ENODEV)48#define UBLK_IO_RES_ABORT (-ENODEV)
38 49
39#define UBLKSRV_CMD_BUF_OFFSET 050#define UBLKSRV_CMD_BUF_OFFSET 0
@@ -54,6 +65,15 @@ · 14 unmodified lines
54 */65 */
55#define UBLK_F_URING_CMD_COMP_IN_TASK (1ULL << 1)66#define UBLK_F_URING_CMD_COMP_IN_TASK (1ULL << 1)
56 67
68/*
69 * User should issue io cmd again for write requests to
70 * set io buffer address and copy data from bio vectors
71 * to the userspace io buffer.
72 *
73 * In this mode, task_work is not used.
74 */
75#define UBLK_F_NEED_GET_DATA (1UL << 2)
76
57/* device state */77/* device state */
58#define UBLK_S_DEV_DEAD 078#define UBLK_S_DEV_DEAD 0
59#define UBLK_S_DEV_LIVE 179#define UBLK_S_DEV_LIVE 1
@@ -78,22 +98,23 @@ struct ublksrv_ctrl_cmd { · 18 unmodified lines
78struct ublksrv_ctrl_dev_info {98struct ublksrv_ctrl_dev_info {
79 __u16 nr_hw_queues;99 __u16 nr_hw_queues;
80 __u16 queue_depth;100 __u16 queue_depth;
81 __u16 block_size;
82 __u16 state;101 __u16 state;
102 __u16 pad0;
83 103
84 __u32 rq_max_blocks;104 __u32 max_io_buf_bytes;
85 __u32 dev_id;105 __u32 dev_id;
86 106
87 __u64 dev_blocks;
88
89 __s32 ublksrv_pid;107 __s32 ublksrv_pid;
90 __s32 reserved0;108 __u32 pad1;
109
91 __u64 flags;110 __u64 flags;
92 __u64 flags_reserved;
93 111
94 /* For ublksrv internal use, invisible to ublk driver */112 /* For ublksrv internal use, invisible to ublk driver */
95 __u64 ublksrv_flags;113 __u64 ublksrv_flags;
96 __u64 reserved1[9];114
115 __u64 reserved0;
116 __u64 reserved1;
117 __u64 reserved2;
97};118};
98 119
99#define UBLK_IO_OP_READ 0120#define UBLK_IO_OP_READ 0
@@ -158,4 +179,49 @@ struct ublksrv_io_cmd { · 58 unmodified lines
158 __u64 addr;179 __u64 addr;
159};180};
160 181
182struct ublk_param_basic {
183#define UBLK_ATTR_READ_ONLY (1 << 0)
184#define UBLK_ATTR_ROTATIONAL (1 << 1)
185#define UBLK_ATTR_VOLATILE_CACHE (1 << 2)
186#define UBLK_ATTR_FUA (1 << 3)
187 __u32 attrs;
188 __u8 logical_bs_shift;
189 __u8 physical_bs_shift;
190 __u8 io_opt_shift;
191 __u8 io_min_shift;
192
193 __u32 max_sectors;
194 __u32 chunk_sectors;
195
196 __u64 dev_sectors;
197 __u64 virt_boundary_mask;
198};
199
200struct ublk_param_discard {
201 __u32 discard_alignment;
202
203 __u32 discard_granularity;
204 __u32 max_discard_sectors;
205
206 __u32 max_write_zeroes_sectors;
207 __u16 max_discard_segments;
208 __u16 reserved0;
209};
210
211struct ublk_params {
212 /*
213 * Total length of parameters, userspace has to set 'len' for both
214 * SET_PARAMS and GET_PARAMS command, and driver may update len
215 * if two sides use different version of 'ublk_params', same with
216 * 'types' fields.
217 */
218 __u32 len;
219#define UBLK_PARAM_TYPE_BASIC (1 << 0)
220#define UBLK_PARAM_TYPE_DISCARD (1 << 1)
221 __u32 types; /* types of parameter included */
222
223 struct ublk_param_basic basic;
224 struct ublk_param_discard discard;
225};
226
161#endif227#endif

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