atmtcp.c (62910554656cdcd6b6f84a5154c4155aae4ca231) | atmtcp.c (aa395145165cb06a0d0885221bbe0ce4a564391d) |
---|---|
1/* drivers/atm/atmtcp.c - ATM over TCP "device" driver */ 2 3/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */ 4 5 6#include <linux/module.h> 7#include <linux/wait.h> 8#include <linux/atmdev.h> --- 54 unchanged lines hidden (view full) --- 63 new_msg = (struct atmtcp_control *) skb_put(skb,sizeof(*new_msg)); 64 *new_msg = *msg; 65 new_msg->hdr.length = ATMTCP_HDR_MAGIC; 66 new_msg->type = type; 67 memset(&new_msg->vcc,0,sizeof(atm_kptr_t)); 68 *(struct atm_vcc **) &new_msg->vcc = vcc; 69 old_test = test_bit(flag,&vcc->flags); 70 out_vcc->push(out_vcc,skb); | 1/* drivers/atm/atmtcp.c - ATM over TCP "device" driver */ 2 3/* Written 1997-2000 by Werner Almesberger, EPFL LRC/ICA */ 4 5 6#include <linux/module.h> 7#include <linux/wait.h> 8#include <linux/atmdev.h> --- 54 unchanged lines hidden (view full) --- 63 new_msg = (struct atmtcp_control *) skb_put(skb,sizeof(*new_msg)); 64 *new_msg = *msg; 65 new_msg->hdr.length = ATMTCP_HDR_MAGIC; 66 new_msg->type = type; 67 memset(&new_msg->vcc,0,sizeof(atm_kptr_t)); 68 *(struct atm_vcc **) &new_msg->vcc = vcc; 69 old_test = test_bit(flag,&vcc->flags); 70 out_vcc->push(out_vcc,skb); |
71 add_wait_queue(sk_atm(vcc)->sk_sleep, &wait); | 71 add_wait_queue(sk_sleep(sk_atm(vcc)), &wait); |
72 while (test_bit(flag,&vcc->flags) == old_test) { 73 mb(); 74 out_vcc = PRIV(vcc->dev) ? PRIV(vcc->dev)->vcc : NULL; 75 if (!out_vcc) { 76 error = -EUNATCH; 77 break; 78 } 79 set_current_state(TASK_UNINTERRUPTIBLE); 80 schedule(); 81 } 82 set_current_state(TASK_RUNNING); | 72 while (test_bit(flag,&vcc->flags) == old_test) { 73 mb(); 74 out_vcc = PRIV(vcc->dev) ? PRIV(vcc->dev)->vcc : NULL; 75 if (!out_vcc) { 76 error = -EUNATCH; 77 break; 78 } 79 set_current_state(TASK_UNINTERRUPTIBLE); 80 schedule(); 81 } 82 set_current_state(TASK_RUNNING); |
83 remove_wait_queue(sk_atm(vcc)->sk_sleep, &wait); | 83 remove_wait_queue(sk_sleep(sk_atm(vcc)), &wait); |
84 return error; 85} 86 87 88static int atmtcp_recv_control(const struct atmtcp_control *msg) 89{ 90 struct atm_vcc *vcc = *(struct atm_vcc **) &msg->vcc; 91 --- 8 unchanged lines hidden (view full) --- 100 case ATMTCP_CTRL_CLOSE: 101 change_bit(ATM_VF_ADDR,&vcc->flags); 102 break; 103 default: 104 printk(KERN_ERR "atmtcp_recv_control: unknown type %d\n", 105 msg->type); 106 return -EINVAL; 107 } | 84 return error; 85} 86 87 88static int atmtcp_recv_control(const struct atmtcp_control *msg) 89{ 90 struct atm_vcc *vcc = *(struct atm_vcc **) &msg->vcc; 91 --- 8 unchanged lines hidden (view full) --- 100 case ATMTCP_CTRL_CLOSE: 101 change_bit(ATM_VF_ADDR,&vcc->flags); 102 break; 103 default: 104 printk(KERN_ERR "atmtcp_recv_control: unknown type %d\n", 105 msg->type); 106 return -EINVAL; 107 } |
108 wake_up(sk_atm(vcc)->sk_sleep); | 108 wake_up(sk_sleep(sk_atm(vcc))); |
109 return 0; 110} 111 112 113static void atmtcp_v_dev_close(struct atm_dev *dev) 114{ 115 /* Nothing.... Isn't this simple :-) -- REW */ 116} --- 374 unchanged lines hidden --- | 109 return 0; 110} 111 112 113static void atmtcp_v_dev_close(struct atm_dev *dev) 114{ 115 /* Nothing.... Isn't this simple :-) -- REW */ 116} --- 374 unchanged lines hidden --- |