kernel oops on 2.4.29 with ebtables-brnf-9 patch
Arinjay Jain <[email protected]>
| Newsgroups | gmane.linux.network.bridge.ebtables.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi,
I have applied the ebtables-brnf-9_vs_2.4.29.diff patch on kernel 2.4.29 and
am getting OOPS in netif_receive_skb.
The 2.4.29 kernel I have is already patched with some skbuff headroom and
tailroom changes. I have pasted the diff.
--- linux-2.4.29/include/linux/skbuff.h 2004-08-07 23:26:06.000000000 +0000
+++ linux-2.4.29-new/include/linux/skbuff.h 2005-06-17 17:51:
12.000000000 +0000
@@ -39,6 +39,9 @@
#define SKB_MAX_HEAD(X) (SKB_MAX_ORDER((X),0))
#define SKB_MAX_ALLOC (SKB_MAX_ORDER(0,2))
+#define SKB_HEADER_EXTRA 64
+#define SKB_TAIL_EXTRA 16
+
/* A. Checksumming of received packets by device.
*
* NONE: device failed to checksum this packet.
@@ -1033,9 +1036,10 @@
{
struct sk_buff *skb;
- skb = alloc_skb(length+16, gfp_mask);
- if (skb)
- skb_reserve(skb,16);
+ skb = alloc_skb(length+SKB_HEADER_EXTRA+SKB_TAIL_EXTRA, gfp_mask);
+ if (skb) {
+ skb_reserve(skb,SKB_HEADER_EXTRA);
+ }
return skb;
}
@@ -1073,7 +1077,9 @@
static inline int
skb_cow(struct sk_buff *skb, unsigned int headroom)
{
- int delta = (headroom > 16 ? headroom : 16) - skb_headroom(skb);
+ int delta = (headroom > SKB_HEADER_EXTRA ?
+ headroom :
+ SKB_HEADER_EXTRA) - skb_headroom(skb);
if (delta < 0)
delta = 0;
Will this patch cause any problem with the ebtables-br-nf patch that I am
using.
Thanks,
Arinjay