diff options
author | Tom Parkin <tparkin@katalix.com> | 2013-01-31 18:43:00 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-02-05 14:20:30 -0500 |
commit | f8ccac0e44934ff9414b31cc3167a5c828afec73 (patch) | |
tree | ec40a75d99912502d4bbb3df76f26d8aea96f236 /net/l2tp/l2tp_core.h | |
parent | 188d1f76d0dd3715ceeadfa31376867c3395eb41 (diff) |
l2tp: put tunnel socket release on a workqueue
To allow l2tp_tunnel_delete to be called from an atomic context, place the
tunnel socket release calls on a workqueue for asynchronous execution.
Tunnel memory is eventually freed in the tunnel socket destructor.
Signed-off-by: Tom Parkin <tparkin@katalix.com>
Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/l2tp/l2tp_core.h')
-rw-r--r-- | net/l2tp/l2tp_core.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/l2tp/l2tp_core.h b/net/l2tp/l2tp_core.h index e62204cad4fe..8eb8f1d47f3a 100644 --- a/net/l2tp/l2tp_core.h +++ b/net/l2tp/l2tp_core.h | |||
@@ -191,6 +191,8 @@ struct l2tp_tunnel { | |||
191 | int fd; /* Parent fd, if tunnel socket | 191 | int fd; /* Parent fd, if tunnel socket |
192 | * was created by userspace */ | 192 | * was created by userspace */ |
193 | 193 | ||
194 | struct work_struct del_work; | ||
195 | |||
194 | uint8_t priv[0]; /* private data */ | 196 | uint8_t priv[0]; /* private data */ |
195 | }; | 197 | }; |
196 | 198 | ||