--- zzzz-none-000/linux-2.4.17/drivers/net/pppoe.c 2001-11-09 22:02:24.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/drivers/net/pppoe.c 2004-11-24 13:23:36.000000000 +0000 @@ -886,13 +886,21 @@ * give dev_queue_xmit something it can free. */ skb2 = skb_clone(skb, GFP_ATOMIC); + if (skb2 == NULL) + goto abort; } ph = (struct pppoe_hdr *) skb_push(skb2, sizeof(struct pppoe_hdr)); memcpy(ph, &hdr, sizeof(struct pppoe_hdr)); skb2->protocol = __constant_htons(ETH_P_PPP_SES); - skb2->nh.raw = skb2->data; +#ifdef CONFIG_NET_SCH_PRIOWRR + /* Do not initialize the network header for QOS U32 classifier. This is a common + * function shared by the control and data paths. The network header should be + * initialized before this is called. */ +#else + skb2->nh.raw = skb2->data; +#endif skb2->dev = dev;