diff options
author | Lennart Poettering <lennart@poettering.net> | 2023-04-18 10:48:54 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-04-18 10:52:04 +0200 |
commit | 0a5d3c0b5bfee68102de6345a3cd5580fbd5da02 (patch) | |
tree | f7a19deffe57e1e7e3258b67206c1145fc64917a /src/core | |
parent | fa505db314ba74c71e5165c8857009ff9e7d4641 (diff) | |
download | systemd-0a5d3c0b5bfee68102de6345a3cd5580fbd5da02.tar.gz |
kmod-setup: bypass heavy virtio-rng check if we are not running in a VM anyway
detect_vm() is cheap, because cached, let's hence do that early before
we get out the big guns and sweep through sysfs.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/kmod-setup.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c index 949b1a5854..adf817800f 100644 --- a/src/core/kmod-setup.c +++ b/src/core/kmod-setup.c @@ -67,6 +67,10 @@ static int has_virtio_rng_recurse_dir_cb( static bool has_virtio_rng(void) { int r; + /* Directory traversal might be slow, hence let's do a cheap check first if it's even worth it */ + if (detect_vm() == VIRTUALIZATION_NONE) + return false; + r = recurse_dir_at( AT_FDCWD, "/sys/devices/pci0000:00", |