systemd/1033-udev-add-conf-virt-constant-for-confidential-virtual.patch
Lukas Nykryn 79df79b44e systemd-252-43
Resolves: RHEL-50103,RHEL-50651
2024-08-22 10:49:16 +02:00

60 lines
2.3 KiB
Diff

From 586b33b02ddc3375181fc37a14b7eb94d3eba796 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
Date: Mon, 3 Jul 2023 10:24:30 +0100
Subject: [PATCH] udev: add 'conf-virt' constant for confidential
virtualization tech
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Related: https://github.com/systemd/systemd/issues/27604
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 6e2e83b48734e86992cbbdb329c48cc066cf7c96)
Related: RHEL-50651
---
man/udev.xml | 8 ++++++++
src/udev/udev-rules.c | 3 +++
2 files changed, 11 insertions(+)
diff --git a/man/udev.xml b/man/udev.xml
index 5b096c7ef2..a96400e29d 100644
--- a/man/udev.xml
+++ b/man/udev.xml
@@ -279,6 +279,14 @@
for possible values.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term><literal>cvm</literal></term>
+ <listitem>
+ <para>System's confidential virtualization technology. See
+ <citerefentry><refentrytitle>systemd-detect-virt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ for possible values.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
<para>Unknown keys will never match.</para>
</listitem>
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index 9336ce1cd3..3fcbf818d7 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -6,6 +6,7 @@
#include "architecture.h"
#include "conf-files.h"
#include "conf-parser.h"
+#include "confidential-virt.h"
#include "def.h"
#include "device-private.h"
#include "device-util.h"
@@ -1681,6 +1682,8 @@ static int udev_rule_apply_token_to_event(
val = architecture_to_string(uname_architecture());
else if (streq(k, "virt"))
val = virtualization_to_string(detect_virtualization());
+ else if (streq(k, "cvm"))
+ val = confidential_virtualization_to_string(detect_confidential_virtualization());
else
assert_not_reached();
return token_match_string(token, val);