Skip to content

Commit 02eacf3

Browse files
philmdbonzini
authored andcommitted
target/i386/sev: Remove stubs by using code elision
Only declare sev_enabled() and sev_es_enabled() when CONFIG_SEV is set, to allow the compiler to elide unused code. Remove unnecessary stubs. Signed-off-by: Philippe Mathieu-Daudé <[email protected]> Reviewed-by: Eric Blake <[email protected]> Message-Id: <[email protected]> Signed-off-by: Paolo Bonzini <[email protected]>
1 parent deae846 commit 02eacf3

File tree

4 files changed

+19
-49
lines changed

4 files changed

+19
-49
lines changed

target/i386/cpu.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5764,12 +5764,13 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
57645764
*edx = 0;
57655765
break;
57665766
case 0x8000001F:
5767-
*eax = sev_enabled() ? 0x2 : 0;
5768-
*eax |= sev_es_enabled() ? 0x8 : 0;
5769-
*ebx = sev_get_cbit_position();
5770-
*ebx |= sev_get_reduced_phys_bits() << 6;
5771-
*ecx = 0;
5772-
*edx = 0;
5767+
*eax = *ebx = *ecx = *edx = 0;
5768+
if (sev_enabled()) {
5769+
*eax = 0x2;
5770+
*eax |= sev_es_enabled() ? 0x8 : 0;
5771+
*ebx = sev_get_cbit_position();
5772+
*ebx |= sev_get_reduced_phys_bits() << 6;
5773+
}
57735774
break;
57745775
default:
57755776
/* reserved values: zero */

target/i386/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ i386_ss.add(files(
66
'xsave_helper.c',
77
'cpu-dump.c',
88
))
9-
i386_ss.add(when: 'CONFIG_SEV', if_true: files('host-cpu.c'), if_false: files('sev-stub.c'))
9+
i386_ss.add(when: 'CONFIG_SEV', if_true: files('host-cpu.c'))
1010

1111
# x86 cpu type
1212
i386_ss.add(when: 'CONFIG_KVM', if_true: files('host-cpu.c'))

target/i386/sev-stub.c

Lines changed: 0 additions & 41 deletions
This file was deleted.

target/i386/sev.h

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
#ifndef QEMU_SEV_I386_H
1515
#define QEMU_SEV_I386_H
1616

17+
#ifndef CONFIG_USER_ONLY
18+
#include CONFIG_DEVICES /* CONFIG_SEV */
19+
#endif
20+
1721
#include "exec/confidential-guest-support.h"
1822
#include "qapi/qapi-types-misc-target.h"
1923

@@ -35,8 +39,14 @@ typedef struct SevKernelLoaderContext {
3539
size_t cmdline_size;
3640
} SevKernelLoaderContext;
3741

42+
#ifdef CONFIG_SEV
3843
bool sev_enabled(void);
39-
extern bool sev_es_enabled(void);
44+
bool sev_es_enabled(void);
45+
#else
46+
#define sev_enabled() 0
47+
#define sev_es_enabled() 0
48+
#endif
49+
4050
extern SevInfo *sev_get_info(void);
4151
extern uint32_t sev_get_cbit_position(void);
4252
extern uint32_t sev_get_reduced_phys_bits(void);

0 commit comments

Comments
 (0)