[prev in list] [next in list] [prev in thread] [next in thread] 

List:       e1000-devel
Subject:    [E1000-devel] [PATCH] Temporary solution for problem,
From:       Hitoshi Mitake <mitake () mail ! clustcom ! com>
Date:       2008-07-24 6:10:54
Message-ID: 48881CEE.1000604 () mail ! clustcom ! com
[Download RAW message or body]

Hi.

My name is Hitoshi Mitake, nice to meet you.
I'm a Japanese part-time enginner of Cluster Computing, Inc. ( 
http://clustcom.com/ )
At first, please excuse my broken English.

I'm getting in a bind with the problem that
hardware CRC frame stripping of e1000e breaks IPMI transmission.
I found this problem was discussed in this mailing list a few times before.

http://sourceforge.net/mailarchive/forum.php?thread_name=20080616211636.GA5179%40develbox.linuxbox.cz&forum_name=e1000-devel
 http://sourceforge.net/mailarchive/forum.php?thread_name=200806092007.58402.arekm%40maven.pl&forum_name=e1000-devel


So I wrote a little patch, this make users to be able to choose
to use hardware CRC frame stripping function or not from menuconfig of 
kernel.
It seems that hardware CRC stripping function don't have to be enabled 
any time.

I know this isn't a radical way to solve the problem.
But some people(including me) may glad if this patch is in kernel source 
tree.

As a temporary solution, please use this.
When you use this, apply to 2.6.26-rc10.

This is the patch:
diff -r 005282133715 drivers/net/Kconfig
--- a/drivers/net/Kconfig    Thu Jul 24 12:03:12 2008 +0900
+++ b/drivers/net/Kconfig    Thu Jul 24 13:38:34 2008 +0900
@@ -1954,6 +1954,13 @@
       To compile this driver as a module, choose M here. The module
       will be called e1000e.
 
+config E1000E_DISABLE_HWCRCSTRIP
+    bool "Disabling e1000e hardware crc frame stripping"
+    depends on E1000E
+    help
+      Say Y if you don't want e1000e to enable hardware crc frame 
stripping.
+      This may help you if you want to use IPMI.
+
 config IP1000
     tristate "IP1000 Gigabit Ethernet support"
     depends on PCI && EXPERIMENTAL
diff -r 005282133715 drivers/net/e1000e/netdev.c
--- a/drivers/net/e1000e/netdev.c    Thu Jul 24 12:03:12 2008 +0900
+++ b/drivers/net/e1000e/netdev.c    Thu Jul 24 13:38:35 2008 +0900
@@ -1972,8 +1972,10 @@
     else
         rctl |= E1000_RCTL_LPE;
 
+#ifndef CONFIG_E1000E_DISABLE_HWCRCSTRIP
     /* Enable hardware CRC frame stripping */
     rctl |= E1000_RCTL_SECRC;
+#endif    /* !CONFIG_E1000E_DISABLE_HWCRCSTRIP */
 
     /* Setup buffer sizes */
     rctl &= ~E1000_RCTL_SZ_4096;


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic