From 6b7af6018d6a019f182d82f55c08dc05414a4797 Mon Sep 17 00:00:00 2001 From: Sapan Bhatia Date: Mon, 14 Jul 2008 20:22:09 +0000 Subject: [PATCH] --- linux-2.6-526-tun-tap.patch | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/linux-2.6-526-tun-tap.patch b/linux-2.6-526-tun-tap.patch index d9527a9d7..cfc495404 100644 --- a/linux-2.6-526-tun-tap.patch +++ b/linux-2.6-526-tun-tap.patch @@ -12,8 +12,8 @@ diff -Nurb linux-2.6.22-525/drivers/net/Makefile linux-2.6.22-526/drivers/net/Ma obj-$(CONFIG_IBM_EMAC) += ibm_emac/ diff -Nurb linux-2.6.22-525/drivers/net/vnet_tun.c linux-2.6.22-526/drivers/net/vnet_tun.c --- linux-2.6.22-525/drivers/net/vnet_tun.c 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.22-526/drivers/net/vnet_tun.c 2008-07-14 12:11:21.000000000 -0400 -@@ -0,0 +1,718 @@ ++++ linux-2.6.22-526/drivers/net/vnet_tun.c 2008-07-14 16:22:57.000000000 -0400 +@@ -0,0 +1,725 @@ +/* + * TUN - Universal TUN/TAP device driver. + * Copyright (C) 1999-2002 Maxim Krasnyansky @@ -111,6 +111,7 @@ diff -Nurb linux-2.6.22-525/drivers/net/vnet_tun.c linux-2.6.22-526/drivers/net/ + +#define set_sk_xid(sk,xid) sk->sk_nid=xid +#define set_skb_xid(skb,xid) skb->skb_tag=xid ++#define get_skb_xid(skb) skb->skb_tag + +/* Extended fields */ +struct tun_pi_ext { @@ -195,9 +196,15 @@ diff -Nurb linux-2.6.22-525/drivers/net/vnet_tun.c linux-2.6.22-526/drivers/net/ +/* Net device start xmit */ +static int tun_net_xmit(struct sk_buff *skb, struct net_device *dev) +{ -+ xid_t xid = get_sk_xid(skb->sk); -+ struct tun_struct *tun = tun_get_by_xid(xid); ++ xid_t xid, skb_xid; ++ struct tun_struct *tun; ++ skb_xid=get_skb_xid(skb); ++ if (skb_xid<1) ++ xid=get_sk_xid(skb->sk); ++ else ++ xid=skb_xid; + ++ tun = tun_get_by_xid(xid); + /* Mark packet */ + set_skb_xid(skb, xid); + @@ -729,6 +736,6 @@ diff -Nurb linux-2.6.22-525/drivers/net/vnet_tun.c linux-2.6.22-526/drivers/net/ + unregister_netdev(&tun_netdev); +} + -+MODULE_LICENSE("GPL"); +module_init(tun_init); +module_cleanup(tun_cleanup); ++MODULE_LICENSE("GPL"); -- 2.43.0