summaryrefslogtreecommitdiff
path: root/kmodloader.c
diff options
context:
space:
mode:
authorYousong Zhou <yszhou4tech@gmail.com>2017-02-23 11:04:50 +0800
committerYousong Zhou <yszhou4tech@gmail.com>2017-02-23 11:14:04 +0800
commit3dc78a47685b74f8a30739b41df365ef90535d54 (patch)
tree8d6ab777ecdb0b633fb0339e31f1f6cc2c52e78c /kmodloader.c
parentc553354dd9f0ccd4afa45b14dd7afc87f37e6fa0 (diff)
downloadubox-3dc78a47685b74f8a30739b41df365ef90535d54.tar.gz
kmodloader: don't store aliases info in struct module
This also fixes FS#544 as the possible address alignment issue should now disappear function old new delta alloc_module 398 245 -153 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-153) Total: -153 bytes Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com>
Diffstat (limited to 'kmodloader.c')
-rw-r--r--kmodloader.c32
1 files changed, 4 insertions, 28 deletions
diff --git a/kmodloader.c b/kmodloader.c
index ac14bac..892ddd8 100644
--- a/kmodloader.c
+++ b/kmodloader.c
@@ -48,8 +48,6 @@ struct module {
char *name;
char *depends;
char *opts;
- char **aliases;
- int naliases;
int size;
int usage;
@@ -250,16 +248,11 @@ alloc_module(const char *name, const char * const *aliases, int naliases, const
{
struct module *m;
char *_name, *_dep;
- char **_aliases;
- int i, len_aliases;
+ int i;
- len_aliases = naliases * sizeof(aliases[0]);
- for (i = 0; i < naliases; i++)
- len_aliases += strlen(aliases[i]) + 1;
m = calloc_a(sizeof(*m),
&_name, strlen(name) + 1,
- &_dep, depends ? strlen(depends) + 2 : 0,
- &_aliases, len_aliases);
+ &_dep, depends ? strlen(depends) + 2 : 0);
if (!m)
return NULL;
@@ -275,28 +268,11 @@ alloc_module(const char *name, const char * const *aliases, int naliases, const
}
}
m->size = size;
- m->naliases = naliases;
- if (naliases == 0)
- m->aliases = NULL;
- else {
- char *ptr = (char *)_aliases + naliases * sizeof(_aliases[0]);
- int len;
-
- i = 0;
- do {
- len = strlen(aliases[i]) + 1;
- memcpy(ptr, aliases[i], len);
- _aliases[i] = ptr;
- ptr += len;
- i++;
- } while (i < naliases);
- m->aliases = _aliases;
- }
m->refcnt = 0;
alloc_module_node(m->name, m, false);
- for (i = 0; i < m->naliases; i++)
- alloc_module_node(m->aliases[i], m, true);
+ for (i = 0; i < naliases; i++)
+ alloc_module_node(aliases[i], m, true);
return m;
}