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