Skip to content

Commit 59e42d8

Browse files
dubekbonzini
authored andcommitted
target/i386/sev: Use local variable for kvm_sev_launch_measure
The struct kvm_sev_launch_measure has a constant and small size, and therefore we can use a regular local variable for it instead of allocating and freeing heap memory for it. Signed-off-by: Dov Murik <[email protected]> Reviewed-by: Dr. David Alan Gilbert <[email protected]> Message-Id: <[email protected]> Signed-off-by: Paolo Bonzini <[email protected]>
1 parent eb8257a commit 59e42d8

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

target/i386/sev.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,7 @@ sev_launch_get_measure(Notifier *notifier, void *unused)
729729
SevGuestState *sev = sev_guest;
730730
int ret, error;
731731
g_autofree guchar *data = NULL;
732-
g_autofree struct kvm_sev_launch_measure *measurement = NULL;
732+
struct kvm_sev_launch_measure measurement = {};
733733

734734
if (!sev_check_state(sev, SEV_STATE_LAUNCH_UPDATE)) {
735735
return;
@@ -743,23 +743,21 @@ sev_launch_get_measure(Notifier *notifier, void *unused)
743743
}
744744
}
745745

746-
measurement = g_new0(struct kvm_sev_launch_measure, 1);
747-
748746
/* query the measurement blob length */
749747
ret = sev_ioctl(sev->sev_fd, KVM_SEV_LAUNCH_MEASURE,
750-
measurement, &error);
751-
if (!measurement->len) {
748+
&measurement, &error);
749+
if (!measurement.len) {
752750
error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
753751
__func__, ret, error, fw_error_to_str(errno));
754752
return;
755753
}
756754

757-
data = g_new0(guchar, measurement->len);
758-
measurement->uaddr = (unsigned long)data;
755+
data = g_new0(guchar, measurement.len);
756+
measurement.uaddr = (unsigned long)data;
759757

760758
/* get the measurement blob */
761759
ret = sev_ioctl(sev->sev_fd, KVM_SEV_LAUNCH_MEASURE,
762-
measurement, &error);
760+
&measurement, &error);
763761
if (ret) {
764762
error_report("%s: LAUNCH_MEASURE ret=%d fw_error=%d '%s'",
765763
__func__, ret, error, fw_error_to_str(errno));
@@ -769,7 +767,7 @@ sev_launch_get_measure(Notifier *notifier, void *unused)
769767
sev_set_guest_state(sev, SEV_STATE_LAUNCH_SECRET);
770768

771769
/* encode the measurement value and emit the event */
772-
sev->measurement = g_base64_encode(data, measurement->len);
770+
sev->measurement = g_base64_encode(data, measurement.len);
773771
trace_kvm_sev_launch_measurement(sev->measurement);
774772
}
775773

0 commit comments

Comments
 (0)