https://github.com/torvalds/linux
Revision 24b95685ffcdb3dc28f64b9e8af6ea3e8360fbc5 authored by James Chapman on 04 June 2008, 22:54:07 UTC, committed by David S. Miller on 04 June 2008, 22:54:07 UTC
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>
1 parent 293ad60
History
Tip revision: 24b95685ffcdb3dc28f64b9e8af6ea3e8360fbc5 authored by James Chapman on 04 June 2008, 22:54:07 UTC
l2tp: Fix possible oops if transmitting or receiving when tunnel goes down
Tip revision: 24b9568
File Mode Size
lzo
reed_solomon
zlib_deflate
zlib_inflate
.gitignore -rw-r--r-- 51 bytes
Kconfig -rw-r--r-- 2.9 KB
Kconfig.debug -rw-r--r-- 23.4 KB
Kconfig.kgdb -rw-r--r-- 1.7 KB
Makefile -rw-r--r-- 2.5 KB
argv_split.c -rw-r--r-- 1.8 KB
audit.c -rw-r--r-- 1.2 KB
bitmap.c -rw-r--r-- 30.0 KB
bitrev.c -rw-r--r-- 2.1 KB
bug.c -rw-r--r-- 4.1 KB
bust_spinlocks.c -rw-r--r-- 588 bytes
check_signature.c -rw-r--r-- 599 bytes
cmdline.c -rw-r--r-- 3.5 KB
cpumask.c -rw-r--r-- 565 bytes
crc-ccitt.c -rw-r--r-- 3.0 KB
crc-itu-t.c -rw-r--r-- 2.8 KB
crc16.c -rw-r--r-- 2.8 KB
crc32.c -rw-r--r-- 14.9 KB
crc32defs.h -rw-r--r-- 1.0 KB
crc7.c -rw-r--r-- 2.3 KB
ctype.c -rw-r--r-- 1.3 KB
debug_locks.c -rw-r--r-- 1.1 KB
debugobjects.c -rw-r--r-- 21.0 KB
dec_and_lock.c -rw-r--r-- 806 bytes
devres.c -rw-r--r-- 7.7 KB
div64.c -rw-r--r-- 2.0 KB
dump_stack.c -rw-r--r-- 290 bytes
extable.c -rw-r--r-- 1.9 KB
fault-inject.c -rw-r--r-- 7.9 KB
find_next_bit.c -rw-r--r-- 6.4 KB
gen_crc32table.c -rw-r--r-- 1.8 KB
genalloc.c -rw-r--r-- 5.3 KB
halfmd4.c -rw-r--r-- 2.0 KB
hexdump.c -rw-r--r-- 6.1 KB
hweight.c -rw-r--r-- 1.6 KB
idr.c -rw-r--r-- 19.3 KB
inflate.c -rw-r--r-- 37.8 KB
int_sqrt.c -rw-r--r-- 533 bytes
iomap.c -rw-r--r-- 7.4 KB
iomap_copy.c -rw-r--r-- 2.1 KB
iommu-helper.c -rw-r--r-- 1.8 KB
ioremap.c -rw-r--r-- 2.1 KB
irq_regs.c -rw-r--r-- 578 bytes
kasprintf.c -rw-r--r-- 680 bytes
kernel_lock.c -rw-r--r-- 2.9 KB
klist.c -rw-r--r-- 7.5 KB
kobject.c -rw-r--r-- 20.5 KB
kobject_uevent.c -rw-r--r-- 8.0 KB
kref.c -rw-r--r-- 1.9 KB
libcrc32c.c -rw-r--r-- 6.4 KB
list_debug.c -rw-r--r-- 2.0 KB
lmb.c -rw-r--r-- 11.6 KB
locking-selftest-hardirq.h -rw-r--r-- 207 bytes
locking-selftest-mutex.h -rw-r--r-- 120 bytes
locking-selftest-rlock-hardirq.h -rw-r--r-- 74 bytes
locking-selftest-rlock-softirq.h -rw-r--r-- 74 bytes
locking-selftest-rlock.h -rw-r--r-- 158 bytes
locking-selftest-rsem.h -rw-r--r-- 163 bytes
locking-selftest-softirq.h -rw-r--r-- 207 bytes
locking-selftest-spin-hardirq.h -rw-r--r-- 73 bytes
locking-selftest-spin-softirq.h -rw-r--r-- 73 bytes
locking-selftest-spin.h -rw-r--r-- 118 bytes
locking-selftest-wlock-hardirq.h -rw-r--r-- 74 bytes
locking-selftest-wlock-softirq.h -rw-r--r-- 74 bytes
locking-selftest-wlock.h -rw-r--r-- 158 bytes
locking-selftest-wsem.h -rw-r--r-- 163 bytes
locking-selftest.c -rw-r--r-- 28.6 KB
parser.c -rw-r--r-- 6.0 KB
percpu_counter.c -rw-r--r-- 3.1 KB
plist.c -rw-r--r-- 2.8 KB
prio_heap.c -rw-r--r-- 1.4 KB
prio_tree.c -rw-r--r-- 12.2 KB
proportions.c -rw-r--r-- 9.3 KB
radix-tree.c -rw-r--r-- 27.3 KB
random32.c -rw-r--r-- 3.7 KB
ratelimit.c -rw-r--r-- 1.3 KB
rbtree.c -rw-r--r-- 8.6 KB
reciprocal_div.c -rw-r--r-- 159 bytes
rwsem-spinlock.c -rw-r--r-- 6.8 KB
rwsem.c -rw-r--r-- 6.4 KB
scatterlist.c -rw-r--r-- 9.2 KB
sha1.c -rw-r--r-- 2.4 KB
smp_processor_id.c -rw-r--r-- 1.1 KB
sort.c -rw-r--r-- 2.5 KB
spinlock_debug.c -rw-r--r-- 6.8 KB
string.c -rw-r--r-- 13.6 KB
swiotlb.c -rw-r--r-- 24.1 KB
textsearch.c -rw-r--r-- 9.3 KB
ts_bm.c -rw-r--r-- 4.9 KB
ts_fsm.c -rw-r--r-- 10.5 KB
ts_kmp.c -rw-r--r-- 3.8 KB
vsprintf.c -rw-r--r-- 26.0 KB

back to top