@@ -377,7 +377,7 @@ static int sev_launch_start(struct kvm *kvm, struct kvm_sev_cmd *argp)
377
377
if (!sev_guest (kvm ))
378
378
return - ENOTTY ;
379
379
380
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data , sizeof (params )))
380
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) , sizeof (params )))
381
381
return - EFAULT ;
382
382
383
383
memset (& start , 0 , sizeof (start ));
@@ -421,7 +421,7 @@ static int sev_launch_start(struct kvm *kvm, struct kvm_sev_cmd *argp)
421
421
422
422
/* return handle to userspace */
423
423
params .handle = start .handle ;
424
- if (copy_to_user (( void __user * )( uintptr_t ) argp -> data , & params , sizeof (params ))) {
424
+ if (copy_to_user (u64_to_user_ptr ( argp -> data ) , & params , sizeof (params ))) {
425
425
sev_unbind_asid (kvm , start .handle );
426
426
ret = - EFAULT ;
427
427
goto e_free_session ;
@@ -560,7 +560,7 @@ static int sev_launch_update_data(struct kvm *kvm, struct kvm_sev_cmd *argp)
560
560
if (!sev_guest (kvm ))
561
561
return - ENOTTY ;
562
562
563
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data , sizeof (params )))
563
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) , sizeof (params )))
564
564
return - EFAULT ;
565
565
566
566
vaddr = params .uaddr ;
@@ -780,7 +780,7 @@ static int sev_launch_update_vmsa(struct kvm *kvm, struct kvm_sev_cmd *argp)
780
780
781
781
static int sev_launch_measure (struct kvm * kvm , struct kvm_sev_cmd * argp )
782
782
{
783
- void __user * measure = ( void __user * )( uintptr_t ) argp -> data ;
783
+ void __user * measure = u64_to_user_ptr ( argp -> data ) ;
784
784
struct kvm_sev_info * sev = & to_kvm_svm (kvm )-> sev_info ;
785
785
struct sev_data_launch_measure data ;
786
786
struct kvm_sev_launch_measure params ;
@@ -800,7 +800,7 @@ static int sev_launch_measure(struct kvm *kvm, struct kvm_sev_cmd *argp)
800
800
if (!params .len )
801
801
goto cmd ;
802
802
803
- p = ( void __user * )( uintptr_t ) params .uaddr ;
803
+ p = u64_to_user_ptr ( params .uaddr ) ;
804
804
if (p ) {
805
805
if (params .len > SEV_FW_BLOB_MAX_SIZE )
806
806
return - EINVAL ;
@@ -873,7 +873,7 @@ static int sev_guest_status(struct kvm *kvm, struct kvm_sev_cmd *argp)
873
873
params .state = data .state ;
874
874
params .handle = data .handle ;
875
875
876
- if (copy_to_user (( void __user * )( uintptr_t ) argp -> data , & params , sizeof (params )))
876
+ if (copy_to_user (u64_to_user_ptr ( argp -> data ) , & params , sizeof (params )))
877
877
ret = - EFAULT ;
878
878
879
879
return ret ;
@@ -1038,7 +1038,7 @@ static int sev_dbg_crypt(struct kvm *kvm, struct kvm_sev_cmd *argp, bool dec)
1038
1038
if (!sev_guest (kvm ))
1039
1039
return - ENOTTY ;
1040
1040
1041
- if (copy_from_user (& debug , ( void __user * )( uintptr_t ) argp -> data , sizeof (debug )))
1041
+ if (copy_from_user (& debug , u64_to_user_ptr ( argp -> data ) , sizeof (debug )))
1042
1042
return - EFAULT ;
1043
1043
1044
1044
if (!debug .len || debug .src_uaddr + debug .len < debug .src_uaddr )
@@ -1122,7 +1122,7 @@ static int sev_launch_secret(struct kvm *kvm, struct kvm_sev_cmd *argp)
1122
1122
if (!sev_guest (kvm ))
1123
1123
return - ENOTTY ;
1124
1124
1125
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data , sizeof (params )))
1125
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) , sizeof (params )))
1126
1126
return - EFAULT ;
1127
1127
1128
1128
pages = sev_pin_memory (kvm , params .guest_uaddr , params .guest_len , & n , 1 );
@@ -1186,7 +1186,7 @@ static int sev_launch_secret(struct kvm *kvm, struct kvm_sev_cmd *argp)
1186
1186
1187
1187
static int sev_get_attestation_report (struct kvm * kvm , struct kvm_sev_cmd * argp )
1188
1188
{
1189
- void __user * report = ( void __user * )( uintptr_t ) argp -> data ;
1189
+ void __user * report = u64_to_user_ptr ( argp -> data ) ;
1190
1190
struct kvm_sev_info * sev = & to_kvm_svm (kvm )-> sev_info ;
1191
1191
struct sev_data_attestation_report data ;
1192
1192
struct kvm_sev_attestation_report params ;
@@ -1197,7 +1197,7 @@ static int sev_get_attestation_report(struct kvm *kvm, struct kvm_sev_cmd *argp)
1197
1197
if (!sev_guest (kvm ))
1198
1198
return - ENOTTY ;
1199
1199
1200
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data , sizeof (params )))
1200
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) , sizeof (params )))
1201
1201
return - EFAULT ;
1202
1202
1203
1203
memset (& data , 0 , sizeof (data ));
@@ -1206,7 +1206,7 @@ static int sev_get_attestation_report(struct kvm *kvm, struct kvm_sev_cmd *argp)
1206
1206
if (!params .len )
1207
1207
goto cmd ;
1208
1208
1209
- p = ( void __user * )( uintptr_t ) params .uaddr ;
1209
+ p = u64_to_user_ptr ( params .uaddr ) ;
1210
1210
if (p ) {
1211
1211
if (params .len > SEV_FW_BLOB_MAX_SIZE )
1212
1212
return - EINVAL ;
@@ -1259,7 +1259,7 @@ __sev_send_start_query_session_length(struct kvm *kvm, struct kvm_sev_cmd *argp,
1259
1259
ret = sev_issue_cmd (kvm , SEV_CMD_SEND_START , & data , & argp -> error );
1260
1260
1261
1261
params -> session_len = data .session_len ;
1262
- if (copy_to_user (( void __user * )( uintptr_t ) argp -> data , params ,
1262
+ if (copy_to_user (u64_to_user_ptr ( argp -> data ) , params ,
1263
1263
sizeof (struct kvm_sev_send_start )))
1264
1264
ret = - EFAULT ;
1265
1265
@@ -1278,7 +1278,7 @@ static int sev_send_start(struct kvm *kvm, struct kvm_sev_cmd *argp)
1278
1278
if (!sev_guest (kvm ))
1279
1279
return - ENOTTY ;
1280
1280
1281
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data ,
1281
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) ,
1282
1282
sizeof (struct kvm_sev_send_start )))
1283
1283
return - EFAULT ;
1284
1284
@@ -1333,15 +1333,15 @@ static int sev_send_start(struct kvm *kvm, struct kvm_sev_cmd *argp)
1333
1333
1334
1334
ret = sev_issue_cmd (kvm , SEV_CMD_SEND_START , & data , & argp -> error );
1335
1335
1336
- if (!ret && copy_to_user (( void __user * )( uintptr_t ) params .session_uaddr ,
1336
+ if (!ret && copy_to_user (u64_to_user_ptr ( params .session_uaddr ) ,
1337
1337
session_data , params .session_len )) {
1338
1338
ret = - EFAULT ;
1339
1339
goto e_free_amd_cert ;
1340
1340
}
1341
1341
1342
1342
params .policy = data .policy ;
1343
1343
params .session_len = data .session_len ;
1344
- if (copy_to_user (( void __user * )( uintptr_t ) argp -> data , & params ,
1344
+ if (copy_to_user (u64_to_user_ptr ( argp -> data ) , & params ,
1345
1345
sizeof (struct kvm_sev_send_start )))
1346
1346
ret = - EFAULT ;
1347
1347
@@ -1372,7 +1372,7 @@ __sev_send_update_data_query_lengths(struct kvm *kvm, struct kvm_sev_cmd *argp,
1372
1372
params -> hdr_len = data .hdr_len ;
1373
1373
params -> trans_len = data .trans_len ;
1374
1374
1375
- if (copy_to_user (( void __user * )( uintptr_t ) argp -> data , params ,
1375
+ if (copy_to_user (u64_to_user_ptr ( argp -> data ) , params ,
1376
1376
sizeof (struct kvm_sev_send_update_data )))
1377
1377
ret = - EFAULT ;
1378
1378
@@ -1392,7 +1392,7 @@ static int sev_send_update_data(struct kvm *kvm, struct kvm_sev_cmd *argp)
1392
1392
if (!sev_guest (kvm ))
1393
1393
return - ENOTTY ;
1394
1394
1395
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data ,
1395
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) ,
1396
1396
sizeof (struct kvm_sev_send_update_data )))
1397
1397
return - EFAULT ;
1398
1398
@@ -1443,14 +1443,14 @@ static int sev_send_update_data(struct kvm *kvm, struct kvm_sev_cmd *argp)
1443
1443
goto e_free_trans_data ;
1444
1444
1445
1445
/* copy transport buffer to user space */
1446
- if (copy_to_user (( void __user * )( uintptr_t ) params .trans_uaddr ,
1446
+ if (copy_to_user (u64_to_user_ptr ( params .trans_uaddr ) ,
1447
1447
trans_data , params .trans_len )) {
1448
1448
ret = - EFAULT ;
1449
1449
goto e_free_trans_data ;
1450
1450
}
1451
1451
1452
1452
/* Copy packet header to userspace. */
1453
- if (copy_to_user (( void __user * )( uintptr_t ) params .hdr_uaddr , hdr ,
1453
+ if (copy_to_user (u64_to_user_ptr ( params .hdr_uaddr ) , hdr ,
1454
1454
params .hdr_len ))
1455
1455
ret = - EFAULT ;
1456
1456
@@ -1502,7 +1502,7 @@ static int sev_receive_start(struct kvm *kvm, struct kvm_sev_cmd *argp)
1502
1502
return - ENOTTY ;
1503
1503
1504
1504
/* Get parameter from the userspace */
1505
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data ,
1505
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) ,
1506
1506
sizeof (struct kvm_sev_receive_start )))
1507
1507
return - EFAULT ;
1508
1508
@@ -1544,7 +1544,7 @@ static int sev_receive_start(struct kvm *kvm, struct kvm_sev_cmd *argp)
1544
1544
}
1545
1545
1546
1546
params .handle = start .handle ;
1547
- if (copy_to_user (( void __user * )( uintptr_t ) argp -> data ,
1547
+ if (copy_to_user (u64_to_user_ptr ( argp -> data ) ,
1548
1548
& params , sizeof (struct kvm_sev_receive_start ))) {
1549
1549
ret = - EFAULT ;
1550
1550
sev_unbind_asid (kvm , start .handle );
@@ -1575,7 +1575,7 @@ static int sev_receive_update_data(struct kvm *kvm, struct kvm_sev_cmd *argp)
1575
1575
if (!sev_guest (kvm ))
1576
1576
return - EINVAL ;
1577
1577
1578
- if (copy_from_user (& params , ( void __user * )( uintptr_t ) argp -> data ,
1578
+ if (copy_from_user (& params , u64_to_user_ptr ( argp -> data ) ,
1579
1579
sizeof (struct kvm_sev_receive_update_data )))
1580
1580
return - EFAULT ;
1581
1581
0 commit comments