]> git.pld-linux.org Git - packages/cisco-vpnclient.git/blob - cisco-vpnclient-skbuff_offset.patch
- export KBUILD_NOPEDANTIC=1 for x86_64
[packages/cisco-vpnclient.git] / cisco-vpnclient-skbuff_offset.patch
1 diff -ur vpnclient.old/frag.c vpnclient.new/frag.c
2 --- vpnclient.old/frag.c        2007-08-22 15:30:31.000000000 -0400
3 +++ vpnclient/frag.c    2007-11-09 09:19:48.000000000 -0500
4 @@ -22,7 +22,11 @@
5  #include "frag.h"
6  
7  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
8 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
9 +#define SKB_IPHDR(skb) ((struct iphdr*)(skb->head+skb->network_header))
10 +#else
11  #define SKB_IPHDR(skb) ((struct iphdr*)skb->network_header)
12 +#endif
13  #else
14  #define SKB_IPHDR(skb) skb->nh.iph
15  #endif
16 diff -ur vpnclient.old/interceptor.c vpnclient.new/interceptor.c
17 --- vpnclient.old/interceptor.c 2007-08-22 15:30:31.000000000 -0400
18 +++ vpnclient/interceptor.c     2007-11-09 10:03:01.000000000 -0500
19 @@ -630,19 +630,31 @@
20  
21      reset_inject_status(&pBinding->recv_stat);
22  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
23 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
24 +    if (skb->mac_header >= (skb->data-skb->head))
25 +#else
26      if (skb->mac_header)
27 +#endif
28  #else
29      if (skb->mac.raw)
30  #endif
31      {
32  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
33 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
34 +        hard_header_len = skb->mac_header - (skb->data - skb->head);
35 +#else
36          hard_header_len = skb->data - skb->mac_header;
37 +#endif
38  #else
39          hard_header_len = skb->data - skb->mac.raw;
40  #endif
41          if ((hard_header_len < 0) || (hard_header_len > skb_headroom(skb)))
42          {
43 -            printk(KERN_DEBUG "bad hh len %d\n", hard_header_len);
44 +            printk(KERN_DEBUG "bad hh len %d, mac: %d, data: %p, head: %p\n",
45 +                hard_header_len,
46 +                skb->mac_header,
47 +                skb->data,
48 +                skb->head);
49              hard_header_len = 0;
50          }
51      }
52 @@ -657,7 +669,11 @@
53      {
54      case ETH_HLEN:
55  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
56 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
57 +        CniNewFragment(ETH_HLEN, skb->head+skb->mac_header, &MacHdr, CNI_USE_BUFFER);
58 +#else
59          CniNewFragment(ETH_HLEN, skb->mac_header, &MacHdr, CNI_USE_BUFFER);
60 +#endif
61  #else
62          CniNewFragment(ETH_HLEN, skb->mac.raw, &MacHdr, CNI_USE_BUFFER);
63  #endif
64 @@ -775,7 +791,11 @@
65  #endif //LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
66      reset_inject_status(&pBinding->send_stat);
67  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
68 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
69 +    hard_header_len = skb->network_header - (skb->data - skb->head);
70 +#else
71      hard_header_len = skb->network_header - skb->data;
72 +#endif
73  #else
74      hard_header_len = skb->nh.raw - skb->data;
75  #endif
76 diff -ur vpnclient.old/linuxcniapi.c vpnclient.new/linuxcniapi.c
77 --- vpnclient.old/linuxcniapi.c 2007-08-22 15:30:31.000000000 -0400
78 +++ vpnclient/linuxcniapi.c     2007-11-09 09:17:50.000000000 -0500
79 @@ -338,8 +338,13 @@
80      skb->ip_summed = CHECKSUM_UNNECESSARY;
81  
82  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
83 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
84 +    skb->network_header = skb->data - skb->head;
85 +    skb->mac_header = pMac - skb->head;
86 +#else
87      skb->network_header = (sk_buff_data_t) skb->data;
88      skb->mac_header = (sk_buff_data_t)pMac;
89 +#endif
90  #else
91      skb->nh.iph = (struct iphdr *) skb->data;
92      skb->mac.raw = pMac;
93 @@ -478,8 +483,13 @@
94      skb->dev = pBinding->pDevice;
95  
96  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
97 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
98 +    skb->network_header = skb->data - skb->head;
99 +    skb->mac_header = pMac - skb->head;
100 +#else
101      skb->mac_header = (sk_buff_data_t)pMac;
102      skb->network_header = (sk_buff_data_t)pIP;
103 +#endif
104  #else
105      skb->mac.raw = pMac;
106      skb->nh.raw = pIP;
107 @@ -487,8 +497,13 @@
108  
109      /*ip header length is in 32bit words */
110  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
111 +#ifdef NET_SKBUFF_DATA_USES_OFFSET
112 +    skb->transport_header =
113 +      (pIP + (((struct iphdr*)(skb->head+skb->network_header))->ihl * 4)) - skb->head;
114 +#else
115      skb->transport_header = (sk_buff_data_t)
116        (pIP + (((struct iphdr*)(skb->network_header))->ihl * 4));
117 +#endif
118  #else
119      skb->h.raw = pIP + (skb->nh.iph->ihl * 4);
120  #endif
121 diff -ur vpnclient.old/linuxkernelapi.c vpnclient.new/linuxkernelapi.c
122 --- vpnclient.old/linuxkernelapi.c      2007-08-22 15:30:31.000000000 -0400
123 +++ vpnclient/linuxkernelapi.c  2007-11-09 09:23:21.000000000 -0500
124 @@ -9,7 +9,7 @@
125      void*rc = kmalloc(size, GFP_ATOMIC);
126      if(NULL == rc)
127      {
128 -        printk("<1> os_malloc size %d failed\n",size);
129 +        printk("<1> os_malloc size %ld failed\n",size);
130      }
131  
132      return rc;
This page took 0.057029 seconds and 3 git commands to generate.