diff options
author | Jennifer Hunt <jenhunt@us.ibm.com> | 2007-05-04 15:22:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-05-04 15:22:07 -0400 |
commit | 561e036006dc4078446815613781c6c33441dd3b (patch) | |
tree | 1c1af5a95b584841f47e7e90813df1d5fe51a7e0 /include/net/iucv | |
parent | 9e71efcd6d659afb9d390eea69b558a7432ba23e (diff) |
[AF_IUCV]: Implementation of a skb backlog queue
With the inital implementation we missed to implement a skb backlog
queue . The result is that socket receive processing tossed packets.
Since AF_IUCV connections are working synchronously it leads to
connection hangs. Problems with read, close and select also occured.
Using a skb backlog queue is fixing all of these problems .
Signed-off-by: Jennifer Hunt <jenhunt@us.ibm.com>
Signed-off-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.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h index 04d1abb72d25..f9bd11be1891 100644 --- a/include/net/iucv/af_iucv.h +++ b/include/net/iucv/af_iucv.h | |||
@@ -28,6 +28,7 @@ enum { | |||
28 | IUCV_LISTEN, | 28 | IUCV_LISTEN, |
29 | IUCV_SEVERED, | 29 | IUCV_SEVERED, |
30 | IUCV_DISCONN, | 30 | IUCV_DISCONN, |
31 | IUCV_CLOSING, | ||
31 | IUCV_CLOSED | 32 | IUCV_CLOSED |
32 | }; | 33 | }; |
33 | 34 | ||
@@ -62,6 +63,7 @@ struct iucv_sock { | |||
62 | struct sock *parent; | 63 | struct sock *parent; |
63 | struct iucv_path *path; | 64 | struct iucv_path *path; |
64 | struct sk_buff_head send_skb_q; | 65 | struct sk_buff_head send_skb_q; |
66 | struct sk_buff_head backlog_skb_q; | ||
65 | unsigned int send_tag; | 67 | unsigned int send_tag; |
66 | }; | 68 | }; |
67 | 69 | ||