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 <[EMAIL PROTECTED]> Cc: Christoph Lameter <[EMAIL PROTECTED]> --- 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(); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/