kernel-hacking-2024-linux-s.../net/atm
Krzysztof Mazur 3ac108006f pppoatm: take ATM socket lock in pppoatm_send()
The pppoatm_send() does not take any lock that will prevent concurrent
vcc_sendmsg(). This causes two problems:

	- there is no locking between checking the send queue size
	  with atm_may_send() and incrementing sk_wmem_alloc,
	  and the real queue size can be a little higher than sk_sndbuf

	- the vcc->sendmsg() can be called concurrently. I'm not sure
	  if it's allowed. Some drivers (eni, nicstar, ...) seem
	  to assume it will never happen.

Now pppoatm_send() takes ATM socket lock, the same that is used
in vcc_sendmsg() and other ATM socket functions. The pppoatm_send()
is called with BH disabled, so bh_lock_sock() is used instead
of lock_sock().

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
Cc: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2012-11-28 00:37:05 +00:00
..
addr.c
addr.h
atm_misc.c
atm_sysfs.c
br2684.c atm: br2684: Fix excessive queue bloat 2012-11-26 17:13:56 -05:00
clip.c
common.c atm: add owner of push() callback to atmvcc 2012-11-28 00:36:48 +00:00
common.h
ioctl.c
Kconfig
lec.c net: Remove casts to same type 2012-06-04 11:45:11 -04:00
lec.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
lec_arpc.h
Makefile
mpc.c
mpc.h
mpoa_caches.c
mpoa_caches.h
mpoa_proc.c
pppoatm.c pppoatm: take ATM socket lock in pppoatm_send() 2012-11-28 00:37:05 +00:00
proc.c
protocols.h
pvc.c atm: fix info leak via getsockname() 2012-08-15 21:36:30 -07:00
raw.c
resources.c net🏧fix up ENOIOCTLCMD error handling 2012-08-31 16:14:33 -04:00
resources.h
signaling.c
signaling.h
svc.c