Thread (6 messages) 6 messages, 2 authors, 2015-03-07

Re: [PATCH 3/3] tools: add basic versions of insert and remove

From: Lucas De Marchi <hidden>
Date: 2015-03-06 03:23:29

Overall it's nice, but I have some comments on this one. See below

On Thu, Mar 5, 2015 at 1:06 PM, Caio Marcelo de Oliveira Filho
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
diff --git a/testsuite/test-tools.c b/testsuite/test-tools.c
new file mode 100644
index 0000000..66a78a1
--- /dev/null
+++ b/testsuite/test-tools.c
@@ -0,0 +1,54 @@
+#include <errno.h>
+#include <inttypes.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "testsuite.h"
+
+static noreturn int kmod_tool_insert(const struct test *t)
+{
+       const char *progname = ABS_TOP_BUILDDIR "/tools/kmod";
+       const char *const args[] = {
+               progname,
+               "insert", "mod-simple",
+               NULL,
+       };
+
+       test_spawn_prog(progname, args);
+       exit(EXIT_FAILURE);
+}
+DEFINE_TEST(kmod_tool_insert,
+       .description = "check kmod insert",
+       .config = {
+               [TC_UNAME_R] = "4.4.4",
+               [TC_ROOTFS] = TESTSUITE_ROOTFS "test-tools/insert",
+               [TC_INIT_MODULE_RETCODES] = "",
are these and other similar ones  correct? why do you need to set it
to an empty string?

quoted hunk ↗ jump to hunk
diff --git a/tools/insert.c b/tools/insert.c
new file mode 100644
index 0000000..cc5bbc6
--- /dev/null
+++ b/tools/insert.c
@@ -0,0 +1,126 @@
+/*
+ * kmod-insert - insert a module into the kernel.
+ *
+ * Copyright (C) 2011-2013  ProFUSION embedded systems
Add a Copyright line here (and in remove.c as well). These are more
than just copies.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <errno.h>
+#include <getopt.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libkmod/libkmod.h>
+
+#include "kmod.h"
+
+static const char cmdopts_s[] = "h";
+static const struct option cmdopts[] = {
+       {"help", no_argument, 0, 'h'},
+       {NULL, 0, 0, 0}
use empty initializers:  { }
+static int do_insert(int argc, char *argv[])
+{
[ ... ]
+       kmod_list_foreach(l, list) {
+               struct kmod_module *mod = kmod_module_get_module(l);
+
+               err = kmod_module_probe_insert_module(mod, KMOD_PROBE_APPLY_BLACKLIST, NULL, NULL, NULL, NULL);
+               if (err != 0)
+                       ERR("Could not insert '%s': %s\n", kmod_module_get_name(mod), mod_strerror(err));
+
+               kmod_module_unref(mod);
missing 1 unref() in the error path. Just reorder the error check with
the unref() and you'll be fine.
quoted hunk ↗ jump to hunk
diff --git a/tools/remove.c b/tools/remove.c
new file mode 100644
index 0000000..e3c1550
--- /dev/null
+++ b/tools/remove.c
@@ -0,0 +1,149 @@
+/*
+ * kmod-rmmod - remove modules from the kernel.
kmod-remove


thanks.

-- 
Lucas De Marchi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help