aboutsummaryrefslogtreecommitdiffstats
path: root/net/atm
diff options
context:
space:
mode:
Diffstat (limited to 'net/atm')
-rw-r--r--net/atm/signaling.c24
1 files changed, 0 insertions, 24 deletions
diff --git a/net/atm/signaling.c b/net/atm/signaling.c
index 523bce72f698..4fd6af47383a 100644
--- a/net/atm/signaling.c
+++ b/net/atm/signaling.c
@@ -19,36 +19,15 @@
19#include "resources.h" 19#include "resources.h"
20#include "signaling.h" 20#include "signaling.h"
21 21
22#undef WAIT_FOR_DEMON /* #define this if system calls on SVC sockets
23 should block until the demon runs.
24 Danger: may cause nasty hangs if the demon
25 crashes. */
26
27struct atm_vcc *sigd = NULL; 22struct atm_vcc *sigd = NULL;
28#ifdef WAIT_FOR_DEMON
29static DECLARE_WAIT_QUEUE_HEAD(sigd_sleep);
30#endif
31 23
32static void sigd_put_skb(struct sk_buff *skb) 24static void sigd_put_skb(struct sk_buff *skb)
33{ 25{
34#ifdef WAIT_FOR_DEMON
35 DECLARE_WAITQUEUE(wait, current);
36
37 add_wait_queue(&sigd_sleep, &wait);
38 while (!sigd) {
39 set_current_state(TASK_UNINTERRUPTIBLE);
40 pr_debug("atmsvc: waiting for signaling daemon...\n");
41 schedule();
42 }
43 current->state = TASK_RUNNING;
44 remove_wait_queue(&sigd_sleep, &wait);
45#else
46 if (!sigd) { 26 if (!sigd) {
47 pr_debug("atmsvc: no signaling daemon\n"); 27 pr_debug("atmsvc: no signaling daemon\n");
48 kfree_skb(skb); 28 kfree_skb(skb);
49 return; 29 return;
50 } 30 }
51#endif
52 atm_force_charge(sigd, skb->truesize); 31 atm_force_charge(sigd, skb->truesize);
53 skb_queue_tail(&sk_atm(sigd)->sk_receive_queue, skb); 32 skb_queue_tail(&sk_atm(sigd)->sk_receive_queue, skb);
54 sk_atm(sigd)->sk_data_ready(sk_atm(sigd)); 33 sk_atm(sigd)->sk_data_ready(sk_atm(sigd));
@@ -261,8 +240,5 @@ int sigd_attach(struct atm_vcc *vcc)
261 vcc_insert_socket(sk_atm(vcc)); 240 vcc_insert_socket(sk_atm(vcc));
262 set_bit(ATM_VF_META, &vcc->flags); 241 set_bit(ATM_VF_META, &vcc->flags);
263 set_bit(ATM_VF_READY, &vcc->flags); 242 set_bit(ATM_VF_READY, &vcc->flags);
264#ifdef WAIT_FOR_DEMON
265 wake_up(&sigd_sleep);
266#endif
267 return 0; 243 return 0;
268} 244}