1
linux/drivers/net
James Chapman 24b95685ff l2tp: Fix possible oops if transmitting or receiving when tunnel goes down
Some problems have been experienced in the field which cause an oops
in the pppol2tp driver if L2TP tunnels fail while passing data.

The pppol2tp driver uses private data that is referenced via the
sk->sk_user_data of its UDP and PPPoL2TP sockets. This patch makes
sure that the driver uses sock_hold() when it holds a reference to the
sk pointer. This affects its sendmsg(), recvmsg(), getname(),
[gs]etsockopt() and ioctl() handlers.

Tested by ISP where problem was seen. System has been up 10 days with
no oops since running this patch. Without the patch, an oops would
occur every 1-2 days.

Signed-off-by: James Chapman <jchapman@katalix.com> 
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-06-04 15:54:07 -07:00
..
appletalk fix warning in drivers/net/appletalk/cops.c 2008-05-06 12:16:24 -04:00
arcnet drivers/net/arcnet/arcnet.c: use time_* macros 2008-03-28 22:14:15 -04:00
arm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-30 08:45:48 -07:00
atlx Merge branch 'davem-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2008-06-04 11:50:00 -07:00
bonding bonding: handle case of device named bonding_master 2008-05-14 22:35:04 -07:00
can
chelsio
cris
cxgb3 cxgb3 - fix EEH 2008-05-13 01:31:37 -04:00
e1000 e1000: convert uint16_t style integers to u16 2008-04-16 20:41:45 -04:00
e1000e e1000e: use resource_size_t, not unsigned long, for phys addrs 2008-05-22 06:19:32 -04:00
ehea drivers/net/ehea - remove unnecessary memset after kzalloc 2008-05-22 06:20:16 -04:00
fec_8xx
fs_enet drivers/net/fs_enet: remove null pointer dereference 2008-05-22 06:26:28 -04:00
hamradio hamradio/scc: add missing block braces to multi-statement if 2008-05-22 06:03:31 -04:00
ibm_emac
ibm_newemac ibm_newemac: Increase MDIO timeouts 2008-04-25 02:08:56 -04:00
igb igb: save and restore pcie/msi state to support EEH recovery 2008-04-25 02:08:04 -04:00
irda irda-usb endianness annotations and fixes 2008-05-21 16:55:59 -07:00
ixgb ixgb: convert uint16_t style integers to u16 2008-04-16 20:41:44 -04:00
ixgbe ixgbe: save and restore pcie/msi state to support EEH recovery 2008-04-25 02:07:13 -04:00
ixp2000
mlx4 mlx4_core: Support creation of FMRs with pages smaller than 4K 2008-05-05 15:56:52 -07:00
myri10ge myri10ge: update driver version 2008-05-30 22:07:19 -04:00
netxen Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-25 12:28:28 -07:00
pcmcia fmvj18x_cs: add NextCom NC5310 rev B support 2008-05-22 14:08:56 -04:00
phy phylib: do EXPORT_SYMBOL on get_phy_id 2008-05-22 14:01:01 -04:00
sfc [netdrvr] sfc: Report XAUI link down at default log level 2008-05-30 22:06:47 -04:00
skfp skfp annotations 2008-03-26 00:18:44 -04:00
tokenring drivers/net/tokenring/olympic.c: fix warning 2008-05-22 06:03:30 -04:00
tulip [netdrvr] tulip: oops in tulip_interrupt when hibernating with swsusp/suspend2 2008-05-30 22:10:11 -04:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-05-26 10:14:02 -07:00
wan WAN: protect HDLC proto list while insmod/rmmod 2008-05-22 06:26:32 -04:00
wireless USB ID for Philips CPWUA054/00 Wireless USB Adapter 11g 2008-06-04 15:57:11 -04:00
3c59x.c 3c59x: use netstats in net_device structure 2008-05-06 12:22:11 -04:00
3c501.c 3c501: Further coding style fixes 2008-03-17 08:11:03 -04:00
3c501.h
3c503.c
3c503.h
3c505.c 3c505: use netstats in net_device structure 2008-04-29 01:55:11 -04:00
3c505.h 3c505: use netstats in net_device structure 2008-04-29 01:55:11 -04:00
3c507.c
3c509.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-05-26 10:14:02 -07:00
3c515.c 3c515: use netstats in net_device structure 2008-04-29 01:55:14 -04:00
3c523.c
3c523.h
3c527.c Convert asm/semaphore.h users to linux/semaphore.h 2008-04-18 22:22:54 -04:00
3c527.h
7990.c
7990.h
8139cp.c
8139too.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
8390.c net: fix returning void-valued expression warnings 2008-05-01 02:47:38 -07:00
8390.h
82596.c m68k: Some network drivers do not check the platform 2008-05-18 13:28:49 -07:00
a2065.c
a2065.h
ac3200.c
acenic_firmware.h
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c m68k: Some network drivers do not check the platform 2008-05-18 13:28:49 -07:00
ariadne.c
ariadne.h
at1700.c /drivers/net/at1700.c replaced init_module&cleanup_module with module_init&module_exit 2008-03-17 07:49:27 -04:00
atarilance.c /drivers/net/atarilance.c replaced init_module&cleanup_module with module_init&module_exit 2008-03-17 07:49:28 -04:00
atp.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
atp.h
au1000_eth.c au1000_eth: remove useless check 2008-05-22 06:20:14 -04:00
au1000_eth.h
ax88796.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
b44.c ssb: Fix usage of struct device used for DMAing 2008-04-15 15:04:35 -04:00
b44.h
bfin_mac.c Blackfin EMAC Driver: Removed duplicated include <linux/ethtool.h> 2008-05-22 06:20:11 -04:00
bfin_mac.h Blackfin EMAC Driver: code cleanup 2008-04-29 01:56:14 -04:00
bmac.c
bmac.h
bnx2_fw2.h bnx2: Update RV2P firmware for 5709. 2008-05-02 16:57:59 -07:00
bnx2_fw.h
bnx2.c bnx2: Update version to 1.7.5. 2008-05-02 16:58:18 -07:00
bnx2.h
bnx2x_fw_defs.h
bnx2x_hsi.h
bnx2x_init_values.h
bnx2x_init.h
bnx2x_reg.h
bnx2x.c BNX2X: Correct bringing chip out of reset 2008-04-09 15:25:46 -07:00
bnx2x.h
bsd_comp.c
cassini.c cassini: Only use chip checksum for ipv4 packets. 2008-05-21 17:05:34 -07:00
cassini.h
cpmac.c cpmac bugfixes and enhancements 2008-05-22 06:20:02 -04:00
cs89x0.c [netdrvr] CS89X0: Add cleanup for dma after fail 2008-05-30 22:07:11 -04:00
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h
dm9000.c [netdrvr] dm9000: use delayed work to update mii phy state fix 2008-05-22 06:03:28 -04:00
dm9000.h
dummy.c
e100.c net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
e2100.c
eepro100.c
eepro.c net: eepro autoport typo 2008-04-29 01:56:01 -04:00
eexpress.c [netdrvr] eexpress: IPv6 fails - multicast problems 2008-05-06 12:22:34 -04:00
eexpress.h
enc28j60_hw.h
enc28j60.c
epic100.c epic100 endianness annotations and fixes 2008-03-17 07:56:38 -04:00
eql.c
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
fec_mpc52xx.c [POWERPC] mpc5200: Allow for fixed speed MII configurations 2008-05-01 11:05:58 -06:00
fec_mpc52xx.h [POWERPC] mpc5200: Allow for fixed speed MII configurations 2008-05-01 11:05:58 -06:00
fec.c m68knommu: fix FEC driver locking 2008-05-01 08:08:36 -07:00
fec.h m68knommu: fix ColdFire 5272 fec driver hash registers 2008-05-01 08:08:36 -07:00
forcedeth.c [netdrvr] forcedeth: Restore multicast settings on resume 2008-05-22 06:18:47 -04:00
gianfar_ethtool.c
gianfar_mii.c [netdrvr] gianfar: Determine TBIPA value dynamically 2008-04-29 01:57:57 -04:00
gianfar_mii.h [netdrvr] gianfar: Determine TBIPA value dynamically 2008-04-29 01:57:57 -04:00
gianfar_sysfs.c gianfar: Fix a locking bug in gianfar's sysfs code 2008-05-06 12:01:34 -04:00
gianfar.c gianfar: Fix a bug where the pointer never moves for dma_unmap... 2008-05-13 01:31:38 -04:00
gianfar.h gianfar: Fix a locking bug in gianfar's sysfs code 2008-05-06 12:01:34 -04:00
hamachi.c net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
hp100.c
hp100.h
hp-plus.c
hp.c
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c netdev: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
ibmveth.h
ifb.c [NET] ifb: set separate lockdep classes for queue locks 2008-03-20 17:05:13 -07:00
ioc3-eth.c [IOC3] Fix section missmatch 2008-03-17 08:11:41 -04:00
ipg.c drivers/net/ipg.c: remove unused variable 2008-03-17 07:56:42 -04:00
ipg.h
isa-skeleton.c
iseries_veth.c [POWERPC] properly declare onstack completion in iseries veth 2008-04-17 07:46:11 +10:00
jazzsonic.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
Kconfig missing dependencies on HAS_DMA 2008-05-21 16:55:59 -07:00
korina.c korina: misc cleanup 2008-04-25 02:08:51 -04:00
lance.c
lasi_82596.c
lib8390.c
lib82596.c
LICENSE.SRC
lne390.c
loopback.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
lp486e.c
mac89x0.c m68k: Some network drivers do not check the platform 2008-05-18 13:28:49 -07:00
mac8390.c
macb.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
macb.h
mace.c
mace.h
macmace.c m68k: Some network drivers do not check the platform 2008-05-18 13:28:49 -07:00
macsonic.c
macvlan.c macvlan: Fix memleak on device removal/crash on module removal 2008-05-08 01:13:31 -07:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-30 08:45:48 -07:00
meth.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
meth.h
mii.c
mipsnet.c
mv643xx_eth.c mv643xx_eth: inter-mv643xx SMI port sharing 2008-04-28 21:17:07 -07:00
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c natsemi: fix MMIO for PPC 44x platforms 2008-04-17 15:31:31 -04:00
ne2.c
ne2k-pci.c more misannotations: ne2k-pci 2008-03-17 07:56:33 -04:00
ne3210.c
ne-h8300.c
ne.c
netconsole.c netconsole: only set CON_PRINTBUFFER if the user specifies a netconsole 2008-04-15 00:49:04 -07:00
netx-eth.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
ni52.c ni52: more unbreaking 2008-03-26 00:18:04 -04:00
ni52.h ni52: unbreak scp_struct 2008-03-26 00:18:00 -04:00
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c niu: Determine the # of ports from the card's VPD data 2008-05-12 03:10:59 -07:00
niu.h niu: Determine the # of ports from the card's VPD data 2008-05-12 03:10:59 -07:00
ns83820.c
pasemi_mac_ethtool.c
pasemi_mac.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-04-21 15:50:49 -07:00
pasemi_mac.h
pci-skeleton.c
pcnet32.c pcnet32: fix warning 2008-05-22 06:03:29 -04:00
plip.c plip: replace spin_lock_irq with spin_lock_irqsave in irq context 2008-04-01 11:16:04 -07:00
ppp_async.c tty: add throttle/unthrottle helpers 2008-04-30 08:29:47 -07:00
ppp_deflate.c
ppp_generic.c ppp: Do not free not yet unregistered net device. 2008-05-13 23:51:18 -07:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c tty: add throttle/unthrottle helpers 2008-04-30 08:29:47 -07:00
pppoe.c netdev: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
pppol2tp.c l2tp: Fix possible oops if transmitting or receiving when tunnel goes down 2008-06-04 15:54:07 -07:00
pppox.c
ps3_gelic_net.c [POWERPC] PS3: Gelic network driver Wake-on-LAN support 2008-04-01 20:43:08 +11:00
ps3_gelic_net.h [POWERPC] PS3: Gelic network driver Wake-on-LAN support 2008-04-01 20:43:08 +11:00
ps3_gelic_wireless.c PS3: gelic: fix memory leak 2008-05-12 21:44:41 -04:00
ps3_gelic_wireless.h
qla3xxx.c qla3xxx: convert byte order of constant instead of variable 2008-03-26 00:19:43 -04:00
qla3xxx.h
r6040.c r6040 endianness fixes 2008-03-17 07:56:27 -04:00
r8169.c r8169: fix oops in r8169_get_mac_version 2008-04-17 22:48:41 +02:00
rionet.c [RAPIDIO] Auto-probe the RapidIO system size 2008-04-29 19:40:28 +10:00
rrunner.c
rrunner.h
s2io-regs.h S2io: Added napi support when MSIX is enabled. 2008-05-22 06:26:21 -04:00
s2io.c S2io: Version update for napi and MSI-X patches 2008-05-22 06:26:22 -04:00
s2io.h S2io: Added napi support when MSIX is enabled. 2008-05-22 06:26:21 -04:00
saa9730.c
saa9730.h
sb1000.c sb1000.c: make const arrays static 2008-04-16 20:41:44 -04:00
sb1250-mac.c sb1250: use netdev_alloc_skb 2008-05-22 06:18:55 -04:00
sc92031.c sc92031: remove bogus unlikely() 2008-05-30 22:07:17 -04:00
seeq8005.c
seeq8005.h
sgiseeq.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
sgiseeq.h
sis190.c sis190: account for Tx errors 2008-04-27 18:19:08 +02:00
sis900.c
sis900.h
skge.c netxen, phy/marvell, skge: minor checkpatch fixes 2008-03-25 23:53:24 -04:00
skge.h
sky2.c sky2: restore vlan acceleration on reset 2008-05-22 05:59:36 -04:00
sky2.h sky2: fix simple define thinko 2008-05-13 01:31:44 -04:00
slhc.c
slip.c tty: The big operations rework 2008-04-30 08:29:47 -07:00
slip.h
smc91x.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
smc91x.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
smc911x.c smc911x: test after postfix decrement fails in smc911x_{reset,drop_pkt} 2008-04-25 02:08:55 -04:00
smc911x.h
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
sni_82596.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c spidernet: revise link status logging 2008-04-16 20:06:50 -04:00
spider_net.h spidernet: change interrupt masks 2008-04-16 20:06:50 -04:00
starfire_firmware.h
starfire_firmware.pl
starfire.c [NET]: Undo code bloat in hot paths due to print_mac(). 2008-04-08 16:50:44 -07:00
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c m68k: Some network drivers do not check the platform 2008-05-18 13:28:49 -07:00
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c [SUNGEM]: Fix NAPI assertion failure. 2008-03-23 03:35:12 -07:00
sungem.h
sunhme.c sunhme: Cleanup use of deprecated calls to save_and_cli and restore_flags. 2008-06-04 12:06:28 -07:00
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c tc35815: Statistics cleanup 2008-04-17 15:31:31 -04:00
tehuti_fw.h
tehuti.c drivers/net/tehuti: use proper capability check for raw IO access 2008-04-29 11:45:16 -07:00
tehuti.h
tg3.c tg3: Update version to 3.92 2008-05-02 16:49:50 -07:00
tg3.h tg3: Add link state reporting to UMP firmware 2008-05-02 16:49:29 -07:00
tlan.c
tlan.h
tsi108_eth.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
tsi108_eth.h
tun.c tun: Multicast handling in tun_chr_ioctl() needs proper locking. 2008-04-24 03:44:43 -07:00
typhoon-firmware.h
typhoon.c [netdrvr] typhoon: typhoon_resume - remove call to start_queue 2008-04-25 02:08:08 -04:00
typhoon.h
ucc_geth_ethtool.c ucc_geth_ethtool: Add a missing HW stats counter 2008-05-30 22:07:24 -04:00
ucc_geth_mii.c ucc_geth: Fix a bunch of sparse warnings 2008-05-06 12:02:08 -04:00
ucc_geth_mii.h
ucc_geth.c ucc_geth: Fix arguments to dma map/unmap functions 2008-05-22 06:19:24 -04:00
ucc_geth.h ucc_geth: Fix a bunch of sparse warnings 2008-05-06 12:02:08 -04:00
veth.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
via-rhine.c
via-velocity.c via-velocity: fix vlan receipt 2008-04-25 02:45:23 -04:00
via-velocity.h
virtio_net.c virtio: fix delayed xmit of packet and freeing of old packets. 2008-05-30 22:07:21 -04:00
wd.c
xen-netfront.c NETFRONT: Use __skb_queue_purge() 2008-05-22 14:01:03 -04:00
yellowfin.c net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
znet.c
zorro8390.c