@@ -2436,9 +2436,9 @@ static struct ublk_device *ublk_get_device_from_id(int idx)
24362436 return ub ;
24372437}
24382438
2439- static int ublk_ctrl_start_dev (struct ublk_device * ub , struct io_uring_cmd * cmd )
2439+ static int ublk_ctrl_start_dev (struct ublk_device * ub ,
2440+ const struct ublksrv_ctrl_cmd * header )
24402441{
2441- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
24422442 const struct ublk_param_basic * p = & ub -> params .basic ;
24432443 int ublksrv_pid = (int )header -> data [0 ];
24442444 struct queue_limits lim = {
@@ -2557,9 +2557,8 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub, struct io_uring_cmd *cmd)
25572557}
25582558
25592559static int ublk_ctrl_get_queue_affinity (struct ublk_device * ub ,
2560- struct io_uring_cmd * cmd )
2560+ const struct ublksrv_ctrl_cmd * header )
25612561{
2562- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
25632562 void __user * argp = (void __user * )(unsigned long )header -> addr ;
25642563 cpumask_var_t cpumask ;
25652564 unsigned long queue ;
@@ -2608,9 +2607,8 @@ static inline void ublk_dump_dev_info(struct ublksrv_ctrl_dev_info *info)
26082607 info -> nr_hw_queues , info -> queue_depth );
26092608}
26102609
2611- static int ublk_ctrl_add_dev (struct io_uring_cmd * cmd )
2610+ static int ublk_ctrl_add_dev (const struct ublksrv_ctrl_cmd * header )
26122611{
2613- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
26142612 void __user * argp = (void __user * )(unsigned long )header -> addr ;
26152613 struct ublksrv_ctrl_dev_info info ;
26162614 struct ublk_device * ub ;
@@ -2835,9 +2833,8 @@ static int ublk_ctrl_stop_dev(struct ublk_device *ub)
28352833}
28362834
28372835static int ublk_ctrl_get_dev_info (struct ublk_device * ub ,
2838- struct io_uring_cmd * cmd )
2836+ const struct ublksrv_ctrl_cmd * header )
28392837{
2840- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
28412838 void __user * argp = (void __user * )(unsigned long )header -> addr ;
28422839
28432840 if (header -> len < sizeof (struct ublksrv_ctrl_dev_info ) || !header -> addr )
@@ -2866,9 +2863,8 @@ static void ublk_ctrl_fill_params_devt(struct ublk_device *ub)
28662863}
28672864
28682865static int ublk_ctrl_get_params (struct ublk_device * ub ,
2869- struct io_uring_cmd * cmd )
2866+ const struct ublksrv_ctrl_cmd * header )
28702867{
2871- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
28722868 void __user * argp = (void __user * )(unsigned long )header -> addr ;
28732869 struct ublk_params_header ph ;
28742870 int ret ;
@@ -2897,9 +2893,8 @@ static int ublk_ctrl_get_params(struct ublk_device *ub,
28972893}
28982894
28992895static int ublk_ctrl_set_params (struct ublk_device * ub ,
2900- struct io_uring_cmd * cmd )
2896+ const struct ublksrv_ctrl_cmd * header )
29012897{
2902- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
29032898 void __user * argp = (void __user * )(unsigned long )header -> addr ;
29042899 struct ublk_params_header ph ;
29052900 int ret = - EFAULT ;
@@ -2963,9 +2958,8 @@ static void ublk_queue_reinit(struct ublk_device *ub, struct ublk_queue *ubq)
29632958}
29642959
29652960static int ublk_ctrl_start_recovery (struct ublk_device * ub ,
2966- struct io_uring_cmd * cmd )
2961+ const struct ublksrv_ctrl_cmd * header )
29672962{
2968- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
29692963 int ret = - EINVAL ;
29702964 int i ;
29712965
@@ -3011,9 +3005,8 @@ static int ublk_ctrl_start_recovery(struct ublk_device *ub,
30113005}
30123006
30133007static int ublk_ctrl_end_recovery (struct ublk_device * ub ,
3014- struct io_uring_cmd * cmd )
3008+ const struct ublksrv_ctrl_cmd * header )
30153009{
3016- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
30173010 int ublksrv_pid = (int )header -> data [0 ];
30183011 int ret = - EINVAL ;
30193012 int i ;
@@ -3060,9 +3053,8 @@ static int ublk_ctrl_end_recovery(struct ublk_device *ub,
30603053 return ret ;
30613054}
30623055
3063- static int ublk_ctrl_get_features (struct io_uring_cmd * cmd )
3056+ static int ublk_ctrl_get_features (const struct ublksrv_ctrl_cmd * header )
30643057{
3065- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
30663058 void __user * argp = (void __user * )(unsigned long )header -> addr ;
30673059 u64 features = UBLK_F_ALL ;
30683060
@@ -3201,7 +3193,7 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
32013193 goto out ;
32023194
32033195 if (cmd_op == UBLK_U_CMD_GET_FEATURES ) {
3204- ret = ublk_ctrl_get_features (cmd );
3196+ ret = ublk_ctrl_get_features (header );
32053197 goto out ;
32063198 }
32073199
@@ -3218,17 +3210,17 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
32183210
32193211 switch (_IOC_NR (cmd_op )) {
32203212 case UBLK_CMD_START_DEV :
3221- ret = ublk_ctrl_start_dev (ub , cmd );
3213+ ret = ublk_ctrl_start_dev (ub , header );
32223214 break ;
32233215 case UBLK_CMD_STOP_DEV :
32243216 ret = ublk_ctrl_stop_dev (ub );
32253217 break ;
32263218 case UBLK_CMD_GET_DEV_INFO :
32273219 case UBLK_CMD_GET_DEV_INFO2 :
3228- ret = ublk_ctrl_get_dev_info (ub , cmd );
3220+ ret = ublk_ctrl_get_dev_info (ub , header );
32293221 break ;
32303222 case UBLK_CMD_ADD_DEV :
3231- ret = ublk_ctrl_add_dev (cmd );
3223+ ret = ublk_ctrl_add_dev (header );
32323224 break ;
32333225 case UBLK_CMD_DEL_DEV :
32343226 ret = ublk_ctrl_del_dev (& ub , true);
@@ -3237,19 +3229,19 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
32373229 ret = ublk_ctrl_del_dev (& ub , false);
32383230 break ;
32393231 case UBLK_CMD_GET_QUEUE_AFFINITY :
3240- ret = ublk_ctrl_get_queue_affinity (ub , cmd );
3232+ ret = ublk_ctrl_get_queue_affinity (ub , header );
32413233 break ;
32423234 case UBLK_CMD_GET_PARAMS :
3243- ret = ublk_ctrl_get_params (ub , cmd );
3235+ ret = ublk_ctrl_get_params (ub , header );
32443236 break ;
32453237 case UBLK_CMD_SET_PARAMS :
3246- ret = ublk_ctrl_set_params (ub , cmd );
3238+ ret = ublk_ctrl_set_params (ub , header );
32473239 break ;
32483240 case UBLK_CMD_START_USER_RECOVERY :
3249- ret = ublk_ctrl_start_recovery (ub , cmd );
3241+ ret = ublk_ctrl_start_recovery (ub , header );
32503242 break ;
32513243 case UBLK_CMD_END_USER_RECOVERY :
3252- ret = ublk_ctrl_end_recovery (ub , cmd );
3244+ ret = ublk_ctrl_end_recovery (ub , header );
32533245 break ;
32543246 default :
32553247 ret = - EOPNOTSUPP ;
0 commit comments