Home
last modified time | relevance | path

Searched refs:sqe (Results 1 – 25 of 79) sorted by relevance

1234

/linux/tools/testing/selftests/ublk/
H A Dnull.c47 struct io_uring_sqe *sqe, int q_id, unsigned buf_idx) in __setup_nop_io()
51 io_uring_prep_nop(sqe); in __setup_nop_io()
52 sqe->buf_index = buf_idx; in __setup_nop_io()
53 sqe->flags |= IOSQE_FIXED_FILE; in __setup_nop_io()
54 sqe->rw_flags = IORING_NOP_FIXED_BUFFER | IORING_NOP_INJECT_RESULT; in __setup_nop_io()
55 sqe->len = iod->nr_sectors << 9; /* injected result */ in __setup_nop_io()
56 sqe->user_data = build_user_data(tag, ublk_op, 0, q_id, 1); in __setup_nop_io()
63 struct io_uring_sqe *sqe[3]; in null_queue_zc_io()
66 ublk_io_alloc_sqes(t, sqe, 3); in null_queue_zc_io()
68 io_uring_prep_buf_register(sqe[ in null_queue_zc_io()
46 __setup_nop_io(int tag,const struct ublksrv_io_desc * iod,struct io_uring_sqe * sqe,int q_id) __setup_nop_io() argument
62 struct io_uring_sqe *sqe[3]; null_queue_zc_io() local
85 struct io_uring_sqe *sqe[1]; null_queue_auto_zc_io() local
[all...]
H A Dfile_backed.c20 struct io_uring_sqe *sqe[1]; in loop_queue_flush_io() local
22 ublk_io_alloc_sqes(t, sqe, 1); in loop_queue_flush_io()
23 io_uring_prep_fsync(sqe[0], ublk_get_registered_fd(q, 1) /*fds[1]*/, IORING_FSYNC_DATASYNC); in loop_queue_flush_io()
24 io_uring_sqe_set_flags(sqe[0], IOSQE_FIXED_FILE); in loop_queue_flush_io()
26 sqe[0]->user_data = build_user_data(tag, ublk_op, 0, q->q_id, 1); in loop_queue_flush_io()
45 struct io_uring_sqe *sqe[1]; in loop_queue_tgt_rw_io()
53 ublk_io_alloc_sqes(t, sqe, 1); in loop_queue_tgt_rw_io()
54 if (!sqe[0]) in loop_queue_tgt_rw_io()
57 io_uring_prep_rw(op, sqe[0], ublk_get_registered_fd(q, 1), in loop_queue_tgt_rw_io()
59 io_uring_sqe_set_flags(sqe[ in loop_queue_tgt_rw_io()
40 struct io_uring_sqe *sqe[3]; loop_queue_tgt_rw_io() local
[all...]
H A Dkublk.h411 static inline void __io_uring_prep_buf_reg_unreg(struct io_uring_sqe *sqe, in __io_uring_prep_buf_reg_unreg()
414 struct ublksrv_io_cmd *cmd = (struct ublksrv_io_cmd *)sqe->cmd; in __io_uring_prep_buf_reg_unreg()
417 io_uring_prep_read(sqe, dev_fd, 0, 0, 0); in __io_uring_prep_buf_reg_unreg()
418 sqe->opcode = IORING_OP_URING_CMD; in __io_uring_prep_buf_reg_unreg()
420 sqe->flags &= ~IOSQE_FIXED_FILE; in __io_uring_prep_buf_reg_unreg()
422 sqe->flags |= IOSQE_FIXED_FILE;
429 static inline void io_uring_prep_buf_register(struct io_uring_sqe *sqe,
432 __io_uring_prep_buf_reg_unreg(sqe, q, tag, q_id, index); in io_uring_prep_buf_unregister()
433 sqe->cmd_op = UBLK_U_IO_REGISTER_IO_BUF; in io_uring_prep_buf_unregister()
436 static inline void io_uring_prep_buf_unregister(struct io_uring_sqe *sqe,
405 __io_uring_prep_buf_reg_unreg(struct io_uring_sqe * sqe,struct ublk_queue * q,int tag,int q_id,__u64 index) __io_uring_prep_buf_reg_unreg() argument
423 io_uring_prep_buf_register(struct io_uring_sqe * sqe,struct ublk_queue * q,int tag,int q_id,__u64 index) io_uring_prep_buf_register() argument
430 io_uring_prep_buf_unregister(struct io_uring_sqe * sqe,struct ublk_queue * q,int tag,int q_id,__u64 index) io_uring_prep_buf_unregister() argument
437 ublk_get_sqe_cmd(const struct io_uring_sqe * sqe) ublk_get_sqe_cmd() argument
463 ublk_set_sqe_cmd_op(struct io_uring_sqe * sqe,__u32 cmd_op) ublk_set_sqe_cmd_op() argument
[all...]
H A Dstripe.c133 struct io_uring_sqe *sqe[NR_STRIPE]; in stripe_queue_tgt_rw_io() local
143 ublk_io_alloc_sqes(t, sqe, s->nr + extra); in stripe_queue_tgt_rw_io()
146 io_uring_prep_buf_register(sqe[0], q, tag, q->q_id, buf_idx); in stripe_queue_tgt_rw_io()
147 sqe[0]->flags |= IOSQE_CQE_SKIP_SUCCESS | IOSQE_IO_HARDLINK; in stripe_queue_tgt_rw_io()
148 sqe[0]->user_data = build_user_data(tag, in stripe_queue_tgt_rw_io()
149 ublk_cmd_op_nr(sqe[0]->cmd_op), 0, q->q_id, 1); in stripe_queue_tgt_rw_io()
155 io_uring_prep_rw(op, sqe[i], in stripe_queue_tgt_rw_io()
160 io_uring_sqe_set_flags(sqe[i], IOSQE_FIXED_FILE); in stripe_queue_tgt_rw_io()
162 sqe[i]->buf_index = buf_idx; in stripe_queue_tgt_rw_io()
164 sqe[i]->flags |= IOSQE_IO_HARDLINK; in stripe_queue_tgt_rw_io()
[all …]
/linux/drivers/crypto/hisilicon/zip/
H A Dzip_crypto.c46 #define GET_REQ_FROM_SQE(sqe) ((u64)(sqe)->dw26 | (u64)(sqe)->dw27 << 32) argument
79 void (*fill_addr)(struct hisi_zip_sqe *sqe, struct hisi_zip_req *req);
80 void (*fill_buf_size)(struct hisi_zip_sqe *sqe, struct hisi_zip_req *req);
81 void (*fill_buf_type)(struct hisi_zip_sqe *sqe, u8 buf_type);
82 void (*fill_req_type)(struct hisi_zip_sqe *sqe, u8 req_type);
83 void (*fill_win_size)(struct hisi_zip_sqe *sqe, u8 win_size);
84 void (*fill_tag)(struct hisi_zip_sqe *sqe, struct hisi_zip_req *req);
85 void (*fill_sqe_type)(struct hisi_zip_sqe *sqe, u8 sqe_type);
86 u32 (*get_status)(struct hisi_zip_sqe *sqe);
87 u32 (*get_dstlen)(struct hisi_zip_sqe *sqe);
[all …]
/linux/io_uring/
H A Dopenclose.c53 static int __io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in __io_openat_prep() argument
59 if (unlikely(sqe->buf_index)) in __io_openat_prep()
68 open->dfd = READ_ONCE(sqe->fd); in __io_openat_prep()
69 fname = u64_to_user_ptr(READ_ONCE(sqe->addr)); in __io_openat_prep()
75 open->file_slot = READ_ONCE(sqe->file_index); in __io_openat_prep()
94 int io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_openat_prep() argument
97 u64 mode = READ_ONCE(sqe->len); in io_openat_prep()
98 u64 flags = READ_ONCE(sqe->open_flags); in io_openat_prep()
101 return __io_openat_prep(req, sqe); in io_openat_prep()
104 int io_openat2_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_openat2_prep() argument
[all …]
H A Dcmd_net.c29 const struct io_uring_sqe *sqe = cmd->sqe; in io_uring_cmd_getsockopt() local
34 level = READ_ONCE(sqe->level); in io_uring_cmd_getsockopt()
38 optval = u64_to_user_ptr(READ_ONCE(sqe->optval)); in io_uring_cmd_getsockopt()
39 optname = READ_ONCE(sqe->optname); in io_uring_cmd_getsockopt()
40 optlen = READ_ONCE(sqe->optlen); in io_uring_cmd_getsockopt()
56 const struct io_uring_sqe *sqe = cmd->sqe; in io_uring_cmd_setsockopt() local
62 optval = u64_to_user_ptr(READ_ONCE(sqe->optval)); in io_uring_cmd_setsockopt()
63 optname = READ_ONCE(sqe->optname); in io_uring_cmd_setsockopt()
64 optlen = READ_ONCE(sqe->optlen); in io_uring_cmd_setsockopt()
65 level = READ_ONCE(sqe->level); in io_uring_cmd_setsockopt()
[all …]
H A Dxattr.c43 const struct io_uring_sqe *sqe) in __io_getxattr_prep() argument
51 name = u64_to_user_ptr(READ_ONCE(sqe->addr)); in __io_getxattr_prep()
52 ix->ctx.value = u64_to_user_ptr(READ_ONCE(sqe->addr2)); in __io_getxattr_prep()
53 ix->ctx.size = READ_ONCE(sqe->len); in __io_getxattr_prep()
54 ix->ctx.flags = READ_ONCE(sqe->xattr_flags); in __io_getxattr_prep()
74 int io_fgetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_fgetxattr_prep() argument
76 return __io_getxattr_prep(req, sqe); in io_fgetxattr_prep()
79 int io_getxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_getxattr_prep() argument
88 ret = __io_getxattr_prep(req, sqe); in io_getxattr_prep()
92 path = u64_to_user_ptr(READ_ONCE(sqe->addr3)); in io_getxattr_prep()
[all …]
H A Dadvise.c31 int io_madvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_madvise_prep() argument
36 if (sqe->buf_index || sqe->splice_fd_in) in io_madvise_prep()
39 ma->addr = READ_ONCE(sqe->addr); in io_madvise_prep()
40 ma->len = READ_ONCE(sqe->off); in io_madvise_prep()
42 ma->len = READ_ONCE(sqe->len); in io_madvise_prep()
43 ma->advice = READ_ONCE(sqe->fadvise_advice); in io_madvise_prep()
79 int io_fadvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_fadvise_prep() argument
83 if (sqe->buf_index || sqe in io_fadvise_prep()
[all...]
H A Dmock_file.c67 const struct io_uring_sqe *sqe = cmd->sqe; in io_cmd_copy_regbuf() local
74 ubuf = u64_to_user_ptr(READ_ONCE(sqe->addr3)); in io_cmd_copy_regbuf()
75 iovec = u64_to_user_ptr(READ_ONCE(sqe->addr)); in io_cmd_copy_regbuf()
76 iovec_len = READ_ONCE(sqe->len); in io_cmd_copy_regbuf()
77 flags = READ_ONCE(sqe->file_index); in io_cmd_copy_regbuf()
79 if (unlikely(sqe->ioprio || sqe->__pad1)) in io_cmd_copy_regbuf()
213 const struct io_uring_sqe *sqe = cmd->sqe; in io_create_mock_file() local
225 uarg = u64_to_user_ptr(READ_ONCE(sqe->addr)); in io_create_mock_file()
226 uarg_size = READ_ONCE(sqe->len); in io_create_mock_file()
228 if (sqe->ioprio || sqe->__pad1 || sqe->addr3 || sqe->file_index) in io_create_mock_file()
[all …]
H A Dfutex.c127 int io_futex_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_futex_prep() argument
132 if (unlikely(sqe->len || sqe->futex_flags || sqe->buf_index || in io_futex_prep()
133 sqe->file_index)) in io_futex_prep()
136 iof->uaddr = u64_to_user_ptr(READ_ONCE(sqe->addr)); in io_futex_prep()
137 iof->futex_val = READ_ONCE(sqe->addr2); in io_futex_prep()
138 iof->futex_mask = READ_ONCE(sqe->addr3); in io_futex_prep()
139 flags = READ_ONCE(sqe->fd); in io_futex_prep()
174 int io_futexv_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_futexv_prep() argument
181 if (unlikely(sqe->fd || sqe->buf_index || sqe->file_index || in io_futexv_prep()
182 sqe->addr2 || sqe->futex_flags || sqe->addr3)) in io_futexv_prep()
[all …]
H A Depoll.c29 int io_epoll_ctl_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) in io_epoll_ctl_prep()
33 if (sqe->buf_index || sqe->splice_fd_in) in io_epoll_ctl_prep()
36 epoll->epfd = READ_ONCE(sqe->fd); in io_epoll_ctl_prep()
37 epoll->op = READ_ONCE(sqe->len); in io_epoll_ctl_prep()
38 epoll->fd = READ_ONCE(sqe->off); in io_epoll_ctl_prep()
43 ev = u64_to_user_ptr(READ_ONCE(sqe->addr)); in io_epoll_ctl_prep()
67 int io_epoll_wait_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
71 if (sqe->off || sqe
24 io_epoll_ctl_prep(struct io_kiocb * req,const struct io_uring_sqe * sqe) io_epoll_ctl_prep() argument
[all...]
H A Dfs.h3 int io_renameat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
7 int io_unlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
11 int io_mkdirat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
15 int io_symlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
18 int io_linkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
H A Dfdinfo.c96 struct io_uring_sqe *sqe; in __io_uring_show_fdinfo() local
108 sqe = &ctx->sq_sqes[sq_idx << sq_shift]; in __io_uring_show_fdinfo()
109 opcode = READ_ONCE(sqe->opcode); in __io_uring_show_fdinfo()
135 sq_idx, io_uring_get_opcode(opcode), sqe->fd, in __io_uring_show_fdinfo()
136 sqe->flags, (unsigned long long) sqe->off, in __io_uring_show_fdinfo()
137 (unsigned long long) sqe->addr, sqe->rw_flags, in __io_uring_show_fdinfo()
138 sqe->buf_index, sqe->user_data); in __io_uring_show_fdinfo()
140 u64 *sqeb = (void *) (sqe + 1); in __io_uring_show_fdinfo()
H A Dxattr.h5 int io_fsetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
8 int io_setxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
11 int io_fgetxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
14 int io_getxattr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
H A Drw.c259 static int __io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe, in __io_prep_rw() argument
272 rw->kiocb.ki_pos = READ_ONCE(sqe->off); in __io_prep_rw()
274 req->buf_index = READ_ONCE(sqe->buf_index); in __io_prep_rw()
277 ioprio = READ_ONCE(sqe->ioprio); in __io_prep_rw()
288 rw->kiocb.ki_write_stream = READ_ONCE(sqe->write_stream); in __io_prep_rw()
295 rw->addr = READ_ONCE(sqe->addr); in __io_prep_rw()
296 rw->len = READ_ONCE(sqe->len); in __io_prep_rw()
297 rw->flags = (__force rwf_t) READ_ONCE(sqe->rw_flags); in __io_prep_rw()
299 attr_type_mask = READ_ONCE(sqe->attr_type_mask); in __io_prep_rw()
307 attr_ptr = READ_ONCE(sqe->attr_ptr); in __io_prep_rw()
[all …]
/linux/drivers/infiniband/sw/siw/
H A Dsiw_qp.c251 wqe->sqe.flags = 0; in siw_qp_mpa_rts()
252 wqe->sqe.num_sge = 1; in siw_qp_mpa_rts()
253 wqe->sqe.sge[0].length = 0; in siw_qp_mpa_rts()
254 wqe->sqe.sge[0].laddr = 0; in siw_qp_mpa_rts()
255 wqe->sqe.sge[0].lkey = 0; in siw_qp_mpa_rts()
260 wqe->sqe.rkey = 1; in siw_qp_mpa_rts()
261 wqe->sqe.raddr = 0; in siw_qp_mpa_rts()
265 wqe->sqe.opcode = SIW_OP_WRITE; in siw_qp_mpa_rts()
269 wqe->sqe.opcode = SIW_OP_READ; in siw_qp_mpa_rts()
276 siw_read_to_orq(rreq, &wqe->sqe); in siw_qp_mpa_rts()
[all …]
H A Dsiw_qp_tx.c52 struct siw_sge *sge = &wqe->sqe.sge[0]; in siw_try_1seg()
55 if (bytes > MAX_HDR_INLINE || wqe->sqe.num_sge != 1) in siw_try_1seg()
62 memcpy(paddr, &wqe->sqe.sge[1], bytes); in siw_try_1seg()
135 c_tx->pkt.rreq.sink_stag = htonl(wqe->sqe.sge[0].lkey); in siw_qp_prepare_tx()
137 cpu_to_be64(wqe->sqe.sge[0].laddr); in siw_qp_prepare_tx()
138 c_tx->pkt.rreq.source_stag = htonl(wqe->sqe.rkey); in siw_qp_prepare_tx()
139 c_tx->pkt.rreq.source_to = cpu_to_be64(wqe->sqe.raddr); in siw_qp_prepare_tx()
140 c_tx->pkt.rreq.read_size = htonl(wqe->sqe.sge[0].length); in siw_qp_prepare_tx()
183 c_tx->pkt.send_inv.inval_stag = cpu_to_be32(wqe->sqe.rkey); in siw_qp_prepare_tx()
195 c_tx->pkt.rwrite.sink_stag = htonl(wqe->sqe.rkey); in siw_qp_prepare_tx()
[all …]
/linux/include/net/libeth/
H A Dtx.h124 static inline void libeth_tx_complete(struct libeth_sqe *sqe, in libeth_tx_complete() argument
127 switch (sqe->type) { in libeth_tx_complete()
133 dma_unmap_page(cp->dev, dma_unmap_addr(sqe, dma), in libeth_tx_complete()
134 dma_unmap_len(sqe, len), DMA_TO_DEVICE); in libeth_tx_complete()
140 switch (sqe->type) { in libeth_tx_complete()
142 cp->ss->packets += sqe->packets; in libeth_tx_complete()
143 cp->ss->bytes += sqe->bytes; in libeth_tx_complete()
145 napi_consume_skb(sqe->skb, cp->napi); in libeth_tx_complete()
148 kfree(sqe->raw); in libeth_tx_complete()
154 sqe->type = LIBETH_SQE_EMPTY; in libeth_tx_complete()
[all …]
H A Dxdp.h684 #define libeth_xdp_tx_fill_stats(sqe, desc, sinfo) \ argument
685 __libeth_xdp_tx_fill_stats(sqe, desc, sinfo, __UNIQUE_ID(sqe_), \
688 #define __libeth_xdp_tx_fill_stats(sqe, desc, sinfo, ue, ud, us) do { \ argument
691 struct libeth_sqe *ue = (sqe); \
720 struct libeth_sqe *sqe; in libeth_xdp_tx_fill_buf() local
746 sqe = &sq->sqes[i]; in libeth_xdp_tx_fill_buf()
747 sqe->type = LIBETH_SQE_XDP_TX; in libeth_xdp_tx_fill_buf()
748 sqe->sinfo = sinfo; in libeth_xdp_tx_fill_buf()
749 libeth_xdp_tx_fill_stats(sqe, &desc, sinfo); in libeth_xdp_tx_fill_buf()
991 struct libeth_sqe *sqe; in libeth_xdp_xmit_fill_buf() local
[all …]
/linux/tools/include/io_uring/
H A Dmini_liburing.h259 static inline void io_uring_prep_cmd(struct io_uring_sqe *sqe, int op, in io_uring_prep_cmd() argument
265 memset(sqe, 0, sizeof(*sqe)); in io_uring_prep_cmd()
266 sqe->opcode = (__u8)IORING_OP_URING_CMD; in io_uring_prep_cmd()
267 sqe->fd = sockfd; in io_uring_prep_cmd()
268 sqe->cmd_op = op; in io_uring_prep_cmd()
270 sqe->level = level; in io_uring_prep_cmd()
271 sqe->optname = optname; in io_uring_prep_cmd()
272 sqe->optval = (unsigned long long)optval; in io_uring_prep_cmd()
273 sqe->optlen = optlen; in io_uring_prep_cmd()
287 static inline void io_uring_prep_send(struct io_uring_sqe *sqe, int sockfd, in io_uring_prep_send() argument
[all …]
/linux/drivers/net/ethernet/qlogic/qed/
H A Dqed_nvmetcp_fw_funcs.c68 if (!task_params->sqe) in init_sqe()
71 memset(task_params->sqe, 0, sizeof(*task_params->sqe)); in init_sqe()
72 task_params->sqe->task_id = cpu_to_le16(task_params->itid); in init_sqe()
79 SET_FIELD(task_params->sqe->contlen_cdbsize, in init_sqe()
81 SET_FIELD(task_params->sqe->flags, NVMETCP_WQE_WQE_TYPE, in init_sqe()
94 SET_FIELD(task_params->sqe->flags, NVMETCP_WQE_NUM_SGES, num_sges); in init_sqe()
95 SET_FIELD(task_params->sqe->contlen_cdbsize, NVMETCP_WQE_CONT_LEN, buf_size); in init_sqe()
99 SET_FIELD(task_params->sqe->flags, NVMETCP_WQE_WQE_TYPE, in init_sqe()
101 SET_FIELD(task_params->sqe->contlen_cdbsize, in init_sqe()
106 SET_FIELD(task_params->sqe->flags, NVMETCP_WQE_WQE_TYPE, in init_sqe()
[all …]
/linux/drivers/net/ethernet/intel/libeth/
H A Dtx.c24 void libeth_tx_complete_any(struct libeth_sqe *sqe, struct libeth_cq_pp *cp) in libeth_tx_complete_any() argument
26 if (sqe->type >= __LIBETH_SQE_XDP_START) in libeth_tx_complete_any()
27 __libeth_xdp_complete_tx(sqe, cp, static_call(bulk), in libeth_tx_complete_any()
30 libeth_tx_complete(sqe, cp); in libeth_tx_complete_any()
/linux/include/trace/events/
H A Dio_uring.h492 TP_PROTO(const struct io_uring_sqe *sqe, struct io_kiocb *req, int error),
494 TP_ARGS(sqe, req, error),
514 __string( op_str, io_uring_get_opcode(sqe->opcode) )
520 __entry->user_data = sqe->user_data;
521 __entry->opcode = sqe->opcode;
522 __entry->flags = sqe->flags;
523 __entry->ioprio = sqe->ioprio;
524 __entry->off = sqe->off;
525 __entry->addr = sqe->addr;
526 __entry->len = sqe->len;
[all …]
/linux/drivers/scsi/qedf/
H A Ddrv_fcoe_fw_funcs.c13 memset(task_params->sqe, 0, sizeof(*(task_params->sqe))); in init_common_sqe()
14 SET_FIELD(task_params->sqe->flags, FCOE_WQE_REQ_TYPE, in init_common_sqe()
16 task_params->sqe->task_id = task_params->itid; in init_common_sqe()
167 task_params->sqe->additional_info_union.burst_length = in init_initiator_midpath_unsolicited_fcoe_task()
169 SET_FIELD(task_params->sqe->flags, in init_initiator_midpath_unsolicited_fcoe_task()
171 SET_FIELD(task_params->sqe->flags, FCOE_WQE_SGL_MODE, in init_initiator_midpath_unsolicited_fcoe_task()
193 task_params->sqe->additional_info_union.seq_rec_updated_offset = in init_initiator_sequence_recovery_fcoe_task()

1234