From 14839f0acc15197e360299b7f714b8f9ff97ba17 Mon Sep 17 00:00:00 2001 From: Yousong Zhou Date: Sat, 14 Jan 2017 01:00:35 +0800 Subject: [PATCH] kmodloader: make insert_module() idempotent To fix spurious error messages in the following situation 1. scan loaded modules 2. load wireguard.ko and the module itself will request xt_hashlimit to be loaded 3. xt_hashlimit is still in PROBE state here so we also try to load it, but init_module() returns EEXIST Signed-off-by: Yousong Zhou --- kmodloader.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kmodloader.c b/kmodloader.c index bcb213b..729027a 100644 --- a/kmodloader.c +++ b/kmodloader.c @@ -574,8 +574,11 @@ static int insert_module(char *path, const char *options) } data = malloc(s.st_size); - if (read(fd, data, s.st_size) == s.st_size) + if (read(fd, data, s.st_size) == s.st_size) { ret = syscall(__NR_init_module, data, (unsigned long) s.st_size, options); + if (errno == EEXIST) + ret = 0; + } else ULOG_ERR("failed to read full module %s\n", path); -- 2.11.0