diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-05-27 09:06:05 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-05-27 09:06:05 +0000 |
commit | 9cf0f62b15719cbb3b5bcc31ed006a995dd5b0cc (patch) | |
tree | fe869b932d6392270b690eb8b389c7b60931e790 /modutils | |
parent | 9474830006260c14abd6d4282e2633a62efb8010 (diff) | |
download | busybox-9cf0f62b15719cbb3b5bcc31ed006a995dd5b0cc.tar.gz |
vda, xmalloc'ing can use *alot* of RAM. Don't forget that there are
modules out there that are half a megabyte! mmap()ing is way nicer
for small mem boxes.
Diffstat (limited to 'modutils')
-rw-r--r-- | modutils/insmod.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/modutils/insmod.c b/modutils/insmod.c index 1ae89216d..f7e9a6672 100644 --- a/modutils/insmod.c +++ b/modutils/insmod.c @@ -955,6 +955,7 @@ arch_apply_relocation(struct obj_file *f, case R_386_PLT32: case R_386_PC32: + case R_386_GOTOFF: *loc += v - dot; break; @@ -973,9 +974,6 @@ arch_apply_relocation(struct obj_file *f, case R_386_GOT32: goto bb_use_got; - - case R_386_GOTOFF: - *loc += v - got; break; #elif defined(__microblaze__) @@ -4213,7 +4211,6 @@ int insmod_main(int argc ATTRIBUTE_UNUSED, char **argv) static int insmod_ng_main(int argc ATTRIBUTE_UNUSED, char **argv) #endif { - long ret; size_t len; int optlen; void *map; @@ -4234,6 +4231,11 @@ static int insmod_ng_main(int argc ATTRIBUTE_UNUSED, char **argv) #if 0 /* Any special reason why mmap? It isn't performace critical... */ + + /* yes, xmalloc'ing can use *alot* of RAM. Don't forget that there are + * modules out there that are half a megabyte! mmap()ing is way nicer + * for small mem boxes, i guess. + */ int fd; struct stat st; unsigned long len; @@ -4255,11 +4257,9 @@ static int insmod_ng_main(int argc ATTRIBUTE_UNUSED, char **argv) map = xmalloc_open_read_close(filename, &len); #endif - ret = syscall(__NR_init_module, map, len, options); - if (ret != 0) { + if (syscall(__NR_init_module, map, len, options) != 0) bb_error_msg_and_die("cannot insert '%s': %s", filename, moderror(errno)); - } return 0; } |