aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorIan McDonald <ian.mcdonald@jandi.co.nz>2006-11-10 10:09:10 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:22:02 -0500
commitf45b3ec481581f24719d8ab0bc812c02fcedc2bc (patch)
treefd3907c220fe75055494466f1f3664a13ac095d4 /net
parentfec5b80e4924f638418c21b09165dce8b79fee86 (diff)
[DCCP]: Fix logfile overflow
This patch fixes data being spewed into the logs continually. As the code stood if there was a large queue and long delays timeo would go down to zero and never get reset. This fixes it by resetting timeo. Put constant into header as well. Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net')
-rw-r--r--net/dccp/dccp.h2
-rw-r--r--net/dccp/output.c8
2 files changed, 7 insertions, 3 deletions
diff --git a/net/dccp/dccp.h b/net/dccp/dccp.h
index 3d4b4a908d11..7b859a723826 100644
--- a/net/dccp/dccp.h
+++ b/net/dccp/dccp.h
@@ -62,6 +62,8 @@ extern void dccp_time_wait(struct sock *sk, int state, int timeo);
62 62
63#define DCCP_RTO_MAX ((unsigned)(120 * HZ)) /* FIXME: using TCP value */ 63#define DCCP_RTO_MAX ((unsigned)(120 * HZ)) /* FIXME: using TCP value */
64 64
65#define DCCP_XMIT_TIMEO 30000 /* Time/msecs for blocking transmit per packet */
66
65/* is seq1 < seq2 ? */ 67/* is seq1 < seq2 ? */
66static inline int before48(const u64 seq1, const u64 seq2) 68static inline int before48(const u64 seq1, const u64 seq2)
67{ 69{
diff --git a/net/dccp/output.c b/net/dccp/output.c
index 1ae2248557c6..51654975e8ea 100644
--- a/net/dccp/output.c
+++ b/net/dccp/output.c
@@ -249,8 +249,8 @@ void dccp_write_xmit(struct sock *sk, int block)
249{ 249{
250 struct dccp_sock *dp = dccp_sk(sk); 250 struct dccp_sock *dp = dccp_sk(sk);
251 struct sk_buff *skb; 251 struct sk_buff *skb;
252 long timeo = 30000; /* If a packet is taking longer than 2 secs 252 long timeo = DCCP_XMIT_TIMEO; /* If a packet is taking longer than
253 we have other issues */ 253 this we have other issues */
254 254
255 while ((skb = skb_peek(&sk->sk_write_queue))) { 255 while ((skb = skb_peek(&sk->sk_write_queue))) {
256 int err = ccid_hc_tx_send_packet(dp->dccps_hc_tx_ccid, sk, skb, 256 int err = ccid_hc_tx_send_packet(dp->dccps_hc_tx_ccid, sk, skb,
@@ -261,8 +261,10 @@ void dccp_write_xmit(struct sock *sk, int block)
261 sk_reset_timer(sk, &dp->dccps_xmit_timer, 261 sk_reset_timer(sk, &dp->dccps_xmit_timer,
262 msecs_to_jiffies(err)+jiffies); 262 msecs_to_jiffies(err)+jiffies);
263 break; 263 break;
264 } else 264 } else {
265 err = dccp_wait_for_ccid(sk, skb, &timeo); 265 err = dccp_wait_for_ccid(sk, skb, &timeo);
266 timeo = DCCP_XMIT_TIMEO;
267 }
266 if (err) { 268 if (err) {
267 printk(KERN_CRIT "%s:err at dccp_wait_for_ccid" 269 printk(KERN_CRIT "%s:err at dccp_wait_for_ccid"
268 " %d\n", __FUNCTION__, err); 270 " %d\n", __FUNCTION__, err);