From: Daan De Meyer Date: Tue, 18 Apr 2023 08:47:13 +0000 (+0200) Subject: kmod-setup: Introduce match_modalias_recurse_dir_cb() X-Git-Tag: v254-rc1~673^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e1d8f702a2cacc12978bd7c17e22a8c312404cdf;p=thirdparty%2Fsystemd.git kmod-setup: Introduce match_modalias_recurse_dir_cb() Let's make the logic around matching a modalias a bit more generic. --- diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c index adf817800f4..d7abf4b7d8a 100644 --- a/src/core/kmod-setup.c +++ b/src/core/kmod-setup.c @@ -31,7 +31,7 @@ static void systemd_kmod_log( REENABLE_WARNING; } -static int has_virtio_rng_recurse_dir_cb( +static int match_modalias_recurse_dir_cb( RecurseDirEvent event, const char *path, int dir_fd, @@ -41,6 +41,7 @@ static int has_virtio_rng_recurse_dir_cb( void *userdata) { _cleanup_free_ char *alias = NULL; + char **modaliases = ASSERT_PTR(userdata); int r; if (event != RECURSE_DIR_ENTRY) @@ -58,7 +59,7 @@ static int has_virtio_rng_recurse_dir_cb( return RECURSE_DIR_LEAVE_DIRECTORY; } - if (STARTSWITH_SET(alias, "pci:v00001AF4d00001005", "pci:v00001AF4d00001044")) + if (startswith_strv(alias, modaliases)) return 1; return RECURSE_DIR_LEAVE_DIRECTORY; @@ -77,8 +78,8 @@ static bool has_virtio_rng(void) { /* statx_mask= */ 0, /* n_depth_max= */ 2, RECURSE_DIR_ENSURE_TYPE, - has_virtio_rng_recurse_dir_cb, - NULL); + match_modalias_recurse_dir_cb, + STRV_MAKE("pci:v00001AF4d00001005", "pci:v00001AF4d00001044")); if (r < 0) log_debug_errno(r, "Failed to determine whether host has virtio-rng device, ignoring: %m");