chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
7491e6e
)
do not run kmod-setup in a container
author
Kay Sievers
<kay@vrfy.org>
Thu, 19 Dec 2013 00:32:55 +0000
(
01:32
+0100)
committer
Kay Sievers
<kay@vrfy.org>
Thu, 19 Dec 2013 00:32:55 +0000
(
01:32
+0100)
src/core/kmod-setup.c
patch
|
blob
|
history
src/core/main.c
patch
|
blob
|
history
diff --git
a/src/core/kmod-setup.c
b/src/core/kmod-setup.c
index bc3460a698b3e73b41c1ae0e5722933339d7d302..9709d364f8bfd7ee6bc6d2d4c624a010ed872325 100644
(file)
--- a/
src/core/kmod-setup.c
+++ b/
src/core/kmod-setup.c
@@
-47,13
+47,13
@@
static void systemd_kmod_log(
#pragma GCC diagnostic pop
#pragma GCC diagnostic pop
-static bool
kmod_check_cmdline
(void) {
+static bool
cmdline_check_kdbus
(void) {
_cleanup_free_ char *line = NULL;
_cleanup_free_ char *line = NULL;
- if (proc_cmdline(&line) < 0)
+ if (proc_cmdline(&line) <
=
0)
return false;
return false;
- return strstr(line, "kdbus")
== 0
;
+ return strstr(line, "kdbus")
!= NULL
;
}
int kmod_setup(void) {
}
int kmod_setup(void) {
@@
-73,7
+73,7
@@
int kmod_setup(void) {
{ "unix", "/proc/net/unix", true, NULL },
/* IPC is needed before we bring up any other services */
{ "unix", "/proc/net/unix", true, NULL },
/* IPC is needed before we bring up any other services */
- { "kdbus", "/sys/bus/kdbus", false,
kmod_check_cmdline
},
+ { "kdbus", "/sys/bus/kdbus", false,
cmdline_check_kdbus
},
};
struct kmod_ctx *ctx = NULL;
unsigned int i;
};
struct kmod_ctx *ctx = NULL;
unsigned int i;
@@
-82,10
+82,10
@@
int kmod_setup(void) {
for (i = 0; i < ELEMENTSOF(kmod_table); i++) {
struct kmod_module *mod;
for (i = 0; i < ELEMENTSOF(kmod_table); i++) {
struct kmod_module *mod;
- if (kmod_table[i].
condition_fn && kmod_table[i].condition_fn()
)
+ if (kmod_table[i].
path && access(kmod_table[i].path, F_OK) >= 0
)
continue;
continue;
- if (
access(kmod_table[i].path, F_OK) >= 0
)
+ if (
kmod_table[i].condition_fn && !kmod_table[i].condition_fn()
)
continue;
if (kmod_table[i].warn)
continue;
if (kmod_table[i].warn)
@@
-113,7
+113,7
@@
int kmod_setup(void) {
log_info("Inserted module '%s'", kmod_module_get_name(mod));
else if (r == KMOD_PROBE_APPLY_BLACKLIST)
log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
log_info("Inserted module '%s'", kmod_module_get_name(mod));
else if (r == KMOD_PROBE_APPLY_BLACKLIST)
log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
- else
+ else
if (kmod_table[i].warn)
log_error("Failed to insert module '%s'", kmod_module_get_name(mod));
kmod_module_unref(mod);
log_error("Failed to insert module '%s'", kmod_module_get_name(mod));
kmod_module_unref(mod);
diff --git
a/src/core/main.c
b/src/core/main.c
index eac4fe613409cd5edf9d562900e23bb7d82bcde8..5189833e48bc8a37cea302a426ad86cce0d2253d 100644
(file)
--- a/
src/core/main.c
+++ b/
src/core/main.c
@@
-1489,7
+1489,8
@@
int main(int argc, char *argv[]) {
status_welcome();
#ifdef HAVE_KMOD
status_welcome();
#ifdef HAVE_KMOD
- kmod_setup();
+ if (detect_container(NULL) <= 0)
+ kmod_setup();
#endif
hostname_setup();
machine_id_setup();
#endif
hostname_setup();
machine_id_setup();