mips: Free memory when load_module fails (#14453)
[openwrt.git] / target / linux / generic / patches-4.1 / 305-mips_module_reloc.patch
index 87c205c..8b3975f 100644 (file)
  
        return 0;
  }
-@@ -287,11 +528,32 @@ int module_finalize(const Elf_Ehdr *hdr,
+@@ -287,9 +528,33 @@ int module_finalize(const Elf_Ehdr *hdr,
                list_add(&me->arch.dbe_list, &dbe_list);
                spin_unlock_irq(&dbe_lock);
        }
        return 0;
  }
  
- void module_arch_cleanup(struct module *mod)
- {
++void module_arch_freeing_init(struct module *mod)
++{
 +      if (mod->arch.phys_plt_tbl) {
 +              __module_free(mod->arch.phys_plt_tbl);
 +              mod->arch.phys_plt_tbl = NULL;
 +              __module_free(mod->arch.virt_plt_tbl);
 +              mod->arch.virt_plt_tbl = NULL;
 +      }
++}
 +
+ void module_arch_cleanup(struct module *mod)
+ {
        spin_lock_irq(&dbe_lock);
-       list_del(&mod->arch.dbe_list);
-       spin_unlock_irq(&dbe_lock);