diff options
Diffstat (limited to 'ztd-eth.c')
-rw-r--r-- | ztd-eth.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -92,7 +92,11 @@ static int ztdeth_rcv(struct sk_buff *skb, struct net_device *dev, struct packet { struct zt_span *span; struct ztdeth_header *zh; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) + zh = (struct ztdeth_header *)skb_network_header(skb); +#else zh = (struct ztdeth_header *)skb->nh.raw; +#endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,9) span = ztdeth_getspan(eth_hdr(skb)->h_source, zh->subaddr); #else @@ -171,7 +175,11 @@ static int ztdeth_transmit(void *pvt, unsigned char *msg, int msglen) /* Setup protocol and such */ skb->protocol = __constant_htons(ETH_P_ZTDETH); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) + skb_set_network_header(skb, 0); +#else skb->nh.raw = skb->data; +#endif skb->dev = dev; if (dev->hard_header) dev->hard_header(skb, dev, ETH_P_ZTDETH, addr, dev->dev_addr, skb->len); |