diff --git a/src/util/virfile.c b/src/util/virfile.c index 20260a2e5811e7eb7b9a5575c1eca5c3c635fab9..7b92c8767c6103ba1edabfe39e6ed64bf3850051 100644 --- a/src/util/virfile.c +++ b/src/util/virfile.c @@ -905,7 +905,7 @@ virFileNBDLoadDriver(void) } else { g_autofree char *errbuf = NULL; - if ((errbuf = virKModLoad(NBD_DRIVER, true))) { + if ((errbuf = virKModLoad(NBD_DRIVER))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to load nbd module")); return false; diff --git a/src/util/virkmod.c b/src/util/virkmod.c index 12cb5920e85ec2c58be299d635c777d7ed7e6609..982df3d91b0ae7e4108c553cc8f0d2eb5f3bff31 100644 --- a/src/util/virkmod.c +++ b/src/util/virkmod.c @@ -30,9 +30,7 @@ doModprobe(const char *opts, const char *module, char **outbuf, char **errbuf) { g_autoptr(virCommand) cmd = NULL; - cmd = virCommandNew(MODPROBE); - if (opts) - virCommandAddArg(cmd, opts); + cmd = virCommandNewArgList(MODPROBE, opts, NULL); if (module) virCommandAddArg(cmd, module); if (outbuf) @@ -83,7 +81,6 @@ virKModConfig(void) /** * virKModLoad: * @module: Name of the module to load - * @useBlacklist: True if honoring blacklist * * Attempts to load a kernel module * @@ -92,11 +89,11 @@ virKModConfig(void) * by the caller */ char * -virKModLoad(const char *module, bool useBlacklist) +virKModLoad(const char *module) { char *errbuf = NULL; - if (doModprobe(useBlacklist ? "-b" : NULL, module, NULL, &errbuf) < 0) + if (doModprobe("-b", module, NULL, &errbuf) < 0) return errbuf; VIR_FREE(errbuf); diff --git a/src/util/virkmod.h b/src/util/virkmod.h index f05cf83cf681886e69ef011b9ca9f39a24a4065e..605da74416521c83e81919a8a0e0926467d1132c 100644 --- a/src/util/virkmod.h +++ b/src/util/virkmod.h @@ -24,7 +24,7 @@ #include "internal.h" char *virKModConfig(void); -char *virKModLoad(const char *, bool) +char *virKModLoad(const char *) ATTRIBUTE_NONNULL(1); char *virKModUnload(const char *) ATTRIBUTE_NONNULL(1); diff --git a/src/util/virpci.c b/src/util/virpci.c index 786b1393e69613ff59f06aa2ccfa3d27f7b37bd9..24de69c75ee478efe92f5e3848efce85a68a8377 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -1013,7 +1013,7 @@ virPCIProbeStubDriver(virPCIStubDriver driver) if (!probed) { g_autofree char *errbuf = NULL; probed = true; - if ((errbuf = virKModLoad(drvname, true))) { + if ((errbuf = virKModLoad(drvname))) { VIR_WARN("failed to load driver %s: %s", drvname, errbuf); goto cleanup; } diff --git a/tests/virkmodtest.c b/tests/virkmodtest.c index e013f8f3b6c92ec8b09061cc8c88ceeb53759ff9..2906ad992ebf1852d7d4588d819e63e4ecb2fadd 100644 --- a/tests/virkmodtest.c +++ b/tests/virkmodtest.c @@ -27,11 +27,7 @@ # include "virkmod.h" # include "virstring.h" -struct testInfo { - const char *module; - const char *exp_cmd; - bool useBlacklist; -}; +# define MODNAME "vfio-pci" # define VIR_FROM_THIS VIR_FROM_NONE @@ -87,24 +83,21 @@ checkOutput(virBufferPtr buf, const char *exp_cmd) static int -testKModLoad(const void *args) +testKModLoad(const void *args G_GNUC_UNUSED) { int ret = -1; char *errbuf = NULL; - const struct testInfo *info = args; - const char *module = info->module; - bool useBlacklist = info->useBlacklist; virBuffer buf = VIR_BUFFER_INITIALIZER; virCommandSetDryRun(&buf, NULL, NULL); - errbuf = virKModLoad(module, useBlacklist); + errbuf = virKModLoad(MODNAME); if (errbuf) { fprintf(stderr, "Failed to load, error: %s\n", errbuf); goto cleanup; } - if (checkOutput(&buf, info->exp_cmd) < 0) + if (checkOutput(&buf, MODPROBE " -b " MODNAME "\n") < 0) goto cleanup; ret = 0; @@ -117,23 +110,21 @@ testKModLoad(const void *args) static int -testKModUnload(const void *args) +testKModUnload(const void *args G_GNUC_UNUSED) { int ret = -1; char *errbuf = NULL; - const struct testInfo *info = args; - const char *module = info->module; virBuffer buf = VIR_BUFFER_INITIALIZER; virCommandSetDryRun(&buf, NULL, NULL); - errbuf = virKModUnload(module); + errbuf = virKModUnload(MODNAME); if (errbuf) { fprintf(stderr, "Failed to unload, error: %s\n", errbuf); goto cleanup; } - if (checkOutput(&buf, info->exp_cmd) < 0) + if (checkOutput(&buf, RMMOD " " MODNAME "\n") < 0) goto cleanup; ret = 0; @@ -152,23 +143,10 @@ mymain(void) if (virTestRun("config", testKModConfig, NULL) < 0) ret = -1; - - /* Although we cannot run the command on the host, we can compare - * the output of the created command against what we'd expect to be - * created. So let's at least do that. - */ -# define DO_TEST(_name, _cb, _blkflag, _exp_cmd) \ - do { \ - struct testInfo data = {.module = "vfio-pci", \ - .exp_cmd = _exp_cmd, \ - .useBlacklist = _blkflag}; \ - if (virTestRun(_name, _cb, &data) < 0) \ - ret = -1; \ - } while (0) - - DO_TEST("load", testKModLoad, false, MODPROBE " vfio-pci\n"); - DO_TEST("unload", testKModUnload, false, RMMOD " vfio-pci\n"); - DO_TEST("blklist", testKModLoad, true, MODPROBE " -b vfio-pci\n"); + if (virTestRun("load", testKModLoad, NULL) < 0) + ret = -1; + if (virTestRun("unload", testKModUnload, NULL) < 0) + ret = -1; return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;