* [PATCH -mm] module: fix __find_symbl() error checks
@ 2008-02-06 13:10 Akinobu Mita
0 siblings, 0 replies; only message in thread
From: Akinobu Mita @ 2008-02-06 13:10 UTC (permalink / raw)
To: linux-kernel; +Cc: Christoph Lameter, Andrew Morton
The patch:
http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.24/2.6.24-mm1/broken-out/modules-handle-symbols-that-have-a-zero-value.patch
changes the return value of __find_symbol() so that it can handle symbols
that are zero and now it returns -errno for failure.
But some __find_symbl() error checks remain unchanged.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Christoph Lameter <clameter@sgi.com>
---
kernel/module.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
Index: 2.6.24-mm1/kernel/module.c
===================================================================
--- 2.6.24-mm1.orig/kernel/module.c
+++ 2.6.24-mm1/kernel/module.c
@@ -977,7 +977,7 @@ static unsigned long resolve_symbol(Elf_
ret = __find_symbol(name, &owner, &crc,
!(mod->taints & TAINT_PROPRIETARY_MODULE));
- if (ret) {
+ if (!IS_ERR_VALUE(ret)) {
/* use_module can fail due to OOM,
or module initialization or unloading */
if (!check_version(sechdrs, versindex, name, mod, crc) ||
@@ -1370,7 +1370,9 @@ void *__symbol_get(const char *symbol)
preempt_disable();
value = __find_symbol(symbol, &owner, &crc, 1);
- if (value && strong_try_module_get(owner) != 0)
+ if (IS_ERR_VALUE(value))
+ value = 0;
+ else if (strong_try_module_get(owner))
value = 0;
preempt_enable();
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-02-06 13:17 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-06 13:10 [PATCH -mm] module: fix __find_symbl() error checks Akinobu Mita
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.