@@ -291,45 +291,45 @@ static int dec_payload(struct snp_guest_dev *snp_dev, struct snp_guest_msg *msg,
291
291
static int verify_and_dec_payload (struct snp_guest_dev * snp_dev , void * payload , u32 sz )
292
292
{
293
293
struct snp_guest_crypto * crypto = snp_dev -> crypto ;
294
- struct snp_guest_msg * resp = & snp_dev -> secret_response ;
295
- struct snp_guest_msg * req = & snp_dev -> secret_request ;
296
- struct snp_guest_msg_hdr * req_hdr = & req -> hdr ;
297
- struct snp_guest_msg_hdr * resp_hdr = & resp -> hdr ;
294
+ struct snp_guest_msg * resp_msg = & snp_dev -> secret_response ;
295
+ struct snp_guest_msg * req_msg = & snp_dev -> secret_request ;
296
+ struct snp_guest_msg_hdr * req_msg_hdr = & req_msg -> hdr ;
297
+ struct snp_guest_msg_hdr * resp_msg_hdr = & resp_msg -> hdr ;
298
298
299
299
pr_debug ("response [seqno %lld type %d version %d sz %d]\n" ,
300
- resp_hdr -> msg_seqno , resp_hdr -> msg_type , resp_hdr -> msg_version ,
301
- resp_hdr -> msg_sz );
300
+ resp_msg_hdr -> msg_seqno , resp_msg_hdr -> msg_type , resp_msg_hdr -> msg_version ,
301
+ resp_msg_hdr -> msg_sz );
302
302
303
303
/* Copy response from shared memory to encrypted memory. */
304
- memcpy (resp , snp_dev -> response , sizeof (* resp ));
304
+ memcpy (resp_msg , snp_dev -> response , sizeof (* resp_msg ));
305
305
306
306
/* Verify that the sequence counter is incremented by 1 */
307
- if (unlikely (resp_hdr -> msg_seqno != (req_hdr -> msg_seqno + 1 )))
307
+ if (unlikely (resp_msg_hdr -> msg_seqno != (req_msg_hdr -> msg_seqno + 1 )))
308
308
return - EBADMSG ;
309
309
310
310
/* Verify response message type and version number. */
311
- if (resp_hdr -> msg_type != (req_hdr -> msg_type + 1 ) ||
312
- resp_hdr -> msg_version != req_hdr -> msg_version )
311
+ if (resp_msg_hdr -> msg_type != (req_msg_hdr -> msg_type + 1 ) ||
312
+ resp_msg_hdr -> msg_version != req_msg_hdr -> msg_version )
313
313
return - EBADMSG ;
314
314
315
315
/*
316
316
* If the message size is greater than our buffer length then return
317
317
* an error.
318
318
*/
319
- if (unlikely ((resp_hdr -> msg_sz + crypto -> a_len ) > sz ))
319
+ if (unlikely ((resp_msg_hdr -> msg_sz + crypto -> a_len ) > sz ))
320
320
return - EBADMSG ;
321
321
322
322
/* Decrypt the payload */
323
- return dec_payload (snp_dev , resp , payload , resp_hdr -> msg_sz + crypto -> a_len );
323
+ return dec_payload (snp_dev , resp_msg , payload , resp_msg_hdr -> msg_sz + crypto -> a_len );
324
324
}
325
325
326
326
static int enc_payload (struct snp_guest_dev * snp_dev , u64 seqno , int version , u8 type ,
327
327
void * payload , size_t sz )
328
328
{
329
- struct snp_guest_msg * req = & snp_dev -> secret_request ;
330
- struct snp_guest_msg_hdr * hdr = & req -> hdr ;
329
+ struct snp_guest_msg * msg = & snp_dev -> secret_request ;
330
+ struct snp_guest_msg_hdr * hdr = & msg -> hdr ;
331
331
332
- memset (req , 0 , sizeof (* req ));
332
+ memset (msg , 0 , sizeof (* msg ));
333
333
334
334
hdr -> algo = SNP_AEAD_AES_256_GCM ;
335
335
hdr -> hdr_version = MSG_HDR_VER ;
@@ -347,7 +347,7 @@ static int enc_payload(struct snp_guest_dev *snp_dev, u64 seqno, int version, u8
347
347
pr_debug ("request [seqno %lld type %d version %d sz %d]\n" ,
348
348
hdr -> msg_seqno , hdr -> msg_type , hdr -> msg_version , hdr -> msg_sz );
349
349
350
- return __enc_payload (snp_dev , req , payload , sz );
350
+ return __enc_payload (snp_dev , msg , payload , sz );
351
351
}
352
352
353
353
static int __handle_guest_request (struct snp_guest_dev * snp_dev , u64 exit_code ,
@@ -496,47 +496,46 @@ struct snp_req_resp {
496
496
static int get_report (struct snp_guest_dev * snp_dev , struct snp_guest_request_ioctl * arg )
497
497
{
498
498
struct snp_guest_crypto * crypto = snp_dev -> crypto ;
499
- struct snp_report_req * req = & snp_dev -> req .report ;
500
- struct snp_report_resp * resp ;
499
+ struct snp_report_req * report_req = & snp_dev -> req .report ;
500
+ struct snp_report_resp * report_resp ;
501
501
int rc , resp_len ;
502
502
503
503
lockdep_assert_held (& snp_cmd_mutex );
504
504
505
505
if (!arg -> req_data || !arg -> resp_data )
506
506
return - EINVAL ;
507
507
508
- if (copy_from_user (req , (void __user * )arg -> req_data , sizeof (* req )))
508
+ if (copy_from_user (report_req , (void __user * )arg -> req_data , sizeof (* report_req )))
509
509
return - EFAULT ;
510
510
511
511
/*
512
512
* The intermediate response buffer is used while decrypting the
513
513
* response payload. Make sure that it has enough space to cover the
514
514
* authtag.
515
515
*/
516
- resp_len = sizeof (resp -> data ) + crypto -> a_len ;
517
- resp = kzalloc (resp_len , GFP_KERNEL_ACCOUNT );
518
- if (!resp )
516
+ resp_len = sizeof (report_resp -> data ) + crypto -> a_len ;
517
+ report_resp = kzalloc (resp_len , GFP_KERNEL_ACCOUNT );
518
+ if (!report_resp )
519
519
return - ENOMEM ;
520
520
521
- rc = handle_guest_request (snp_dev , SVM_VMGEXIT_GUEST_REQUEST , arg ,
522
- SNP_MSG_REPORT_REQ , req , sizeof (* req ), resp -> data ,
523
- resp_len );
521
+ rc = handle_guest_request (snp_dev , SVM_VMGEXIT_GUEST_REQUEST , arg , SNP_MSG_REPORT_REQ ,
522
+ report_req , sizeof (* report_req ), report_resp -> data , resp_len );
524
523
if (rc )
525
524
goto e_free ;
526
525
527
- if (copy_to_user ((void __user * )arg -> resp_data , resp , sizeof (* resp )))
526
+ if (copy_to_user ((void __user * )arg -> resp_data , report_resp , sizeof (* report_resp )))
528
527
rc = - EFAULT ;
529
528
530
529
e_free :
531
- kfree (resp );
530
+ kfree (report_resp );
532
531
return rc ;
533
532
}
534
533
535
534
static int get_derived_key (struct snp_guest_dev * snp_dev , struct snp_guest_request_ioctl * arg )
536
535
{
537
- struct snp_derived_key_req * req = & snp_dev -> req .derived_key ;
536
+ struct snp_derived_key_req * derived_key_req = & snp_dev -> req .derived_key ;
538
537
struct snp_guest_crypto * crypto = snp_dev -> crypto ;
539
- struct snp_derived_key_resp resp = {0 };
538
+ struct snp_derived_key_resp derived_key_resp = {0 };
540
539
int rc , resp_len ;
541
540
/* Response data is 64 bytes and max authsize for GCM is 16 bytes. */
542
541
u8 buf [64 + 16 ];
@@ -551,35 +550,37 @@ static int get_derived_key(struct snp_guest_dev *snp_dev, struct snp_guest_reque
551
550
* response payload. Make sure that it has enough space to cover the
552
551
* authtag.
553
552
*/
554
- resp_len = sizeof (resp .data ) + crypto -> a_len ;
553
+ resp_len = sizeof (derived_key_resp .data ) + crypto -> a_len ;
555
554
if (sizeof (buf ) < resp_len )
556
555
return - ENOMEM ;
557
556
558
- if (copy_from_user (req , (void __user * )arg -> req_data , sizeof (* req )))
557
+ if (copy_from_user (derived_key_req , (void __user * )arg -> req_data ,
558
+ sizeof (* derived_key_req )))
559
559
return - EFAULT ;
560
560
561
- rc = handle_guest_request (snp_dev , SVM_VMGEXIT_GUEST_REQUEST , arg ,
562
- SNP_MSG_KEY_REQ , req , sizeof (* req ), buf , resp_len );
561
+ rc = handle_guest_request (snp_dev , SVM_VMGEXIT_GUEST_REQUEST , arg , SNP_MSG_KEY_REQ ,
562
+ derived_key_req , sizeof (* derived_key_req ), buf , resp_len );
563
563
if (rc )
564
564
return rc ;
565
565
566
- memcpy (resp .data , buf , sizeof (resp .data ));
567
- if (copy_to_user ((void __user * )arg -> resp_data , & resp , sizeof (resp )))
566
+ memcpy (derived_key_resp .data , buf , sizeof (derived_key_resp .data ));
567
+ if (copy_to_user ((void __user * )arg -> resp_data , & derived_key_resp ,
568
+ sizeof (derived_key_resp )))
568
569
rc = - EFAULT ;
569
570
570
571
/* The response buffer contains the sensitive data, explicitly clear it. */
571
572
memzero_explicit (buf , sizeof (buf ));
572
- memzero_explicit (& resp , sizeof (resp ));
573
+ memzero_explicit (& derived_key_resp , sizeof (derived_key_resp ));
573
574
return rc ;
574
575
}
575
576
576
577
static int get_ext_report (struct snp_guest_dev * snp_dev , struct snp_guest_request_ioctl * arg ,
577
578
struct snp_req_resp * io )
578
579
579
580
{
580
- struct snp_ext_report_req * req = & snp_dev -> req .ext_report ;
581
+ struct snp_ext_report_req * report_req = & snp_dev -> req .ext_report ;
581
582
struct snp_guest_crypto * crypto = snp_dev -> crypto ;
582
- struct snp_report_resp * resp ;
583
+ struct snp_report_resp * report_resp ;
583
584
int ret , npages = 0 , resp_len ;
584
585
sockptr_t certs_address ;
585
586
@@ -588,22 +589,22 @@ static int get_ext_report(struct snp_guest_dev *snp_dev, struct snp_guest_reques
588
589
if (sockptr_is_null (io -> req_data ) || sockptr_is_null (io -> resp_data ))
589
590
return - EINVAL ;
590
591
591
- if (copy_from_sockptr (req , io -> req_data , sizeof (* req )))
592
+ if (copy_from_sockptr (report_req , io -> req_data , sizeof (* report_req )))
592
593
return - EFAULT ;
593
594
594
595
/* caller does not want certificate data */
595
- if (!req -> certs_len || !req -> certs_address )
596
+ if (!report_req -> certs_len || !report_req -> certs_address )
596
597
goto cmd ;
597
598
598
- if (req -> certs_len > SEV_FW_BLOB_MAX_SIZE ||
599
- !IS_ALIGNED (req -> certs_len , PAGE_SIZE ))
599
+ if (report_req -> certs_len > SEV_FW_BLOB_MAX_SIZE ||
600
+ !IS_ALIGNED (report_req -> certs_len , PAGE_SIZE ))
600
601
return - EINVAL ;
601
602
602
603
if (sockptr_is_kernel (io -> resp_data )) {
603
- certs_address = KERNEL_SOCKPTR ((void * )req -> certs_address );
604
+ certs_address = KERNEL_SOCKPTR ((void * )report_req -> certs_address );
604
605
} else {
605
- certs_address = USER_SOCKPTR ((void __user * )req -> certs_address );
606
- if (!access_ok (certs_address .user , req -> certs_len ))
606
+ certs_address = USER_SOCKPTR ((void __user * )report_req -> certs_address );
607
+ if (!access_ok (certs_address .user , report_req -> certs_len ))
607
608
return - EFAULT ;
608
609
}
609
610
@@ -613,45 +614,45 @@ static int get_ext_report(struct snp_guest_dev *snp_dev, struct snp_guest_reques
613
614
* the host. If host does not supply any certs in it, then copy
614
615
* zeros to indicate that certificate data was not provided.
615
616
*/
616
- memset (snp_dev -> certs_data , 0 , req -> certs_len );
617
- npages = req -> certs_len >> PAGE_SHIFT ;
617
+ memset (snp_dev -> certs_data , 0 , report_req -> certs_len );
618
+ npages = report_req -> certs_len >> PAGE_SHIFT ;
618
619
cmd :
619
620
/*
620
621
* The intermediate response buffer is used while decrypting the
621
622
* response payload. Make sure that it has enough space to cover the
622
623
* authtag.
623
624
*/
624
- resp_len = sizeof (resp -> data ) + crypto -> a_len ;
625
- resp = kzalloc (resp_len , GFP_KERNEL_ACCOUNT );
626
- if (!resp )
625
+ resp_len = sizeof (report_resp -> data ) + crypto -> a_len ;
626
+ report_resp = kzalloc (resp_len , GFP_KERNEL_ACCOUNT );
627
+ if (!report_resp )
627
628
return - ENOMEM ;
628
629
629
630
snp_dev -> input .data_npages = npages ;
630
- ret = handle_guest_request (snp_dev , SVM_VMGEXIT_EXT_GUEST_REQUEST , arg ,
631
- SNP_MSG_REPORT_REQ , & req -> data ,
632
- sizeof ( req -> data ), resp -> data , resp_len );
631
+ ret = handle_guest_request (snp_dev , SVM_VMGEXIT_EXT_GUEST_REQUEST , arg , SNP_MSG_REPORT_REQ ,
632
+ & report_req -> data , sizeof ( report_req -> data ) ,
633
+ report_resp -> data , resp_len );
633
634
634
635
/* If certs length is invalid then copy the returned length */
635
636
if (arg -> vmm_error == SNP_GUEST_VMM_ERR_INVALID_LEN ) {
636
- req -> certs_len = snp_dev -> input .data_npages << PAGE_SHIFT ;
637
+ report_req -> certs_len = snp_dev -> input .data_npages << PAGE_SHIFT ;
637
638
638
- if (copy_to_sockptr (io -> req_data , req , sizeof (* req )))
639
+ if (copy_to_sockptr (io -> req_data , report_req , sizeof (* report_req )))
639
640
ret = - EFAULT ;
640
641
}
641
642
642
643
if (ret )
643
644
goto e_free ;
644
645
645
- if (npages && copy_to_sockptr (certs_address , snp_dev -> certs_data , req -> certs_len )) {
646
+ if (npages && copy_to_sockptr (certs_address , snp_dev -> certs_data , report_req -> certs_len )) {
646
647
ret = - EFAULT ;
647
648
goto e_free ;
648
649
}
649
650
650
- if (copy_to_sockptr (io -> resp_data , resp , sizeof (* resp )))
651
+ if (copy_to_sockptr (io -> resp_data , report_resp , sizeof (* report_resp )))
651
652
ret = - EFAULT ;
652
653
653
654
e_free :
654
- kfree (resp );
655
+ kfree (report_resp );
655
656
return ret ;
656
657
}
657
658
0 commit comments