diff options
| author | Ursula Braun <[email protected]> | 2017-04-10 12:58:01 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2017-04-12 03:01:14 +0000 |
| commit | 46c28dbd4c23c3f7fa37f5ea48772af79c9cc40e (patch) | |
| tree | 46c18228dafa080d9a7c9ee72edd7ea4f7a6e6b3 /net/tipc | |
| parent | net/smc: always call the POLL_IN part of sk_wake_async (diff) | |
| download | kernel-46c28dbd4c23c3f7fa37f5ea48772af79c9cc40e.tar.gz kernel-46c28dbd4c23c3f7fa37f5ea48772af79c9cc40e.zip | |
net/smc: no socket state changes in tasklet context
Several state changes occur during SMC socket closing. Currently
state changes triggered locally occur in process context with
lock_sock() taken while state changes triggered by peer occur in
tasklet context with bh_lock_sock() taken. bh_lock_sock() does not
wait till a lock_sock(() task in process context is finished. This
may lead to races in socket state transitions resulting in dangling
SMC-sockets, or it may lead to duplicate SMC socket freeing.
This patch introduces a closing worker to run all state changes under
lock_sock().
Signed-off-by: Ursula Braun <[email protected]>
Reviewed-by: Thomas Richter <[email protected]>
Reported-by: Dave Jones <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/tipc')
0 files changed, 0 insertions, 0 deletions
