803fb7
From 6df5513d294ae368f2a09fb47917e11048347885 Mon Sep 17 00:00:00 2001
803fb7
From: Lennart Poettering <lennart@poettering.net>
803fb7
Date: Wed, 22 Apr 2015 13:50:56 +0200
803fb7
Subject: [PATCH] kmod-setup: load ip_tables kmod at boot
803fb7
803fb7
The module is currently no auto-loadable (and this is unlikely to change
803fb7
anytime soon, given it's API is via getsockopt/setsockopt). It is needed
803fb7
by networkd and nspawn currently.
803fb7
803fb7
Users who really don't like the module to be loaded have the option to
803fb7
blacklist it still, or not compile it at all. But for all others this
803fb7
should make things work out-of-the-box.
803fb7
803fb7
(cherry picked from commit 1d3087978a8ee23107cb64aa55ca97aefe9531e2)
803fb7
803fb7
Cherry-picked from: f801bf8
803fb7
Resolves: #1222517
803fb7
---
803fb7
 src/core/kmod-setup.c | 11 +++++++----
803fb7
 1 file changed, 7 insertions(+), 4 deletions(-)
803fb7
803fb7
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
803fb7
index c0a05b97a..97f3b9b34 100644
803fb7
--- a/src/core/kmod-setup.c
803fb7
+++ b/src/core/kmod-setup.c
803fb7
@@ -63,16 +63,19 @@ int kmod_setup(void) {
803fb7
                 bool (*condition_fn)(void);
803fb7
         } kmod_table[] = {
803fb7
                 /* auto-loading on use doesn't work before udev is up */
803fb7
-                { "autofs4", "/sys/class/misc/autofs", true, NULL                 },
803fb7
+                { "autofs4",   "/sys/class/misc/autofs",    true,  NULL                },
803fb7
 
803fb7
                 /* early configure of ::1 on the loopback device */
803fb7
-                { "ipv6",    "/sys/module/ipv6",       true, NULL                 },
803fb7
+                { "ipv6",      "/sys/module/ipv6",          true,  NULL                },
803fb7
 
803fb7
                 /* this should never be a module */
803fb7
-                { "unix",    "/proc/net/unix",         true, NULL                 },
803fb7
+                { "unix",      "/proc/net/unix",            true,  NULL                },
803fb7
 
803fb7
                 /* IPC is needed before we bring up any other services */
803fb7
-                { "kdbus",   "/sys/fs/kdbus",          false, cmdline_check_kdbus },
803fb7
+                { "kdbus",     "/sys/fs/kdbus",             false, cmdline_check_kdbus },
803fb7
+
803fb7
+                /* netfilter is needed by networkd, nspawn among others, and cannot be autoloaded */
803fb7
+                { "ip_tables", "/proc/net/ip_tables_names", false, NULL                },
803fb7
         };
803fb7
         struct kmod_ctx *ctx = NULL;
803fb7
         unsigned int i;