From: Stewart Smith
Date: 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)
Like this:
Like Loading...