diff options
| author | Krzysztof Mazur <[email protected]> | 2012-11-06 23:17:00 +0100 |
|---|---|---|
| committer | David Woodhouse <[email protected]> | 2012-11-28 00:37:05 +0000 |
| commit | 3ac108006fd7f20cb8fc8ea2287f1497bcda00a1 (patch) | |
| tree | 4931009972256abde839087b795c7b9b4926ae36 /tools/perf/scripts | |
| parent | e41faed9cde1acce657f75a0b19a1787e9850d3f (diff) | |
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 <[email protected]>
Cc: Chas Williams - CONTRACTOR <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
Diffstat (limited to 'tools/perf/scripts')
0 files changed, 0 insertions, 0 deletions