Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v255 batch #435

Merged
merged 54 commits into from
Aug 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
9f7de0e
man/systemd-detect-virt: fix row spanning for VM header
berrange Aug 2, 2024
7d3764d
basic/log: do not treat all negative errnos as synthetic
YHNdnzj Jul 24, 2024
594383a
logind-dbus: check auth. for all inhibitor operations
dtardon Jul 25, 2024
1ef7c59
sd-event: do not assert on invalid signal
dtardon Jul 25, 2024
344e911
sd-event: change error code -EINVAL -> -EIO
yuwata Aug 4, 2024
41fa304
resize-fs: Put minimal ext4 size in the same ballpark as the other fi…
DaanDeMeyer Jul 25, 2024
e08aecf
kernel-install: remove depmod generated file modules.weakdep
jtornosm Jul 26, 2024
be17084
man: improve ManagerEnvironment documentation
CyberShadow Jul 27, 2024
954ff8b
man: clarify systemd-path variable source
CyberShadow Jul 27, 2024
4296055
man: network: move note about L3MasterDevice to the correct section
NickCao Jul 28, 2024
81677de
kernel-install: Only read cmdline from /proc/cmdline when not in cont…
DaanDeMeyer Jul 29, 2024
57488a3
kernel-install: Try some more initrd variants in 90-loaderentry.install
DaanDeMeyer Jul 29, 2024
e427af0
cgroup-util: Ignore kernel threads in cg_kill_items()
DaanDeMeyer Jul 30, 2024
a471138
document how TimeoutStartSec= affects notify-reload (#33653)
arianvp Jul 30, 2024
1898a50
network: do not bring down bound interfaces immediately
yuwata Jul 30, 2024
84f428e
Fix detection of TDX confidential VM on Azure platform
berrange Jul 30, 2024
3284851
network: call link_handle_bound_by_list() before trying to reconfigur…
yuwata Jul 30, 2024
4a9b3d9
stub: allocate and zero enough space in legacy x86 handover protocol
bluca Jul 31, 2024
b181c04
efi: fix link to legacy EFI handover protocol
bluca Jul 31, 2024
1c212af
network: request non-NULL SSID when a wlan interface is configured as…
yuwata Jul 30, 2024
0512f1a
test: extend firstboot testing
dbnicholson Jul 31, 2024
9acb5cf
firstboot: create locked and empty root passwords consistently
dbnicholson Jul 30, 2024
463da43
firstboot: handle missing root password entries
dbnicholson Jul 30, 2024
dd3834c
firstboot: fix root params with creds and prompting disabled
dbnicholson Jul 30, 2024
8d11195
execute: Drop log level to unit log level in exec_spawn()
DaanDeMeyer Jul 31, 2024
783a4ce
log: Fix size calculation for number of iovecs
DaanDeMeyer Jul 31, 2024
3f358a8
cgroup-util: Don't try to open pidfd for kernel threads
DaanDeMeyer Jul 31, 2024
4f65b5f
exec-credential: Log if we skip duplicate credential
DaanDeMeyer Jul 31, 2024
df6ea44
socket: fix socket activation of stopped services with pinned FD store
msekletar Jul 30, 2024
4f7113a
import: check overflow
yuwata Aug 1, 2024
03c8f8b
resolved: don't treat conn reset as packet loss
rpigott Aug 1, 2024
3fa4f05
confidential-virt: split caching of CVM detection into separate method
berrange Aug 2, 2024
a5d00a6
confidential-virt: add detection for s390x target
berrange Aug 2, 2024
7d5c794
man/systemd-detect-virt: list known CVM technologies
berrange Aug 2, 2024
eb7e9e3
man: extend explanation for ConfigureWithoutCarrier= in systemd.netwo…
yuwata Aug 2, 2024
55dca85
man/net-naming-scheme: mention that NAMING_BRIDGE_MULTIFUNCTION_SLOT …
yuwata Aug 2, 2024
1e7a9d1
core/execute-serialize: drop extraneous '=' in ip-{in,e}gress seriali…
YHNdnzj Aug 3, 2024
940f68c
core/execute-serialize: use serialize_item_escaped() for external paths
YHNdnzj Aug 3, 2024
fc31464
meson: Use -fstrict-flex-arrays=3
DaanDeMeyer Aug 3, 2024
6e56def
base-filesystem: do not attempt to create a /lib64 -> /usr/lib/<tuple…
bluca Aug 3, 2024
aab035a
resolve: refuse invalid service without type field
yuwata Aug 5, 2024
0fab1a3
journal: comment the default value in journald.conf
yuwata Aug 5, 2024
de9725b
src/pcrlock/pcrlock.c: Handle empty pcrlock.d directories
apatard Jul 8, 2024
5f4bc3e
sysusers: check if requested group name matches user name in queue
enr0n Aug 6, 2024
c4707cc
basic|boot: silence Wunterminated-string-initialization gcc15 warnings
crrodriguez Aug 4, 2024
a9f5a70
meson: enable -Wunterminated-string-initialization
yuwata Aug 7, 2024
98253fd
mkosi: Disable debuginfod
DaanDeMeyer Aug 7, 2024
8df62b8
core/unit: do not use unit path cache in unit_need_daemon_reload()
enr0n Aug 7, 2024
1be65cf
core/exec-invoke: call setpriority() after sched_setattr()
intelfx Aug 7, 2024
7a760f6
docs: Mention the new mount API in the container interface doc
DaanDeMeyer Aug 13, 2024
00338af
mkosi: Disable pagination in gdb
DaanDeMeyer Aug 8, 2024
d88d948
repart: Fix misleading typo in GPT partition flag
Aug 14, 2024
cd8af76
udev: Handle PTP device symlink properly on udev action 'change'
yukariatlas Aug 12, 2024
4ab131c
test: remove temporary directory for test-ukify on success
yuwata Aug 15, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion docs/CONTAINER_INTERFACE.md
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,9 @@ care should be taken to avoid naming conflicts. `systemd` (and in particular
directory: it's used by code outside the container to insert mounts inside
it only, and is mostly an internal vehicle to achieve this. Other container
managers that want to implement similar functionality might consider using
the same directory.
the same directory. Alternatively, the new mount API may be used by the
container manager to establish new mounts in the container without the need
for the `/run/host/incoming/` directory.

2. The `/run/host/inaccessible/` directory may be set up by the container
manager to include six file nodes: `reg`, `dir`, `fifo`, `sock`, `chr`,
Expand Down
2 changes: 1 addition & 1 deletion man/repart.d.xml
Original file line number Diff line number Diff line change
Expand Up @@ -690,7 +690,7 @@
<citerefentry
project='man-pages'><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>

<para>If both bit 50 and 59 are set for a partition (i.e. the partition is marked both read-only and
<para>If both bit 60 and 59 are set for a partition (i.e. the partition is marked both read-only and
marked for file system growing) the latter is typically without effect: the read-only flag takes
precedence in most tools reading these flags, and since growing the file system involves writing to
the partition it is consequently ignored.</para>
Expand Down
46 changes: 45 additions & 1 deletion man/systemd-detect-virt.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@
</thead>
<tbody>
<row>
<entry valign="top" morerows="16">VM</entry>
<entry valign="top" morerows="17">VM</entry>
<entry><varname>qemu</varname></entry>
<entry>QEMU software virtualization, without KVM</entry>
</row>
Expand Down Expand Up @@ -217,6 +217,50 @@
WSL is categorized as a container for practical purposes.
Multiple WSL environments share the same kernel and services
should generally behave like when being run in a container.</para>

<para>When executed with <option>--cvm</option>, instead of
printing the virtualization technology, it will display the
confidential virtual machine technology, if any. The
following technologies are currently identified:</para>

<table>
<title>Known confidential virtualization technologies</title>
<tgroup cols='2' align='left' colsep='1' rowsep='1'>
<colspec colname="id" />
<colspec colname="product" />
<thead>
<row>
<entry>Arch</entry>
<entry>ID</entry>
<entry>Technology</entry>
</row>
</thead>
<tbody>
<row>
<entry valign="top" morerows="3">x86_64</entry>
<entry><varname>sev</varname></entry>
<entry>AMD Secure Encrypted Virtualization</entry>
</row>
<row>
<entry><varname>sev-es</varname></entry>
<entry>AMD Secure Encrypted Virtualization - Encrypted State</entry>
</row>
<row>
<entry><varname>sev-snp</varname></entry>
<entry>AMD Secure Encrypted Virtualization - Secure Nested Paging</entry>
</row>
<row>
<entry><varname>tdx</varname></entry>
<entry>Intel Trust Domain Extensions</entry>
</row>
<row>
<entry>s390x</entry>
<entry><varname>protvirt</varname></entry>
<entry>IBM Protected Virtualization (Secure Execution)</entry>
</row>
</tbody>
</tgroup>
</table>
</refsect1>

<refsect1>
Expand Down
6 changes: 6 additions & 0 deletions man/systemd-path.xml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@
The variables whose name begins with <literal>search-</literal>
do not refer to individual paths, but instead to a list of
colon-separated search paths, in their order of precedence.</para>

<para>Note that paths which depend on environment variables are
computed with <command>systemd-path</command>'s invoked
environment, and not the system or user manager's environment. As
such, the output of <command>systemd-path</command> may not
reflect the behavior of manager processes.</para>
</refsect1>

<refsect1>
Expand Down
8 changes: 5 additions & 3 deletions man/systemd-system.conf.xml
Original file line number Diff line number Diff line change
Expand Up @@ -455,10 +455,12 @@
<term><varname>ManagerEnvironment=</varname></term>

<listitem><para>Takes the same arguments as <varname>DefaultEnvironment=</varname>, see above. Sets
environment variables just for the manager process itself. In contrast to user managers, these variables
are not inherited by processes spawned by the system manager, use <varname>DefaultEnvironment=</varname>
environment variables for the manager process itself. These variables are inherited by processes
spawned by user managers, but not the system manager - use <varname>DefaultEnvironment=</varname>
for that. Note that these variables are merged into the existing environment block. In particular, in
case of the system manager, this includes variables set by the kernel based on the kernel command line.</para>
case of the system manager, this includes variables set by the kernel based on the kernel command line.
As with <varname>DefaultEnvironment=</varname>, this environment block is internal, and changes are not
reflected in the manager's <filename>/proc/PID/environ</filename>.</para>

<para>Setting environment variables for the manager process may be useful to modify its behaviour.
See <ulink url="https://systemd.io/ENVIRONMENT">Known Environment Variables</ulink> for a
Expand Down
6 changes: 5 additions & 1 deletion man/systemd.net-naming-scheme.xml
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,8 @@
bridge as that would create naming conflict when there are more child devices on that bridge. Now,
this is relaxed and we will use slot information to generate the name based on it but only if
the PCI device has multiple functions. This is safe because distinct function number is a part of
the device name for multifunction devices.</para>
the device name for multifunction devices. Note, this is reverted in <constant>v255</constant>.
See below.</para>

<xi:include href="version-info.xml" xpointer="v251"/>
</listitem>
Expand Down Expand Up @@ -521,6 +522,9 @@
<listitem><para>Naming was changed for SR-IOV virtual device representors to enable the
change introduced in <constant>v254</constant> by default.</para>

<para>If we detect that a PCI device associated with a slot is a PCI bridge, we no longer set
<varname>ID_NET_NAME_SLOT</varname>, reverting a change that was introduced in v251.</para>

<xi:include href="version-info.xml" xpointer="v255"/>
</listitem>
</varlistentry>
Expand Down
15 changes: 14 additions & 1 deletion man/systemd.network.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1074,6 +1074,18 @@ Table=1234</programlisting></para>
carrier. Defaults to false. If enabled, and the <varname>IgnoreCarrierLoss=</varname> setting
is not explicitly set, then it is enabled as well.</para>

<para>With this enabled, to make the interface enter the <literal>configured</literal> state,
which is required to make <command>systemd-networkd-wait-online</command> work properly for the
interface, all dynamic address configuration mechanisms like <varname>DHCP=</varname> and
<varname>IPv6AcceptRA=</varname> (which is enabled by default in most cases) need to be disabled.
Also, <varname>DuplicateAddressDetection=</varname> (which is enabled by default for IPv4
link-local addresses and all IPv6 addresses) needs to be disabled for all static address
configurations. Otherwise, without carrier, the interface will be stuck in the
<literal>configuring</literal> state, and <command>systemd-networkd-wait-online</command> for the
interface will timeout. Also, it is recommended to set
<varname>RequiredForOnline=no-carrier</varname> to make
<command>systemd-networkd-wait-online</command> work for the interface.</para>

<xi:include href="version-info.xml" xpointer="v235"/>
</listitem>
</varlistentry>
Expand Down Expand Up @@ -1563,7 +1575,8 @@ NFTSet=prefix:netdev:filter:eth_ipv4_prefix</programlisting>
one of predefined names <literal>default</literal>, <literal>main</literal>, and
<literal>local</literal>, and names defined in <varname>RouteTable=</varname> in
<citerefentry><refentrytitle>networkd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
or a number between 1 and 4294967295. Defaults to <literal>main</literal>.</para>
or a number between 1 and 4294967295. Defaults to <literal>main</literal>.
Ignored if <varname>L3MasterDevice=</varname> is true.</para>

<xi:include href="version-info.xml" xpointer="v235"/>
</listitem>
Expand Down
6 changes: 6 additions & 0 deletions man/systemd.service.xml
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,12 @@
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
</para>

<para>Note that the start timeout is also applied to service reloads, regardless if implemented
through <varname>ExecReload=</varname> or via the reload logic enabled via <varname>Type=notify-reload</varname>.
If the reload does not complete within the configured time, the reload will be considered failed and
the service will continue running with the old configuration. This will not affect the running service,
but will be logged and will cause e.g. <command>systemctl reload</command> to fail.</para>

<xi:include href="version-info.xml" xpointer="v188"/></listitem>
</varlistentry>

Expand Down
3 changes: 2 additions & 1 deletion meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,7 @@ possible_common_cc_flags = [
'-Wstrict-aliasing=2',
'-Wstrict-prototypes',
'-Wsuggest-attribute=noreturn',
'-Wunterminated-string-initialization',
'-Wunused-function',
'-Wwrite-strings',
'-Wzero-length-bounds',
Expand All @@ -381,7 +382,7 @@ possible_common_cc_flags = [
'-fno-common',
'-fstack-protector',
'-fstack-protector-strong',
'-fstrict-flex-arrays',
'-fstrict-flex-arrays=3',
'--param=ssp-buffer-size=4',
]

Expand Down
4 changes: 4 additions & 0 deletions mkosi.extra/root/.gdbinit
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# SPDX-License-Identifier: LGPL-2.1-or-later

set debuginfod enabled off
set pagination off
1 change: 1 addition & 0 deletions network/80-wifi-station.network.example
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
[Match]
Type=wlan
WLANInterfaceType=station
SSID=*

[Network]
DHCP=yes
6 changes: 3 additions & 3 deletions rules.d/50-udev-default.rules.in
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ SUBSYSTEM=="pci|usb|platform", IMPORT{builtin}="path_id"

SUBSYSTEM=="net", IMPORT{builtin}="net_driver"

SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK+="ptp_kvm"
SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK+="ptp_hyperv"

ACTION!="add", GOTO="default_end"

SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666"
Expand Down Expand Up @@ -119,7 +122,4 @@ KERNEL=="vhost-net", GROUP="kvm", MODE="{{DEV_KVM_MODE}}", OPTIONS+="static_node

KERNEL=="udmabuf", GROUP="kvm"

SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK+="ptp_kvm"
SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK+="ptp_hyperv"

LABEL="default_end"
10 changes: 9 additions & 1 deletion src/basic/cgroup-util.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ int cg_read_pidref(FILE *f, PidRef *ret, CGroupFlags flags) {
if (pid == 0)
return -EREMOTE;

if (FLAGS_SET(flags, CGROUP_NO_PIDFD)) {
/* We might read kernel thread pids from cgroup.procs for which we cannot create a pidfd so
* catch those and don't try to create a pidfd for them. */
if (FLAGS_SET(flags, CGROUP_NO_PIDFD) || pid_is_kernel_thread(pid) > 0) {
*ret = PIDREF_MAKE_FROM_PID(pid);
return 1;
}
Expand Down Expand Up @@ -348,6 +350,12 @@ static int cg_kill_items(
if (set_get(s, PID_TO_PTR(pidref.pid)) == PID_TO_PTR(pidref.pid))
continue;

/* Ignore kernel threads to mimick the behavior of cgroup.kill. */
if (pidref_is_kernel_thread(&pidref) > 0) {
log_debug("Ignoring kernel thread with pid " PID_FMT " in cgroup '%s'", pidref.pid, path);
continue;
}

if (log_kill)
ret_log_kill = log_kill(&pidref, sig, userdata);

Expand Down
66 changes: 47 additions & 19 deletions src/basic/confidential-virt.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include "confidential-virt-fundamental.h"
#include "confidential-virt.h"
#include "fd-util.h"
#include "fileio.h"
#include "missing_threads.h"
#include "string-table.h"
#include "utf8.h"
Expand Down Expand Up @@ -76,7 +77,7 @@ static uint64_t msr(uint64_t index) {
return ret;
}

static bool detect_hyperv_sev(void) {
static bool detect_hyperv_cvm(uint32_t isoltype) {
uint32_t eax, ebx, ecx, edx, feat;
char sig[13] = {};

Expand All @@ -100,7 +101,7 @@ static bool detect_hyperv_sev(void) {
ebx = ecx = edx = 0;
cpuid(&eax, &ebx, &ecx, &edx);

if ((ebx & CPUID_HYPERV_ISOLATION_TYPE_MASK) == CPUID_HYPERV_ISOLATION_TYPE_SNP)
if ((ebx & CPUID_HYPERV_ISOLATION_TYPE_MASK) == isoltype)
return true;
}

Expand Down Expand Up @@ -133,7 +134,7 @@ static ConfidentialVirtualization detect_sev(void) {
if (!(eax & EAX_SEV)) {
log_debug("No sev in CPUID, trying hyperv CPUID");

if (detect_hyperv_sev())
if (detect_hyperv_cvm(CPUID_HYPERV_ISOLATION_TYPE_SNP))
return CONFIDENTIAL_VIRTUALIZATION_SEV_SNP;

log_debug("No hyperv CPUID");
Expand Down Expand Up @@ -171,6 +172,11 @@ static ConfidentialVirtualization detect_tdx(void) {
if (memcmp(sig, CPUID_SIG_INTEL_TDX, sizeof(sig)) == 0)
return CONFIDENTIAL_VIRTUALIZATION_TDX;

log_debug("No tdx in CPUID, trying hyperv CPUID");

if (detect_hyperv_cvm(CPUID_HYPERV_ISOLATION_TYPE_TDX))
return CONFIDENTIAL_VIRTUALIZATION_TDX;

return CONFIDENTIAL_VIRTUALIZATION_NONE;
}

Expand All @@ -189,40 +195,62 @@ static bool detect_hypervisor(void) {
return is_hv;
}

ConfidentialVirtualization detect_confidential_virtualization(void) {
static thread_local ConfidentialVirtualization cached_found = _CONFIDENTIAL_VIRTUALIZATION_INVALID;
static ConfidentialVirtualization detect_confidential_virtualization_impl(void) {
char sig[13] = {};
ConfidentialVirtualization cv = CONFIDENTIAL_VIRTUALIZATION_NONE;

if (cached_found >= 0)
return cached_found;

/* Skip everything on bare metal */
if (detect_hypervisor()) {
cpuid_leaf(0, sig, true);

if (memcmp(sig, CPUID_SIG_AMD, sizeof(sig)) == 0)
cv = detect_sev();
return detect_sev();
else if (memcmp(sig, CPUID_SIG_INTEL, sizeof(sig)) == 0)
cv = detect_tdx();
return detect_tdx();
}

cached_found = cv;
return cv;
return CONFIDENTIAL_VIRTUALIZATION_NONE;
}
#elif defined(__s390x__)
static ConfidentialVirtualization detect_confidential_virtualization_impl(void) {
_cleanup_free_ char *s = NULL;
size_t readsize;
int r;

r = read_full_virtual_file("/sys/firmware/uv/prot_virt_guest", &s, &readsize);
if (r < 0) {
log_debug_errno(r, "Unable to read /sys/firmware/uv/prot_virt_guest: %m");
return CONFIDENTIAL_VIRTUALIZATION_NONE;
}

if (readsize >= 1 && s[0] == '1')
return CONFIDENTIAL_VIRTUALIZATION_PROTVIRT;

return CONFIDENTIAL_VIRTUALIZATION_NONE;
}

#else /* ! x86_64 */
ConfidentialVirtualization detect_confidential_virtualization(void) {
static ConfidentialVirtualization detect_confidential_virtualization_impl(void) {
log_debug("No confidential virtualization detection on this architecture");
return CONFIDENTIAL_VIRTUALIZATION_NONE;
}
#endif /* ! x86_64 */

ConfidentialVirtualization detect_confidential_virtualization(void) {
static thread_local ConfidentialVirtualization cached_found = _CONFIDENTIAL_VIRTUALIZATION_INVALID;

if (cached_found == _CONFIDENTIAL_VIRTUALIZATION_INVALID)
cached_found = detect_confidential_virtualization_impl();

return cached_found;
}

static const char *const confidential_virtualization_table[_CONFIDENTIAL_VIRTUALIZATION_MAX] = {
[CONFIDENTIAL_VIRTUALIZATION_NONE] = "none",
[CONFIDENTIAL_VIRTUALIZATION_SEV] = "sev",
[CONFIDENTIAL_VIRTUALIZATION_SEV_ES] = "sev-es",
[CONFIDENTIAL_VIRTUALIZATION_SEV_SNP] = "sev-snp",
[CONFIDENTIAL_VIRTUALIZATION_TDX] = "tdx",
[CONFIDENTIAL_VIRTUALIZATION_NONE] = "none",
[CONFIDENTIAL_VIRTUALIZATION_SEV] = "sev",
[CONFIDENTIAL_VIRTUALIZATION_SEV_ES] = "sev-es",
[CONFIDENTIAL_VIRTUALIZATION_SEV_SNP] = "sev-snp",
[CONFIDENTIAL_VIRTUALIZATION_TDX] = "tdx",
[CONFIDENTIAL_VIRTUALIZATION_PROTVIRT] = "protvirt",
};

DEFINE_STRING_TABLE_LOOKUP(confidential_virtualization, ConfidentialVirtualization);
1 change: 1 addition & 0 deletions src/basic/confidential-virt.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ typedef enum ConfidentialVirtualization {
CONFIDENTIAL_VIRTUALIZATION_SEV_ES,
CONFIDENTIAL_VIRTUALIZATION_SEV_SNP,
CONFIDENTIAL_VIRTUALIZATION_TDX,
CONFIDENTIAL_VIRTUALIZATION_PROTVIRT,

_CONFIDENTIAL_VIRTUALIZATION_MAX,
_CONFIDENTIAL_VIRTUALIZATION_INVALID = -EINVAL,
Expand Down
Loading
Loading