[ofa-general] Re: problems with ofed-1.2.c chelsio low level driver

Steve Wise swise at opengridcomputing.com
Thu Aug 9 07:09:46 PDT 2007



Michael S. Tsirkin wrote:
>> Quoting Steve Wise <swise at opengridcomputing.com>:
>> Subject: problems with ofed-1.2.c chelsio low level driver
>>
>> Michael,
>>
>> I've discovered that I was really testing the ofed-1.2 cxgb3.ko module 
>> in my testing 1.2.c regression test.  Upon getting a complete 1.2.c 
>> installed, I'm seeing crashes with the chelsio driver.  I think there 
>> are some patches that went into the ofed-1.2 branch, that did not get 
>> merged into ofed-1.2.c.   The ofed-1.2 branch works, but 1.2.c is broken.
>>
>> I'm investigating now, but we'll need to fix this before shipping 
>> 1.2.c/1.2.5.
> 
> I went through list of patches again and I don't see anything missing.
> Please send fixes, if any, to Vlad by this weekend, so Vlad can integrate
> them on Sunday.
> 


Will do.

I found the problem:  In 2.6.22 and beyond, eth_type_trans() initializes 
the skb->dev ptr.  The Chelsio driver in 2.6.22 was changed to utilize 
this.  Thus if you run it on an older kernel, the skb->dev ptr never 
gets set and the driver crashes immediately when processing incoming 
traffic.  I've created a backport fix for this that I'll be sending out 
soon.

Steve.

The backport look like this (need one of these for each kernel):

diff --git a/kernel_addons/backport/2.6.11/include/linux/etherdevice.h 
b/kernel_addons/backport/2.6.11/include/linux/etherdevice.h
new file mode 100644
index 0000000..cd709f0
--- /dev/null
+++ b/kernel_addons/backport/2.6.11/include/linux/etherdevice.h
@@ -0,0 +1,15 @@
+#ifndef BACKPORT_LINUX_ETHERDEVICE
+#define BACKPORT_LINUX_ETHERDEVICE
+
+#include_next <linux/etherdevice.h>
+
+static inline unsigned short backport_eth_type_trans(struct sk_buff *skb,
+                                                    struct net_device *dev)
+{
+       skb->dev = dev;
+       return eth_type_trans(skb, dev);
+}
+
+#define eth_type_trans backport_eth_type_trans
+
+#endif




More information about the general mailing list