diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/atm/signaling.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/net/atm/signaling.c b/net/atm/signaling.c index 93ad59a28ef5..31d98b57e1de 100644 --- a/net/atm/signaling.c +++ b/net/atm/signaling.c | |||
@@ -39,25 +39,19 @@ static DECLARE_WAIT_QUEUE_HEAD(sigd_sleep); | |||
39 | static void sigd_put_skb(struct sk_buff *skb) | 39 | static void sigd_put_skb(struct sk_buff *skb) |
40 | { | 40 | { |
41 | #ifdef WAIT_FOR_DEMON | 41 | #ifdef WAIT_FOR_DEMON |
42 | static unsigned long silence; | ||
43 | DECLARE_WAITQUEUE(wait,current); | 42 | DECLARE_WAITQUEUE(wait,current); |
44 | 43 | ||
45 | add_wait_queue(&sigd_sleep,&wait); | 44 | add_wait_queue(&sigd_sleep,&wait); |
46 | while (!sigd) { | 45 | while (!sigd) { |
47 | set_current_state(TASK_UNINTERRUPTIBLE); | 46 | set_current_state(TASK_UNINTERRUPTIBLE); |
48 | if (time_after(jiffies, silence) || silence == 0) { | 47 | DPRINTK("atmsvc: waiting for signaling demon...\n"); |
49 | printk(KERN_INFO "atmsvc: waiting for signaling demon " | ||
50 | "...\n"); | ||
51 | silence = (jiffies+30*HZ)|1; | ||
52 | } | ||
53 | schedule(); | 48 | schedule(); |
54 | } | 49 | } |
55 | current->state = TASK_RUNNING; | 50 | current->state = TASK_RUNNING; |
56 | remove_wait_queue(&sigd_sleep,&wait); | 51 | remove_wait_queue(&sigd_sleep,&wait); |
57 | #else | 52 | #else |
58 | if (!sigd) { | 53 | if (!sigd) { |
59 | if (net_ratelimit()) | 54 | DPRINTK("atmsvc: no signaling demon\n"); |
60 | printk(KERN_WARNING "atmsvc: no signaling demon\n"); | ||
61 | kfree_skb(skb); | 55 | kfree_skb(skb); |
62 | return; | 56 | return; |
63 | } | 57 | } |