{"id":101,"date":"2003-06-04T18:06:29","date_gmt":"2003-06-04T23:06:29","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=101"},"modified":"2003-06-04T18:06:29","modified_gmt":"2003-06-04T23:06:29","slug":"finally-fixed-it","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2003\/06\/04\/finally-fixed-it\/","title":{"rendered":"finally! fixed it!"},"content":{"rendered":"<pre>\nFrom: Stewart Smith <stewartsmith@mac.com>\nDate: Wed Jun 4, 2003  3:56:09  PM Australia\/Melbourne\nTo: Linus Torvalds <torvalds@transmeta.com>\nCc: linux-kernel@vger.kernel.org, David Woodhouse <dwmw2@infradead.org>, Stewart Smith <stewart@linux.org.au>\nSubject: [PATCH] fixed: CRC32=y && 8193TOO=m unresolved symbols\n<\/pre>\n<p>Linus,<br \/>\nplease apply &#8211; 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&#8217;t all be bad :)<\/p>\n<p>patches cleanly against 2.5.70 and 2.5.70-bk8<\/p>\n<pre>\n--- linux-2.5.70-orig\/include\/linux\/crc32.h\t2003-05-05 09:53:08.000000000 +1000\n+++ linux-2.5.70-stew3\/include\/linux\/crc32.h\t2003-06-04 15:27:34.000000000 +1000\n@@ -6,6 +6,7 @@\n #define _LINUX_CRC32_H\n\n #include <linux\/types.h>\n+#include <linux\/module.h>\n\n extern u32  crc32_le(u32 crc, unsigned char const *p, size_t len);\n extern u32  crc32_be(u32 crc, unsigned char const *p, size_t len);\n@@ -21,7 +22,16 @@\n  * is in bit nr 0], thus it must be reversed before use. Except for\n  * nics that bit swap the result internally...\n  *\/\n-#define ether_crc(length, data)    bitreverse(crc32_le(~0, data, length))\n-#define ether_crc_le(length, data) crc32_le(~0, data, length)\n+static inline u32 ether_crc(size_t length, unsigned char const *data)\n+{\n+  return bitreverse(crc32_le(~0, data, length));\n+}\n+EXPORT_SYMBOL(ether_crc);\n+\n+static inline u32 ether_crc_le(size_t length, unsigned char const *data)\n+{\n+  return crc32_le(~0, data, length);\n+}\n+EXPORT_SYMBOL(ether_crc_le);\n\n #endif \/* _LINUX_CRC32_H *\/\n--- linux-2.5.70-orig\/kernel\/ksyms.c\t2003-06-02 23:28:32.000000000 +1000\n+++ linux-2.5.70-stew3\/kernel\/ksyms.c\t2003-06-04 15:11:37.000000000 +1000\n@@ -58,6 +58,7 @@\n #include <linux\/time.h>\n #include <linux\/backing-dev.h>\n #include <linux\/percpu_counter.h>\n+#include <linux\/crc32.h>\n #include <asm\/checksum.h>\n\n #if defined(CONFIG_PROC_FS)\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>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 &#038;&#038; 8193TOO=m unresolved symbols Linus, please apply &#8211; this fixes unresolved symbols when CONFIG_CRC32=y and &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2003\/06\/04\/finally-fixed-it\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[8],"tags":[],"class_list":["post-101","post","type-post","status-publish","format-standard","hentry","category-linux-kernel"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-1D","jetpack-related-posts":[{"id":456,"url":"https:\/\/www.flamingspork.com\/blog\/2005\/08\/24\/lkml-linus-torvalds-re-otlinus-trademarks-linux\/","url_meta":{"origin":101,"position":0},"title":"LKML: Linus Torvalds: Re: [OT]Linus trademarks Linux?!!","author":"Stewart Smith","date":"2005-08-24","format":false,"excerpt":"LKML: Linus Torvalds: Re: [OT]Linus trademarks Linux?!! thoughts on the trademark and notes about slashdot being a big public wanking session (which is, if nothing else - quite accurrate and quite funny) An old year-2000 mail about the same stuff","rel":"","context":"In &quot;linux-aus&quot;","block_context":{"text":"linux-aus","link":"https:\/\/www.flamingspork.com\/blog\/category\/linux-aus\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":110,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/06\/19\/stews-kernel-2421-ac1-stew1-revision-20\/","url_meta":{"origin":101,"position":1},"title":"stew&#8217;s kernel 2.4.21-ac1-stew1 revision 2.0","author":"Stewart Smith","date":"2003-06-19","format":false,"excerpt":"I've built those in \/linux\/kernel\/debs\/ on Debian Unstable, and am currently building the same kernel on a Debian stable machine. This shouldn't really make a difference, but Timmeah! had an issue on a stable box, so i'm trying it this way. I've also switched down to gcc 2.95 instead of\u2026","rel":"","context":"In &quot;linux-kernel&quot;","block_context":{"text":"linux-kernel","link":"https:\/\/www.flamingspork.com\/blog\/category\/linux-kernel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":111,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/06\/20\/duplicate-defs\/","url_meta":{"origin":101,"position":2},"title":"duplicate defs?","author":"Stewart Smith","date":"2003-06-20","format":false,"excerpt":"mainly a note to me: duplicate definitions in include\/linux\/fs.h and include\/linux\/buffer_head.h?? buffer_##name if this is so, i could probably shave a few bytes off a kernel! wow.....","rel":"","context":"In &quot;linux-kernel&quot;","block_context":{"text":"linux-kernel","link":"https:\/\/www.flamingspork.com\/blog\/category\/linux-kernel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1648,"url":"https:\/\/www.flamingspork.com\/blog\/2009\/05\/19\/is-bit_length-useful\/","url_meta":{"origin":101,"position":3},"title":"Is BIT_LENGTH() useful?","author":"Stewart Smith","date":"2009-05-19","format":false,"excerpt":"mysql [localhost] {msandbox} ((none)) > select length(crc32(3)) * 8, bit_length(crc32(3)); +----------------------+----------------------+ | length(crc32(3)) * 8 | bit_length(crc32(3)) | +----------------------+----------------------+ | 80 | 80 | +----------------------+----------------------+ 1 row in set (0.00 sec)","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":112,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/06\/20\/stews-kernel-for-debian-stable-and-unstable\/","url_meta":{"origin":101,"position":4},"title":"Stew&#8217;s kernel for Debian Stable and Unstable!","author":"Stewart Smith","date":"2003-06-20","format":false,"excerpt":"finally built it for stable as well now. It actually works too (this is what's powering my gateway). My linux workstation is being powered by Stew's kernel too (the Unstable one). .debs for Debian Stable 3.0 (Woody) are in \/linux\/kernel\/debs\/stable\/ .debs for Debian testing\/unstable (sid) are in \/linux\/kernel\/debs\/unstable\/ sources are\u2026","rel":"","context":"In &quot;linux-kernel&quot;","block_context":{"text":"linux-kernel","link":"https:\/\/www.flamingspork.com\/blog\/category\/linux-kernel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":191,"url":"https:\/\/www.flamingspork.com\/blog\/2003\/11\/19\/reminder-to-self\/","url_meta":{"origin":101,"position":5},"title":"reminder to self","author":"Stewart Smith","date":"2003-11-19","format":false,"excerpt":"find out why linux 2.4.22-ben2-stew2-xfs is crashing on saving the clock on shutdown. It's really annoying.","rel":"","context":"In &quot;linux-kernel&quot;","block_context":{"text":"linux-kernel","link":"https:\/\/www.flamingspork.com\/blog\/category\/linux-kernel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=101"}],"version-history":[{"count":1,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions"}],"predecessor-version":[{"id":2641,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions\/2641"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}