@@ -2436,9 +2436,9 @@ static struct ublk_device *ublk_get_device_from_id(int idx)
2436
2436
return ub ;
2437
2437
}
2438
2438
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 )
2440
2441
{
2441
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
2442
2442
const struct ublk_param_basic * p = & ub -> params .basic ;
2443
2443
int ublksrv_pid = (int )header -> data [0 ];
2444
2444
struct queue_limits lim = {
@@ -2557,9 +2557,8 @@ static int ublk_ctrl_start_dev(struct ublk_device *ub, struct io_uring_cmd *cmd)
2557
2557
}
2558
2558
2559
2559
static int ublk_ctrl_get_queue_affinity (struct ublk_device * ub ,
2560
- struct io_uring_cmd * cmd )
2560
+ const struct ublksrv_ctrl_cmd * header )
2561
2561
{
2562
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
2563
2562
void __user * argp = (void __user * )(unsigned long )header -> addr ;
2564
2563
cpumask_var_t cpumask ;
2565
2564
unsigned long queue ;
@@ -2608,9 +2607,8 @@ static inline void ublk_dump_dev_info(struct ublksrv_ctrl_dev_info *info)
2608
2607
info -> nr_hw_queues , info -> queue_depth );
2609
2608
}
2610
2609
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 )
2612
2611
{
2613
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
2614
2612
void __user * argp = (void __user * )(unsigned long )header -> addr ;
2615
2613
struct ublksrv_ctrl_dev_info info ;
2616
2614
struct ublk_device * ub ;
@@ -2835,9 +2833,8 @@ static int ublk_ctrl_stop_dev(struct ublk_device *ub)
2835
2833
}
2836
2834
2837
2835
static int ublk_ctrl_get_dev_info (struct ublk_device * ub ,
2838
- struct io_uring_cmd * cmd )
2836
+ const struct ublksrv_ctrl_cmd * header )
2839
2837
{
2840
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
2841
2838
void __user * argp = (void __user * )(unsigned long )header -> addr ;
2842
2839
2843
2840
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)
2866
2863
}
2867
2864
2868
2865
static int ublk_ctrl_get_params (struct ublk_device * ub ,
2869
- struct io_uring_cmd * cmd )
2866
+ const struct ublksrv_ctrl_cmd * header )
2870
2867
{
2871
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
2872
2868
void __user * argp = (void __user * )(unsigned long )header -> addr ;
2873
2869
struct ublk_params_header ph ;
2874
2870
int ret ;
@@ -2897,9 +2893,8 @@ static int ublk_ctrl_get_params(struct ublk_device *ub,
2897
2893
}
2898
2894
2899
2895
static int ublk_ctrl_set_params (struct ublk_device * ub ,
2900
- struct io_uring_cmd * cmd )
2896
+ const struct ublksrv_ctrl_cmd * header )
2901
2897
{
2902
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
2903
2898
void __user * argp = (void __user * )(unsigned long )header -> addr ;
2904
2899
struct ublk_params_header ph ;
2905
2900
int ret = - EFAULT ;
@@ -2963,9 +2958,8 @@ static void ublk_queue_reinit(struct ublk_device *ub, struct ublk_queue *ubq)
2963
2958
}
2964
2959
2965
2960
static int ublk_ctrl_start_recovery (struct ublk_device * ub ,
2966
- struct io_uring_cmd * cmd )
2961
+ const struct ublksrv_ctrl_cmd * header )
2967
2962
{
2968
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
2969
2963
int ret = - EINVAL ;
2970
2964
int i ;
2971
2965
@@ -3011,9 +3005,8 @@ static int ublk_ctrl_start_recovery(struct ublk_device *ub,
3011
3005
}
3012
3006
3013
3007
static int ublk_ctrl_end_recovery (struct ublk_device * ub ,
3014
- struct io_uring_cmd * cmd )
3008
+ const struct ublksrv_ctrl_cmd * header )
3015
3009
{
3016
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
3017
3010
int ublksrv_pid = (int )header -> data [0 ];
3018
3011
int ret = - EINVAL ;
3019
3012
int i ;
@@ -3060,9 +3053,8 @@ static int ublk_ctrl_end_recovery(struct ublk_device *ub,
3060
3053
return ret ;
3061
3054
}
3062
3055
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 )
3064
3057
{
3065
- const struct ublksrv_ctrl_cmd * header = io_uring_sqe_cmd (cmd -> sqe );
3066
3058
void __user * argp = (void __user * )(unsigned long )header -> addr ;
3067
3059
u64 features = UBLK_F_ALL ;
3068
3060
@@ -3201,7 +3193,7 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
3201
3193
goto out ;
3202
3194
3203
3195
if (cmd_op == UBLK_U_CMD_GET_FEATURES ) {
3204
- ret = ublk_ctrl_get_features (cmd );
3196
+ ret = ublk_ctrl_get_features (header );
3205
3197
goto out ;
3206
3198
}
3207
3199
@@ -3218,17 +3210,17 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
3218
3210
3219
3211
switch (_IOC_NR (cmd_op )) {
3220
3212
case UBLK_CMD_START_DEV :
3221
- ret = ublk_ctrl_start_dev (ub , cmd );
3213
+ ret = ublk_ctrl_start_dev (ub , header );
3222
3214
break ;
3223
3215
case UBLK_CMD_STOP_DEV :
3224
3216
ret = ublk_ctrl_stop_dev (ub );
3225
3217
break ;
3226
3218
case UBLK_CMD_GET_DEV_INFO :
3227
3219
case UBLK_CMD_GET_DEV_INFO2 :
3228
- ret = ublk_ctrl_get_dev_info (ub , cmd );
3220
+ ret = ublk_ctrl_get_dev_info (ub , header );
3229
3221
break ;
3230
3222
case UBLK_CMD_ADD_DEV :
3231
- ret = ublk_ctrl_add_dev (cmd );
3223
+ ret = ublk_ctrl_add_dev (header );
3232
3224
break ;
3233
3225
case UBLK_CMD_DEL_DEV :
3234
3226
ret = ublk_ctrl_del_dev (& ub , true);
@@ -3237,19 +3229,19 @@ static int ublk_ctrl_uring_cmd(struct io_uring_cmd *cmd,
3237
3229
ret = ublk_ctrl_del_dev (& ub , false);
3238
3230
break ;
3239
3231
case UBLK_CMD_GET_QUEUE_AFFINITY :
3240
- ret = ublk_ctrl_get_queue_affinity (ub , cmd );
3232
+ ret = ublk_ctrl_get_queue_affinity (ub , header );
3241
3233
break ;
3242
3234
case UBLK_CMD_GET_PARAMS :
3243
- ret = ublk_ctrl_get_params (ub , cmd );
3235
+ ret = ublk_ctrl_get_params (ub , header );
3244
3236
break ;
3245
3237
case UBLK_CMD_SET_PARAMS :
3246
- ret = ublk_ctrl_set_params (ub , cmd );
3238
+ ret = ublk_ctrl_set_params (ub , header );
3247
3239
break ;
3248
3240
case UBLK_CMD_START_USER_RECOVERY :
3249
- ret = ublk_ctrl_start_recovery (ub , cmd );
3241
+ ret = ublk_ctrl_start_recovery (ub , header );
3250
3242
break ;
3251
3243
case UBLK_CMD_END_USER_RECOVERY :
3252
- ret = ublk_ctrl_end_recovery (ub , cmd );
3244
+ ret = ublk_ctrl_end_recovery (ub , header );
3253
3245
break ;
3254
3246
default :
3255
3247
ret = - EOPNOTSUPP ;
0 commit comments