Kernel module fails to build with 2.6.32 kernel. The following error occurs:
make -j1 HOSTCC=i686-pc-linux-gnu-gcc CROSS_COMPILE=i686-pc-linux-gnu- LDFLAGS= KDIR=/usr/src/linux all
using "/usr/src/linux" kernel headers
make -C /usr/src/linux M=/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver modules
make[1]: Entering directory `/usr/src/linux-2.6.32-gentoo'
CC [M] /vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.o
/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.c: In function 'pptp_xmit':
/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.c:386: error: 'struct sk_buff' has no member named 'dst'
/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.c:387: error: 'struct sk_buff' has no member named 'dst'
/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.c: In function 'pptp_rcv':
/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.c:551: error: 'struct sk_buff' has no member named 'dst'
/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.c:552: error: 'struct sk_buff' has no member named 'dst'
make[2]: *** [/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver/pptp.o] Error 1
make[1]: *** [_module_/vt/portage/tmp/portage/net-dialup/accel-pptp-0.8.3/work/accel-pptp-0.8.3/kernel/driver] Error 2
Here's a patch against version 0.8.3
No idea how to attach a file. Here's the patch as text:
diff -ru a/kernel/driver/pptp.c b/kernel/driver/pptp.c
--- a/kernel/driver/pptp.c 2009-05-28 08:41:28.000000000 +0200
+++ b/kernel/driver/pptp.c 2010-05-04 00:52:14.064238379 +0200
@@ -383,8 +383,8 @@
#endif
iph->tot_len = htons(skb->len);
- dst_release(skb->dst);
- skb->dst = &rt->u.dst;
+ dst_release(skb_dst(skb));
+ skb_dst_set(skb, &rt->u.dst);
nf_reset(skb);
@@ -548,8 +548,8 @@
if ((po=lookup_chan(htons(header->call_id),iph->saddr))) {
- dst_release(skb->dst);
- skb->dst = NULL;
+ dst_release(skb_dst(skb));
+ skb_dst_set(skb, NULL);
nf_reset(skb);
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,0)
sk=sk_pppox(po);
This issue was fixed in 0.8.4. Now it's good idea to close issue, but I have no rights to do that.