finally! fixed it!

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)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.