@@ -903,10 +903,6 @@ static int do_init_module(struct kmod_module *mod, unsigned int flags,
off_t size;
int err;
- err = kmod_file_load_contents(mod->file);
- if (err)
- return err;
-
if (flags & (KMOD_INSERT_FORCE_VERMAGIC | KMOD_INSERT_FORCE_MODVERSION)) {
elf = kmod_file_get_elf(mod->file);
if (elf == NULL) {
@@ -928,6 +924,10 @@ static int do_init_module(struct kmod_module *mod, unsigned int flags,
mem = kmod_elf_get_memory(elf);
} else {
+ err = kmod_file_load_contents(mod->file);
+ if (err)
+ return err;
+
mem = kmod_file_get_contents(mod->file);
}
size = kmod_file_get_size(mod->file);