From 657c707ca3919038fa1233192f1dfc62f8e154d4 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 5 Mar 2012 00:12:44 +0000 Subject: [PATCH] kernel: fix vmalloc stack traces triggered by module with an empty init section (mostly happens on x86) SVN-Revision: 30813 --- .../340-module_alloc_size_check.patch | 20 +++++++++++++++++++ .../340-module_alloc_size_check.patch | 20 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 target/linux/generic/patches-3.2/340-module_alloc_size_check.patch create mode 100644 target/linux/generic/patches-3.3/340-module_alloc_size_check.patch diff --git a/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch b/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch new file mode 100644 index 0000000000..6c7e50a0b1 --- /dev/null +++ b/target/linux/generic/patches-3.2/340-module_alloc_size_check.patch @@ -0,0 +1,20 @@ +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2286,12 +2286,15 @@ + + void * __weak module_alloc(unsigned long size) + { +- return size == 0 ? NULL : vmalloc_exec(size); ++ return vmalloc_exec(size); + } + + static void *module_alloc_update_bounds(unsigned long size) + { +- void *ret = module_alloc(size); ++ void *ret = NULL; ++ ++ if (size) ++ ret = module_alloc(size); + + if (ret) { + mutex_lock(&module_mutex); diff --git a/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch b/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch new file mode 100644 index 0000000000..9830bc507c --- /dev/null +++ b/target/linux/generic/patches-3.3/340-module_alloc_size_check.patch @@ -0,0 +1,20 @@ +--- a/kernel/module.c ++++ b/kernel/module.c +@@ -2322,12 +2322,15 @@ + + void * __weak module_alloc(unsigned long size) + { +- return size == 0 ? NULL : vmalloc_exec(size); ++ return vmalloc_exec(size); + } + + static void *module_alloc_update_bounds(unsigned long size) + { +- void *ret = module_alloc(size); ++ void *ret = NULL; ++ ++ if (size) ++ ret = module_alloc(size); + + if (ret) { + mutex_lock(&module_mutex); -- 2.30.2