mips: Free memory when load_module fails (#14453)
authorFelix Fietkau <nbd@openwrt.org>
Fri, 18 Sep 2015 12:47:46 +0000 (12:47 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 18 Sep 2015 12:47:46 +0000 (12:47 +0000)
commit2a059ea075efef188b7c768dbe2b72ac040734a7
tree86a52ae808bed0093ea6667a984065cf84a96e6a
parentb21a44da1eb2e6e04f5db2edbe0aab57910f7c9e
mips: Free memory when load_module fails (#14453)

The mips reloc patch introduced new allocations which were done before
add_unformed_module but never freed them in case of an error. A new hook in
Linux 3.19 called module_arch_freeing_init can be used for freeing memory
which were allocated during this init phase.

The problem can be seen when trying to load a module (via busybox insmod)
when it was already loaded.

    free -m
    for i in `seq 1 100`; do
        /sbin/insmod /lib/modules/*/ath9k.ko >& /dev/null
    done
    free -m

This simple loop would leak ~3.2 MB.

Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
Backport of r46247

SVN-Revision: 47004
target/linux/generic/patches-3.18/099-module_arch_freeing_init-new-hook-for-archs-before-m.patch [new file with mode: 0644]
target/linux/generic/patches-3.18/305-mips_module_reloc.patch