aboutsummaryrefslogtreecommitdiffstats
path: root/net/atm
diff options
context:
space:
mode:
Diffstat (limited to 'net/atm')
-rw-r--r--net/atm/raw.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/net/atm/raw.c b/net/atm/raw.c
index fb8a9497653c..d0c4bd047dc4 100644
--- a/net/atm/raw.c
+++ b/net/atm/raw.c
@@ -18,7 +18,7 @@
18 * SKB == NULL indicates that the link is being closed 18 * SKB == NULL indicates that the link is being closed
19 */ 19 */
20 20
21static void atm_push_raw(struct atm_vcc *vcc,struct sk_buff *skb) 21static void atm_push_raw(struct atm_vcc *vcc, struct sk_buff *skb)
22{ 22{
23 if (skb) { 23 if (skb) {
24 struct sock *sk = sk_atm(vcc); 24 struct sock *sk = sk_atm(vcc);
@@ -28,8 +28,7 @@ static void atm_push_raw(struct atm_vcc *vcc,struct sk_buff *skb)
28 } 28 }
29} 29}
30 30
31 31static void atm_pop_raw(struct atm_vcc *vcc, struct sk_buff *skb)
32static void atm_pop_raw(struct atm_vcc *vcc,struct sk_buff *skb)
33{ 32{
34 struct sock *sk = sk_atm(vcc); 33 struct sock *sk = sk_atm(vcc);
35 34
@@ -40,24 +39,22 @@ static void atm_pop_raw(struct atm_vcc *vcc,struct sk_buff *skb)
40 sk->sk_write_space(sk); 39 sk->sk_write_space(sk);
41} 40}
42 41
43 42static int atm_send_aal0(struct atm_vcc *vcc, struct sk_buff *skb)
44static int atm_send_aal0(struct atm_vcc *vcc,struct sk_buff *skb)
45{ 43{
46 /* 44 /*
47 * Note that if vpi/vci are _ANY or _UNSPEC the below will 45 * Note that if vpi/vci are _ANY or _UNSPEC the below will
48 * still work 46 * still work
49 */ 47 */
50 if (!capable(CAP_NET_ADMIN) && 48 if (!capable(CAP_NET_ADMIN) &&
51 (((u32 *) skb->data)[0] & (ATM_HDR_VPI_MASK | ATM_HDR_VCI_MASK)) != 49 (((u32 *)skb->data)[0] & (ATM_HDR_VPI_MASK | ATM_HDR_VCI_MASK)) !=
52 ((vcc->vpi << ATM_HDR_VPI_SHIFT) | (vcc->vci << ATM_HDR_VCI_SHIFT))) 50 ((vcc->vpi << ATM_HDR_VPI_SHIFT) |
53 { 51 (vcc->vci << ATM_HDR_VCI_SHIFT))) {
54 kfree_skb(skb); 52 kfree_skb(skb);
55 return -EADDRNOTAVAIL; 53 return -EADDRNOTAVAIL;
56 } 54 }
57 return vcc->dev->ops->send(vcc,skb); 55 return vcc->dev->ops->send(vcc, skb);
58} 56}
59 57
60
61int atm_init_aal0(struct atm_vcc *vcc) 58int atm_init_aal0(struct atm_vcc *vcc)
62{ 59{
63 vcc->push = atm_push_raw; 60 vcc->push = atm_push_raw;
@@ -67,7 +64,6 @@ int atm_init_aal0(struct atm_vcc *vcc)
67 return 0; 64 return 0;
68} 65}
69 66
70
71int atm_init_aal34(struct atm_vcc *vcc) 67int atm_init_aal34(struct atm_vcc *vcc)
72{ 68{
73 vcc->push = atm_push_raw; 69 vcc->push = atm_push_raw;
@@ -77,7 +73,6 @@ int atm_init_aal34(struct atm_vcc *vcc)
77 return 0; 73 return 0;
78} 74}
79 75
80
81int atm_init_aal5(struct atm_vcc *vcc) 76int atm_init_aal5(struct atm_vcc *vcc)
82{ 77{
83 vcc->push = atm_push_raw; 78 vcc->push = atm_push_raw;
@@ -86,6 +81,4 @@ int atm_init_aal5(struct atm_vcc *vcc)
86 vcc->send = vcc->dev->ops->send; 81 vcc->send = vcc->dev->ops->send;
87 return 0; 82 return 0;
88} 83}
89
90
91EXPORT_SYMBOL(atm_init_aal5); 84EXPORT_SYMBOL(atm_init_aal5);