summaryrefslogtreecommitdiffstats
path: root/include/net/iucv
diff options
context:
space:
mode:
authorUrsula Braun <braunu@de.ibm.com>2007-07-15 04:04:25 +0200
committerDavid S. Miller <davem@davemloft.net>2007-07-15 04:04:25 +0200
commitfebca281f677a775c61cd0572c2f35e4ead9e7d5 (patch)
tree64a58deba476ff3dbc7468d6d2e8e33e1351bf68 /include/net/iucv
parent[AF_IUCV]: Avoid deadlock between iucv_path_connect and tasklet. (diff)
downloadlinux-febca281f677a775c61cd0572c2f35e4ead9e7d5.tar.xz
linux-febca281f677a775c61cd0572c2f35e4ead9e7d5.zip
[AF_IUCV]: Add lock when updating accept_q
The accept_queue of an af_iucv socket will be corrupted, if adding and deleting of entries in this queue occurs at the same time (connect request from one client, while accept call is processed for another client). Solution: add locking when updating accept_q Signed-off-by: Ursula Braun <braunu@de.ibm.com> Acked-by: Frank Pavlic <fpavlic@de.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/iucv')
-rw-r--r--include/net/iucv/af_iucv.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h
index f9bd11be1891..b6c468cd7f5b 100644
--- a/include/net/iucv/af_iucv.h
+++ b/include/net/iucv/af_iucv.h
@@ -60,6 +60,7 @@ struct iucv_sock {
char dst_user_id[8];
char dst_name[8];
struct list_head accept_q;
+ spinlock_t accept_q_lock;
struct sock *parent;
struct iucv_path *path;
struct sk_buff_head send_skb_q;