1
0
Fork 0
alistair23-linux/net/ax25
Herbert Xu d55d87fdff net: Move rx skb_orphan call to where needed
In order to get the tun driver to account packets, we need to be
able to receive packets with destructors set.  To be on the safe
side, I added an skb_orphan call for all protocols by default since
some of them (IP in particular) cannot handle receiving packets
destructors properly.

Now it seems that at least one protocol (CAN) expects to be able
to pass skb->sk through the rx path without getting clobbered.

So this patch attempts to fix this properly by moving the skb_orphan
call to where it's actually needed.  In particular, I've added it
to skb_set_owner_[rw] which is what most users of skb->destructor
call.

This is actually an improvement for tun too since it means that
we only give back the amount charged to the socket when the skb
is passed to another socket that will also be charged accordingly.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Oliver Hartkopp <olver@hartkopp.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-06-23 16:36:25 -07:00
..
Kconfig [S390] Kconfig: unwanted menus for s390. 2007-05-10 15:46:07 +02:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
TODO [AX25]: Remove obsolete references to BKL from TODO file. 2008-03-26 02:14:38 -07:00
af_ax25.c net: correct off-by-one write allocations reports 2009-06-18 00:29:12 -07:00
ax25_addr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ax25_dev.c [AX25] ax25_ds_timer: use mod_timer instead of add_timer 2008-02-12 17:53:34 -08:00
ax25_ds_in.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
ax25_ds_subr.c Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
ax25_ds_timer.c [AX25] ax25_ds_timer: use mod_timer instead of add_timer 2008-02-12 17:53:34 -08:00
ax25_iface.c ax25: more common return path joining 2009-02-06 23:47:14 -08:00
ax25_in.c net: Move rx skb_orphan call to where needed 2009-06-23 16:36:25 -07:00
ax25_ip.c [NET]: Move hardware header operations out of netdevice. 2007-10-10 16:52:52 -07:00
ax25_out.c [AX25] ax25_out: check skb for NULL in ax25_kick() 2008-02-17 22:31:19 -08:00
ax25_route.c CRED: Wrap task credential accesses in the AX25 protocol 2008-11-14 10:39:06 +11:00
ax25_std_in.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ax25_std_subr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ax25_std_timer.c Revert "ax25: Fix std timer socket destroy handling." 2008-10-06 12:48:29 -07:00
ax25_subr.c ax25: Fix NULL pointer dereference and lockup. 2008-06-03 14:53:46 -07:00
ax25_timer.c [AX25] ax25_timer: use mod_timer instead of add_timer 2008-02-12 17:53:33 -08:00
ax25_uid.c ax25: proc uid file misses header 2009-04-20 02:14:59 -07:00
sysctl_net_ax25.c ax25: fix warning in net/ax25/sysctl_net_ax25.c 2008-11-25 16:58:19 -08:00