2.2.8/2.3.0 failed compile with ethertap

Mitchell Blank Jr (mitch@execpc.com)
Tue, 11 May 1999 21:27:53 -0500


Error on link:
drivers/net/net.a(ethertap.o): In function `ethertap_start_xmit':
ethertap.o(.text+0xce): undefined reference to `__skb_push'
make: *** [vmlinux] Error 1

Using the drivers/net/ethertap.c from 2.2.7 compiled OK (untested as
of yet). I'm not sure why 'skb_push' was changed to '__skb_push'.
I don't see anything in 2.3.1pre1 that would fix this.

The differences in that file between 2.2.7 and 2.3.0 follow.

-Mitch

--- ethertap.c.227 Wed May 12 11:23:42 1999
+++ ethertap.c.230 Wed May 12 11:26:27 1999
@@ -177,11 +177,21 @@
#endif

if (skb_headroom(skb) < 2) {
- printk(KERN_DEBUG "%s : bug --- xmit with head<2\n", dev->name);
+ static int once;
+ struct sk_buff *skb2;
+
+ if (!once) {
+ once = 1;
+ printk(KERN_DEBUG "%s: not aligned xmit by protocol %04x\n", dev->name, skb->protocol);
+ }
+
+ skb2 = skb_realloc_headroom(skb, 2);
dev_kfree_skb(skb);
- return 0;
+ if (skb2 == NULL)
+ return 0;
+ skb = skb2;
}
- skb_push(skb, 2);
+ __skb_push(skb, 2);

/* Make the same thing, which loopback does. */
if (skb_shared(skb)) {

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/