[ewg] 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 ewg
mailing list