x86: fix csum_partial() export

Fix this symbol export problem:

    Building modules, stage 2.
    MODPOST 193 modules
    ERROR: "csum_partial" [fs/reiserfs/reiserfs.ko] undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

This is due to a known weakness of symbol exports: if a symbol's
only in-core user is an EXPORT_SYMBOL from a lib-y section, the
symbol is not linked in.

The solution is to move the export to x8664_ksyms_64.c - but the real
solution would be to fix kbuild.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Ingo Molnar 2008-05-13 10:36:22 +02:00
Родитель 8c45a4e4f2
Коммит 89804c022f
2 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -2,6 +2,7 @@
All C exports should go in the respective C files. */ All C exports should go in the respective C files. */
#include <linux/module.h> #include <linux/module.h>
#include <net/checksum.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <asm/processor.h> #include <asm/processor.h>
@ -29,6 +30,8 @@ EXPORT_SYMBOL(__copy_from_user_inatomic);
EXPORT_SYMBOL(copy_page); EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(clear_page); EXPORT_SYMBOL(clear_page);
EXPORT_SYMBOL(csum_partial);
/* /*
* Export string functions. We normally rely on gcc builtin for most of these, * Export string functions. We normally rely on gcc builtin for most of these,
* but gcc sometimes decides not to inline them. * but gcc sometimes decides not to inline them.

Просмотреть файл

@ -136,8 +136,6 @@ __wsum csum_partial(const void *buff, int len, __wsum sum)
(__force u32)sum); (__force u32)sum);
} }
EXPORT_SYMBOL(csum_partial);
/* /*
* this routine is used for miscellaneous IP-like checksums, mainly * this routine is used for miscellaneous IP-like checksums, mainly
* in icmp.c * in icmp.c