From: Stewart SmithDate: Wed Jun 4, 2003 3:56:09 PM Australia/Melbourne To: Linus Torvalds Cc: linux-kernel@vger.kernel.org, David Woodhouse , Stewart Smith Subject: [PATCH] fixed: CRC32=y && 8193TOO=m unresolved symbols
Linus,
please apply – this fixes unresolved symbols when CONFIG_CRC32=y and CONFIG_8139TOO=m (it also appeared on some other ethernet device drivers). I think this is the right way to fix this problem. It at least now builds, links and boots (and hey, even my ethernet works so it can’t all be bad :)
patches cleanly against 2.5.70 and 2.5.70-bk8
--- linux-2.5.70-orig/include/linux/crc32.h 2003-05-05 09:53:08.000000000 +1000 +++ linux-2.5.70-stew3/include/linux/crc32.h 2003-06-04 15:27:34.000000000 +1000 @@ -6,6 +6,7 @@ #define _LINUX_CRC32_H #include+#include extern u32 crc32_le(u32 crc, unsigned char const *p, size_t len); extern u32 crc32_be(u32 crc, unsigned char const *p, size_t len); @@ -21,7 +22,16 @@ * is in bit nr 0], thus it must be reversed before use. Except for * nics that bit swap the result internally... */ -#define ether_crc(length, data) bitreverse(crc32_le(~0, data, length)) -#define ether_crc_le(length, data) crc32_le(~0, data, length) +static inline u32 ether_crc(size_t length, unsigned char const *data) +{ + return bitreverse(crc32_le(~0, data, length)); +} +EXPORT_SYMBOL(ether_crc); + +static inline u32 ether_crc_le(size_t length, unsigned char const *data) +{ + return crc32_le(~0, data, length); +} +EXPORT_SYMBOL(ether_crc_le); #endif /* _LINUX_CRC32_H */ --- linux-2.5.70-orig/kernel/ksyms.c 2003-06-02 23:28:32.000000000 +1000 +++ linux-2.5.70-stew3/kernel/ksyms.c 2003-06-04 15:11:37.000000000 +1000 @@ -58,6 +58,7 @@ #include #include #include +#include #include #if defined(CONFIG_PROC_FS)