diff options
Diffstat (limited to 'net/atm')
| -rw-r--r-- | net/atm/br2684.c | 1 | ||||
| -rw-r--r-- | net/atm/common.c | 30 | ||||
| -rw-r--r-- | net/atm/lec.c | 6 | ||||
| -rw-r--r-- | net/atm/mpc.c | 32 | ||||
| -rw-r--r-- | net/atm/mpoa_caches.c | 20 | ||||
| -rw-r--r-- | net/atm/proc.c | 10 | ||||
| -rw-r--r-- | net/atm/signaling.c | 2 | ||||
| -rw-r--r-- | net/atm/svc.c | 62 |
8 files changed, 51 insertions, 112 deletions
diff --git a/net/atm/br2684.c b/net/atm/br2684.c index d6c7ceaf13e9..6719af6a59fa 100644 --- a/net/atm/br2684.c +++ b/net/atm/br2684.c | |||
| @@ -446,7 +446,6 @@ error: | |||
| 446 | net_dev->stats.rx_errors++; | 446 | net_dev->stats.rx_errors++; |
| 447 | free_skb: | 447 | free_skb: |
| 448 | dev_kfree_skb(skb); | 448 | dev_kfree_skb(skb); |
| 449 | return; | ||
| 450 | } | 449 | } |
| 451 | 450 | ||
| 452 | /* | 451 | /* |
diff --git a/net/atm/common.c b/net/atm/common.c index 97ed94aa0cbc..b43feb1a3995 100644 --- a/net/atm/common.c +++ b/net/atm/common.c | |||
| @@ -90,10 +90,13 @@ static void vcc_sock_destruct(struct sock *sk) | |||
| 90 | 90 | ||
| 91 | static void vcc_def_wakeup(struct sock *sk) | 91 | static void vcc_def_wakeup(struct sock *sk) |
| 92 | { | 92 | { |
| 93 | read_lock(&sk->sk_callback_lock); | 93 | struct socket_wq *wq; |
| 94 | if (sk_has_sleeper(sk)) | 94 | |
| 95 | wake_up(sk->sk_sleep); | 95 | rcu_read_lock(); |
| 96 | read_unlock(&sk->sk_callback_lock); | 96 | wq = rcu_dereference(sk->sk_wq); |
| 97 | if (wq_has_sleeper(wq)) | ||
| 98 | wake_up(&wq->wait); | ||
| 99 | rcu_read_unlock(); | ||
| 97 | } | 100 | } |
| 98 | 101 | ||
| 99 | static inline int vcc_writable(struct sock *sk) | 102 | static inline int vcc_writable(struct sock *sk) |
| @@ -106,16 +109,19 @@ static inline int vcc_writable(struct sock *sk) | |||
| 106 | 109 | ||
| 107 | static void vcc_write_space(struct sock *sk) | 110 | static void vcc_write_space(struct sock *sk) |
| 108 | { | 111 | { |
| 109 | read_lock(&sk->sk_callback_lock); | 112 | struct socket_wq *wq; |
| 113 | |||
| 114 | rcu_read_lock(); | ||
| 110 | 115 | ||
| 111 | if (vcc_writable(sk)) { | 116 | if (vcc_writable(sk)) { |
| 112 | if (sk_has_sleeper(sk)) | 117 | wq = rcu_dereference(sk->sk_wq); |
| 113 | wake_up_interruptible(sk->sk_sleep); | 118 | if (wq_has_sleeper(wq)) |
| 119 | wake_up_interruptible(&wq->wait); | ||
| 114 | 120 | ||
| 115 | sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT); | 121 | sk_wake_async(sk, SOCK_WAKE_SPACE, POLL_OUT); |
| 116 | } | 122 | } |
| 117 | 123 | ||
| 118 | read_unlock(&sk->sk_callback_lock); | 124 | rcu_read_unlock(); |
| 119 | } | 125 | } |
| 120 | 126 | ||
| 121 | static struct proto vcc_proto = { | 127 | static struct proto vcc_proto = { |
| @@ -549,7 +555,7 @@ int vcc_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *m, | |||
| 549 | } | 555 | } |
| 550 | 556 | ||
| 551 | eff = (size+3) & ~3; /* align to word boundary */ | 557 | eff = (size+3) & ~3; /* align to word boundary */ |
| 552 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 558 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 553 | error = 0; | 559 | error = 0; |
| 554 | while (!(skb = alloc_tx(vcc, eff))) { | 560 | while (!(skb = alloc_tx(vcc, eff))) { |
| 555 | if (m->msg_flags & MSG_DONTWAIT) { | 561 | if (m->msg_flags & MSG_DONTWAIT) { |
| @@ -568,9 +574,9 @@ int vcc_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *m, | |||
| 568 | send_sig(SIGPIPE, current, 0); | 574 | send_sig(SIGPIPE, current, 0); |
| 569 | break; | 575 | break; |
| 570 | } | 576 | } |
| 571 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 577 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 572 | } | 578 | } |
| 573 | finish_wait(sk->sk_sleep, &wait); | 579 | finish_wait(sk_sleep(sk), &wait); |
| 574 | if (error) | 580 | if (error) |
| 575 | goto out; | 581 | goto out; |
| 576 | skb->dev = NULL; /* for paths shared with net_device interfaces */ | 582 | skb->dev = NULL; /* for paths shared with net_device interfaces */ |
| @@ -595,7 +601,7 @@ unsigned int vcc_poll(struct file *file, struct socket *sock, poll_table *wait) | |||
| 595 | struct atm_vcc *vcc; | 601 | struct atm_vcc *vcc; |
| 596 | unsigned int mask; | 602 | unsigned int mask; |
| 597 | 603 | ||
| 598 | sock_poll_wait(file, sk->sk_sleep, wait); | 604 | sock_poll_wait(file, sk_sleep(sk), wait); |
| 599 | mask = 0; | 605 | mask = 0; |
| 600 | 606 | ||
| 601 | vcc = ATM_SD(sock); | 607 | vcc = ATM_SD(sock); |
diff --git a/net/atm/lec.c b/net/atm/lec.c index feeaf5718472..d98bde1a0ac8 100644 --- a/net/atm/lec.c +++ b/net/atm/lec.c | |||
| @@ -161,8 +161,6 @@ static void lec_handle_bridge(struct sk_buff *skb, struct net_device *dev) | |||
| 161 | skb_queue_tail(&sk->sk_receive_queue, skb2); | 161 | skb_queue_tail(&sk->sk_receive_queue, skb2); |
| 162 | sk->sk_data_ready(sk, skb2->len); | 162 | sk->sk_data_ready(sk, skb2->len); |
| 163 | } | 163 | } |
| 164 | |||
| 165 | return; | ||
| 166 | } | 164 | } |
| 167 | #endif /* defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) */ | 165 | #endif /* defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) */ |
| 168 | 166 | ||
| @@ -640,7 +638,6 @@ static void lec_set_multicast_list(struct net_device *dev) | |||
| 640 | * by default, all multicast frames arrive over the bus. | 638 | * by default, all multicast frames arrive over the bus. |
| 641 | * eventually support selective multicast service | 639 | * eventually support selective multicast service |
| 642 | */ | 640 | */ |
| 643 | return; | ||
| 644 | } | 641 | } |
| 645 | 642 | ||
| 646 | static const struct net_device_ops lec_netdev_ops = { | 643 | static const struct net_device_ops lec_netdev_ops = { |
| @@ -1199,8 +1196,6 @@ static void __exit lane_module_cleanup(void) | |||
| 1199 | dev_lec[i] = NULL; | 1196 | dev_lec[i] = NULL; |
| 1200 | } | 1197 | } |
| 1201 | } | 1198 | } |
| 1202 | |||
| 1203 | return; | ||
| 1204 | } | 1199 | } |
| 1205 | 1200 | ||
| 1206 | module_init(lane_module_init); | 1201 | module_init(lane_module_init); |
| @@ -1334,7 +1329,6 @@ static void lane2_associate_ind(struct net_device *dev, const u8 *mac_addr, | |||
| 1334 | priv->lane2_ops->associate_indicator(dev, mac_addr, | 1329 | priv->lane2_ops->associate_indicator(dev, mac_addr, |
| 1335 | tlvs, sizeoftlvs); | 1330 | tlvs, sizeoftlvs); |
| 1336 | } | 1331 | } |
| 1337 | return; | ||
| 1338 | } | 1332 | } |
| 1339 | 1333 | ||
| 1340 | /* | 1334 | /* |
diff --git a/net/atm/mpc.c b/net/atm/mpc.c index 436f2e177657..622b471e14e0 100644 --- a/net/atm/mpc.c +++ b/net/atm/mpc.c | |||
| @@ -455,7 +455,6 @@ static void lane2_assoc_ind(struct net_device *dev, const u8 *mac_addr, | |||
| 455 | if (end_of_tlvs - tlvs != 0) | 455 | if (end_of_tlvs - tlvs != 0) |
| 456 | pr_info("(%s) ignoring %Zd bytes of trailing TLV garbage\n", | 456 | pr_info("(%s) ignoring %Zd bytes of trailing TLV garbage\n", |
| 457 | dev->name, end_of_tlvs - tlvs); | 457 | dev->name, end_of_tlvs - tlvs); |
| 458 | return; | ||
| 459 | } | 458 | } |
| 460 | 459 | ||
| 461 | /* | 460 | /* |
| @@ -684,8 +683,6 @@ static void mpc_vcc_close(struct atm_vcc *vcc, struct net_device *dev) | |||
| 684 | 683 | ||
| 685 | if (in_entry == NULL && eg_entry == NULL) | 684 | if (in_entry == NULL && eg_entry == NULL) |
| 686 | dprintk("(%s) unused vcc closed\n", dev->name); | 685 | dprintk("(%s) unused vcc closed\n", dev->name); |
| 687 | |||
| 688 | return; | ||
| 689 | } | 686 | } |
| 690 | 687 | ||
| 691 | static void mpc_push(struct atm_vcc *vcc, struct sk_buff *skb) | 688 | static void mpc_push(struct atm_vcc *vcc, struct sk_buff *skb) |
| @@ -783,8 +780,6 @@ static void mpc_push(struct atm_vcc *vcc, struct sk_buff *skb) | |||
| 783 | 780 | ||
| 784 | memset(ATM_SKB(skb), 0, sizeof(struct atm_skb_data)); | 781 | memset(ATM_SKB(skb), 0, sizeof(struct atm_skb_data)); |
| 785 | netif_rx(new_skb); | 782 | netif_rx(new_skb); |
| 786 | |||
| 787 | return; | ||
| 788 | } | 783 | } |
| 789 | 784 | ||
| 790 | static struct atmdev_ops mpc_ops = { /* only send is required */ | 785 | static struct atmdev_ops mpc_ops = { /* only send is required */ |
| @@ -873,8 +868,6 @@ static void send_set_mps_ctrl_addr(const char *addr, struct mpoa_client *mpc) | |||
| 873 | mesg.type = SET_MPS_CTRL_ADDR; | 868 | mesg.type = SET_MPS_CTRL_ADDR; |
| 874 | memcpy(mesg.MPS_ctrl, addr, ATM_ESA_LEN); | 869 | memcpy(mesg.MPS_ctrl, addr, ATM_ESA_LEN); |
| 875 | msg_to_mpoad(&mesg, mpc); | 870 | msg_to_mpoad(&mesg, mpc); |
| 876 | |||
| 877 | return; | ||
| 878 | } | 871 | } |
| 879 | 872 | ||
| 880 | static void mpoad_close(struct atm_vcc *vcc) | 873 | static void mpoad_close(struct atm_vcc *vcc) |
| @@ -911,8 +904,6 @@ static void mpoad_close(struct atm_vcc *vcc) | |||
| 911 | pr_info("(%s) going down\n", | 904 | pr_info("(%s) going down\n", |
| 912 | (mpc->dev) ? mpc->dev->name : "<unknown>"); | 905 | (mpc->dev) ? mpc->dev->name : "<unknown>"); |
| 913 | module_put(THIS_MODULE); | 906 | module_put(THIS_MODULE); |
| 914 | |||
| 915 | return; | ||
| 916 | } | 907 | } |
| 917 | 908 | ||
| 918 | /* | 909 | /* |
| @@ -1122,7 +1113,6 @@ static void MPOA_trigger_rcvd(struct k_message *msg, struct mpoa_client *mpc) | |||
| 1122 | pr_info("(%s) entry already in resolving state\n", | 1113 | pr_info("(%s) entry already in resolving state\n", |
| 1123 | (mpc->dev) ? mpc->dev->name : "<unknown>"); | 1114 | (mpc->dev) ? mpc->dev->name : "<unknown>"); |
| 1124 | mpc->in_ops->put(entry); | 1115 | mpc->in_ops->put(entry); |
| 1125 | return; | ||
| 1126 | } | 1116 | } |
| 1127 | 1117 | ||
| 1128 | /* | 1118 | /* |
| @@ -1166,7 +1156,6 @@ static void check_qos_and_open_shortcut(struct k_message *msg, | |||
| 1166 | } else | 1156 | } else |
| 1167 | memset(&msg->qos, 0, sizeof(struct atm_qos)); | 1157 | memset(&msg->qos, 0, sizeof(struct atm_qos)); |
| 1168 | msg_to_mpoad(msg, client); | 1158 | msg_to_mpoad(msg, client); |
| 1169 | return; | ||
| 1170 | } | 1159 | } |
| 1171 | 1160 | ||
| 1172 | static void MPOA_res_reply_rcvd(struct k_message *msg, struct mpoa_client *mpc) | 1161 | static void MPOA_res_reply_rcvd(struct k_message *msg, struct mpoa_client *mpc) |
| @@ -1240,8 +1229,6 @@ static void ingress_purge_rcvd(struct k_message *msg, struct mpoa_client *mpc) | |||
| 1240 | mpc->in_ops->put(entry); | 1229 | mpc->in_ops->put(entry); |
| 1241 | entry = mpc->in_ops->get_with_mask(dst_ip, mpc, mask); | 1230 | entry = mpc->in_ops->get_with_mask(dst_ip, mpc, mask); |
| 1242 | } while (entry != NULL); | 1231 | } while (entry != NULL); |
| 1243 | |||
| 1244 | return; | ||
| 1245 | } | 1232 | } |
| 1246 | 1233 | ||
| 1247 | static void egress_purge_rcvd(struct k_message *msg, struct mpoa_client *mpc) | 1234 | static void egress_purge_rcvd(struct k_message *msg, struct mpoa_client *mpc) |
| @@ -1260,8 +1247,6 @@ static void egress_purge_rcvd(struct k_message *msg, struct mpoa_client *mpc) | |||
| 1260 | write_unlock_irq(&mpc->egress_lock); | 1247 | write_unlock_irq(&mpc->egress_lock); |
| 1261 | 1248 | ||
| 1262 | mpc->eg_ops->put(entry); | 1249 | mpc->eg_ops->put(entry); |
| 1263 | |||
| 1264 | return; | ||
| 1265 | } | 1250 | } |
| 1266 | 1251 | ||
| 1267 | static void purge_egress_shortcut(struct atm_vcc *vcc, eg_cache_entry *entry) | 1252 | static void purge_egress_shortcut(struct atm_vcc *vcc, eg_cache_entry *entry) |
| @@ -1295,8 +1280,6 @@ static void purge_egress_shortcut(struct atm_vcc *vcc, eg_cache_entry *entry) | |||
| 1295 | skb_queue_tail(&sk->sk_receive_queue, skb); | 1280 | skb_queue_tail(&sk->sk_receive_queue, skb); |
| 1296 | sk->sk_data_ready(sk, skb->len); | 1281 | sk->sk_data_ready(sk, skb->len); |
| 1297 | dprintk("exiting\n"); | 1282 | dprintk("exiting\n"); |
| 1298 | |||
| 1299 | return; | ||
| 1300 | } | 1283 | } |
| 1301 | 1284 | ||
| 1302 | /* | 1285 | /* |
| @@ -1325,8 +1308,6 @@ static void mps_death(struct k_message *msg, struct mpoa_client *mpc) | |||
| 1325 | 1308 | ||
| 1326 | mpc->in_ops->destroy_cache(mpc); | 1309 | mpc->in_ops->destroy_cache(mpc); |
| 1327 | mpc->eg_ops->destroy_cache(mpc); | 1310 | mpc->eg_ops->destroy_cache(mpc); |
| 1328 | |||
| 1329 | return; | ||
| 1330 | } | 1311 | } |
| 1331 | 1312 | ||
| 1332 | static void MPOA_cache_impos_rcvd(struct k_message *msg, | 1313 | static void MPOA_cache_impos_rcvd(struct k_message *msg, |
| @@ -1353,8 +1334,6 @@ static void MPOA_cache_impos_rcvd(struct k_message *msg, | |||
| 1353 | write_unlock_irq(&mpc->egress_lock); | 1334 | write_unlock_irq(&mpc->egress_lock); |
| 1354 | 1335 | ||
| 1355 | mpc->eg_ops->put(entry); | 1336 | mpc->eg_ops->put(entry); |
| 1356 | |||
| 1357 | return; | ||
| 1358 | } | 1337 | } |
| 1359 | 1338 | ||
| 1360 | static void set_mpc_ctrl_addr_rcvd(struct k_message *mesg, | 1339 | static void set_mpc_ctrl_addr_rcvd(struct k_message *mesg, |
| @@ -1392,8 +1371,6 @@ static void set_mpc_ctrl_addr_rcvd(struct k_message *mesg, | |||
| 1392 | pr_info("(%s) targetless LE_ARP request failed\n", | 1371 | pr_info("(%s) targetless LE_ARP request failed\n", |
| 1393 | mpc->dev->name); | 1372 | mpc->dev->name); |
| 1394 | } | 1373 | } |
| 1395 | |||
| 1396 | return; | ||
| 1397 | } | 1374 | } |
| 1398 | 1375 | ||
| 1399 | static void set_mps_mac_addr_rcvd(struct k_message *msg, | 1376 | static void set_mps_mac_addr_rcvd(struct k_message *msg, |
| @@ -1409,8 +1386,6 @@ static void set_mps_mac_addr_rcvd(struct k_message *msg, | |||
| 1409 | return; | 1386 | return; |
| 1410 | } | 1387 | } |
| 1411 | client->number_of_mps_macs = 1; | 1388 | client->number_of_mps_macs = 1; |
| 1412 | |||
| 1413 | return; | ||
| 1414 | } | 1389 | } |
| 1415 | 1390 | ||
| 1416 | /* | 1391 | /* |
| @@ -1436,7 +1411,6 @@ static void clean_up(struct k_message *msg, struct mpoa_client *mpc, int action) | |||
| 1436 | 1411 | ||
| 1437 | msg->type = action; | 1412 | msg->type = action; |
| 1438 | msg_to_mpoad(msg, mpc); | 1413 | msg_to_mpoad(msg, mpc); |
| 1439 | return; | ||
| 1440 | } | 1414 | } |
| 1441 | 1415 | ||
| 1442 | static void mpc_timer_refresh(void) | 1416 | static void mpc_timer_refresh(void) |
| @@ -1445,8 +1419,6 @@ static void mpc_timer_refresh(void) | |||
| 1445 | mpc_timer.data = mpc_timer.expires; | 1419 | mpc_timer.data = mpc_timer.expires; |
| 1446 | mpc_timer.function = mpc_cache_check; | 1420 | mpc_timer.function = mpc_cache_check; |
| 1447 | add_timer(&mpc_timer); | 1421 | add_timer(&mpc_timer); |
| 1448 | |||
| 1449 | return; | ||
| 1450 | } | 1422 | } |
| 1451 | 1423 | ||
| 1452 | static void mpc_cache_check(unsigned long checking_time) | 1424 | static void mpc_cache_check(unsigned long checking_time) |
| @@ -1471,8 +1443,6 @@ static void mpc_cache_check(unsigned long checking_time) | |||
| 1471 | mpc = mpc->next; | 1443 | mpc = mpc->next; |
| 1472 | } | 1444 | } |
| 1473 | mpc_timer_refresh(); | 1445 | mpc_timer_refresh(); |
| 1474 | |||
| 1475 | return; | ||
| 1476 | } | 1446 | } |
| 1477 | 1447 | ||
| 1478 | static int atm_mpoa_ioctl(struct socket *sock, unsigned int cmd, | 1448 | static int atm_mpoa_ioctl(struct socket *sock, unsigned int cmd, |
| @@ -1561,8 +1531,6 @@ static void __exit atm_mpoa_cleanup(void) | |||
| 1561 | kfree(qos); | 1531 | kfree(qos); |
| 1562 | qos = nextqos; | 1532 | qos = nextqos; |
| 1563 | } | 1533 | } |
| 1564 | |||
| 1565 | return; | ||
| 1566 | } | 1534 | } |
| 1567 | 1535 | ||
| 1568 | module_init(atm_mpoa_init); | 1536 | module_init(atm_mpoa_init); |
diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c index e773d8336918..d1b2d9a03144 100644 --- a/net/atm/mpoa_caches.c +++ b/net/atm/mpoa_caches.c | |||
| @@ -182,8 +182,6 @@ static void in_cache_put(in_cache_entry *entry) | |||
| 182 | memset(entry, 0, sizeof(in_cache_entry)); | 182 | memset(entry, 0, sizeof(in_cache_entry)); |
| 183 | kfree(entry); | 183 | kfree(entry); |
| 184 | } | 184 | } |
| 185 | |||
| 186 | return; | ||
| 187 | } | 185 | } |
| 188 | 186 | ||
| 189 | /* | 187 | /* |
| @@ -221,8 +219,6 @@ static void in_cache_remove_entry(in_cache_entry *entry, | |||
| 221 | } | 219 | } |
| 222 | vcc_release_async(vcc, -EPIPE); | 220 | vcc_release_async(vcc, -EPIPE); |
| 223 | } | 221 | } |
| 224 | |||
| 225 | return; | ||
| 226 | } | 222 | } |
| 227 | 223 | ||
| 228 | /* Call this every MPC-p2 seconds... Not exactly correct solution, | 224 | /* Call this every MPC-p2 seconds... Not exactly correct solution, |
| @@ -248,8 +244,6 @@ static void clear_count_and_expired(struct mpoa_client *client) | |||
| 248 | entry = next_entry; | 244 | entry = next_entry; |
| 249 | } | 245 | } |
| 250 | write_unlock_bh(&client->ingress_lock); | 246 | write_unlock_bh(&client->ingress_lock); |
| 251 | |||
| 252 | return; | ||
| 253 | } | 247 | } |
| 254 | 248 | ||
| 255 | /* Call this every MPC-p4 seconds. */ | 249 | /* Call this every MPC-p4 seconds. */ |
| @@ -334,8 +328,6 @@ static void in_destroy_cache(struct mpoa_client *mpc) | |||
| 334 | while (mpc->in_cache != NULL) | 328 | while (mpc->in_cache != NULL) |
| 335 | mpc->in_ops->remove_entry(mpc->in_cache, mpc); | 329 | mpc->in_ops->remove_entry(mpc->in_cache, mpc); |
| 336 | write_unlock_irq(&mpc->ingress_lock); | 330 | write_unlock_irq(&mpc->ingress_lock); |
| 337 | |||
| 338 | return; | ||
| 339 | } | 331 | } |
| 340 | 332 | ||
| 341 | static eg_cache_entry *eg_cache_get_by_cache_id(__be32 cache_id, | 333 | static eg_cache_entry *eg_cache_get_by_cache_id(__be32 cache_id, |
| @@ -427,8 +419,6 @@ static void eg_cache_put(eg_cache_entry *entry) | |||
| 427 | memset(entry, 0, sizeof(eg_cache_entry)); | 419 | memset(entry, 0, sizeof(eg_cache_entry)); |
| 428 | kfree(entry); | 420 | kfree(entry); |
| 429 | } | 421 | } |
| 430 | |||
| 431 | return; | ||
| 432 | } | 422 | } |
| 433 | 423 | ||
| 434 | /* | 424 | /* |
| @@ -463,8 +453,6 @@ static void eg_cache_remove_entry(eg_cache_entry *entry, | |||
| 463 | } | 453 | } |
| 464 | vcc_release_async(vcc, -EPIPE); | 454 | vcc_release_async(vcc, -EPIPE); |
| 465 | } | 455 | } |
| 466 | |||
| 467 | return; | ||
| 468 | } | 456 | } |
| 469 | 457 | ||
| 470 | static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, | 458 | static eg_cache_entry *eg_cache_add_entry(struct k_message *msg, |
| @@ -509,8 +497,6 @@ static void update_eg_cache_entry(eg_cache_entry *entry, uint16_t holding_time) | |||
| 509 | do_gettimeofday(&(entry->tv)); | 497 | do_gettimeofday(&(entry->tv)); |
| 510 | entry->entry_state = EGRESS_RESOLVED; | 498 | entry->entry_state = EGRESS_RESOLVED; |
| 511 | entry->ctrl_info.holding_time = holding_time; | 499 | entry->ctrl_info.holding_time = holding_time; |
| 512 | |||
| 513 | return; | ||
| 514 | } | 500 | } |
| 515 | 501 | ||
| 516 | static void clear_expired(struct mpoa_client *client) | 502 | static void clear_expired(struct mpoa_client *client) |
| @@ -537,8 +523,6 @@ static void clear_expired(struct mpoa_client *client) | |||
| 537 | entry = next_entry; | 523 | entry = next_entry; |
| 538 | } | 524 | } |
| 539 | write_unlock_irq(&client->egress_lock); | 525 | write_unlock_irq(&client->egress_lock); |
| 540 | |||
| 541 | return; | ||
| 542 | } | 526 | } |
| 543 | 527 | ||
| 544 | static void eg_destroy_cache(struct mpoa_client *mpc) | 528 | static void eg_destroy_cache(struct mpoa_client *mpc) |
| @@ -547,8 +531,6 @@ static void eg_destroy_cache(struct mpoa_client *mpc) | |||
| 547 | while (mpc->eg_cache != NULL) | 531 | while (mpc->eg_cache != NULL) |
| 548 | mpc->eg_ops->remove_entry(mpc->eg_cache, mpc); | 532 | mpc->eg_ops->remove_entry(mpc->eg_cache, mpc); |
| 549 | write_unlock_irq(&mpc->egress_lock); | 533 | write_unlock_irq(&mpc->egress_lock); |
| 550 | |||
| 551 | return; | ||
| 552 | } | 534 | } |
| 553 | 535 | ||
| 554 | 536 | ||
| @@ -584,6 +566,4 @@ void atm_mpoa_init_cache(struct mpoa_client *mpc) | |||
| 584 | { | 566 | { |
| 585 | mpc->in_ops = &ingress_ops; | 567 | mpc->in_ops = &ingress_ops; |
| 586 | mpc->eg_ops = &egress_ops; | 568 | mpc->eg_ops = &egress_ops; |
| 587 | |||
| 588 | return; | ||
| 589 | } | 569 | } |
diff --git a/net/atm/proc.c b/net/atm/proc.c index 696e218436e5..6262aeae398e 100644 --- a/net/atm/proc.c +++ b/net/atm/proc.c | |||
| @@ -407,7 +407,6 @@ EXPORT_SYMBOL(atm_proc_root); | |||
| 407 | 407 | ||
| 408 | int atm_proc_dev_register(struct atm_dev *dev) | 408 | int atm_proc_dev_register(struct atm_dev *dev) |
| 409 | { | 409 | { |
| 410 | int digits, num; | ||
| 411 | int error; | 410 | int error; |
| 412 | 411 | ||
| 413 | /* No proc info */ | 412 | /* No proc info */ |
| @@ -415,16 +414,9 @@ int atm_proc_dev_register(struct atm_dev *dev) | |||
| 415 | return 0; | 414 | return 0; |
| 416 | 415 | ||
| 417 | error = -ENOMEM; | 416 | error = -ENOMEM; |
| 418 | digits = 0; | 417 | dev->proc_name = kasprintf(GFP_KERNEL, "%s:%d", dev->type, dev->number); |
| 419 | for (num = dev->number; num; num /= 10) | ||
| 420 | digits++; | ||
| 421 | if (!digits) | ||
| 422 | digits++; | ||
| 423 | |||
| 424 | dev->proc_name = kmalloc(strlen(dev->type) + digits + 2, GFP_KERNEL); | ||
| 425 | if (!dev->proc_name) | 418 | if (!dev->proc_name) |
| 426 | goto err_out; | 419 | goto err_out; |
| 427 | sprintf(dev->proc_name, "%s:%d", dev->type, dev->number); | ||
| 428 | 420 | ||
| 429 | dev->proc_entry = proc_create_data(dev->proc_name, 0, atm_proc_root, | 421 | dev->proc_entry = proc_create_data(dev->proc_name, 0, atm_proc_root, |
| 430 | &proc_atm_dev_ops, dev); | 422 | &proc_atm_dev_ops, dev); |
diff --git a/net/atm/signaling.c b/net/atm/signaling.c index 6ba6e466ee54..509c8ac02b63 100644 --- a/net/atm/signaling.c +++ b/net/atm/signaling.c | |||
| @@ -131,7 +131,7 @@ static int sigd_send(struct atm_vcc *vcc, struct sk_buff *skb) | |||
| 131 | } | 131 | } |
| 132 | sk->sk_ack_backlog++; | 132 | sk->sk_ack_backlog++; |
| 133 | skb_queue_tail(&sk->sk_receive_queue, skb); | 133 | skb_queue_tail(&sk->sk_receive_queue, skb); |
| 134 | pr_debug("waking sk->sk_sleep 0x%p\n", sk->sk_sleep); | 134 | pr_debug("waking sk_sleep(sk) 0x%p\n", sk_sleep(sk)); |
| 135 | sk->sk_state_change(sk); | 135 | sk->sk_state_change(sk); |
| 136 | as_indicate_complete: | 136 | as_indicate_complete: |
| 137 | release_sock(sk); | 137 | release_sock(sk); |
diff --git a/net/atm/svc.c b/net/atm/svc.c index 3ba9a45a51ac..754ee4791d96 100644 --- a/net/atm/svc.c +++ b/net/atm/svc.c | |||
| @@ -49,14 +49,14 @@ static void svc_disconnect(struct atm_vcc *vcc) | |||
| 49 | 49 | ||
| 50 | pr_debug("%p\n", vcc); | 50 | pr_debug("%p\n", vcc); |
| 51 | if (test_bit(ATM_VF_REGIS, &vcc->flags)) { | 51 | if (test_bit(ATM_VF_REGIS, &vcc->flags)) { |
| 52 | prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); | 52 | prepare_to_wait(sk_sleep(sk), &wait, TASK_UNINTERRUPTIBLE); |
| 53 | sigd_enq(vcc, as_close, NULL, NULL, NULL); | 53 | sigd_enq(vcc, as_close, NULL, NULL, NULL); |
| 54 | while (!test_bit(ATM_VF_RELEASED, &vcc->flags) && sigd) { | 54 | while (!test_bit(ATM_VF_RELEASED, &vcc->flags) && sigd) { |
| 55 | schedule(); | 55 | schedule(); |
| 56 | prepare_to_wait(sk->sk_sleep, &wait, | 56 | prepare_to_wait(sk_sleep(sk), &wait, |
| 57 | TASK_UNINTERRUPTIBLE); | 57 | TASK_UNINTERRUPTIBLE); |
| 58 | } | 58 | } |
| 59 | finish_wait(sk->sk_sleep, &wait); | 59 | finish_wait(sk_sleep(sk), &wait); |
| 60 | } | 60 | } |
| 61 | /* beware - socket is still in use by atmsigd until the last | 61 | /* beware - socket is still in use by atmsigd until the last |
| 62 | as_indicate has been answered */ | 62 | as_indicate has been answered */ |
| @@ -125,13 +125,13 @@ static int svc_bind(struct socket *sock, struct sockaddr *sockaddr, | |||
| 125 | } | 125 | } |
| 126 | vcc->local = *addr; | 126 | vcc->local = *addr; |
| 127 | set_bit(ATM_VF_WAITING, &vcc->flags); | 127 | set_bit(ATM_VF_WAITING, &vcc->flags); |
| 128 | prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); | 128 | prepare_to_wait(sk_sleep(sk), &wait, TASK_UNINTERRUPTIBLE); |
| 129 | sigd_enq(vcc, as_bind, NULL, NULL, &vcc->local); | 129 | sigd_enq(vcc, as_bind, NULL, NULL, &vcc->local); |
| 130 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { | 130 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { |
| 131 | schedule(); | 131 | schedule(); |
| 132 | prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); | 132 | prepare_to_wait(sk_sleep(sk), &wait, TASK_UNINTERRUPTIBLE); |
| 133 | } | 133 | } |
| 134 | finish_wait(sk->sk_sleep, &wait); | 134 | finish_wait(sk_sleep(sk), &wait); |
| 135 | clear_bit(ATM_VF_REGIS, &vcc->flags); /* doesn't count */ | 135 | clear_bit(ATM_VF_REGIS, &vcc->flags); /* doesn't count */ |
| 136 | if (!sigd) { | 136 | if (!sigd) { |
| 137 | error = -EUNATCH; | 137 | error = -EUNATCH; |
| @@ -201,10 +201,10 @@ static int svc_connect(struct socket *sock, struct sockaddr *sockaddr, | |||
| 201 | } | 201 | } |
| 202 | vcc->remote = *addr; | 202 | vcc->remote = *addr; |
| 203 | set_bit(ATM_VF_WAITING, &vcc->flags); | 203 | set_bit(ATM_VF_WAITING, &vcc->flags); |
| 204 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 204 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 205 | sigd_enq(vcc, as_connect, NULL, NULL, &vcc->remote); | 205 | sigd_enq(vcc, as_connect, NULL, NULL, &vcc->remote); |
| 206 | if (flags & O_NONBLOCK) { | 206 | if (flags & O_NONBLOCK) { |
| 207 | finish_wait(sk->sk_sleep, &wait); | 207 | finish_wait(sk_sleep(sk), &wait); |
| 208 | sock->state = SS_CONNECTING; | 208 | sock->state = SS_CONNECTING; |
| 209 | error = -EINPROGRESS; | 209 | error = -EINPROGRESS; |
| 210 | goto out; | 210 | goto out; |
| @@ -213,7 +213,7 @@ static int svc_connect(struct socket *sock, struct sockaddr *sockaddr, | |||
| 213 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { | 213 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { |
| 214 | schedule(); | 214 | schedule(); |
| 215 | if (!signal_pending(current)) { | 215 | if (!signal_pending(current)) { |
| 216 | prepare_to_wait(sk->sk_sleep, &wait, | 216 | prepare_to_wait(sk_sleep(sk), &wait, |
| 217 | TASK_INTERRUPTIBLE); | 217 | TASK_INTERRUPTIBLE); |
| 218 | continue; | 218 | continue; |
| 219 | } | 219 | } |
| @@ -232,14 +232,14 @@ static int svc_connect(struct socket *sock, struct sockaddr *sockaddr, | |||
| 232 | */ | 232 | */ |
| 233 | sigd_enq(vcc, as_close, NULL, NULL, NULL); | 233 | sigd_enq(vcc, as_close, NULL, NULL, NULL); |
| 234 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { | 234 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { |
| 235 | prepare_to_wait(sk->sk_sleep, &wait, | 235 | prepare_to_wait(sk_sleep(sk), &wait, |
| 236 | TASK_INTERRUPTIBLE); | 236 | TASK_INTERRUPTIBLE); |
| 237 | schedule(); | 237 | schedule(); |
| 238 | } | 238 | } |
| 239 | if (!sk->sk_err) | 239 | if (!sk->sk_err) |
| 240 | while (!test_bit(ATM_VF_RELEASED, &vcc->flags) && | 240 | while (!test_bit(ATM_VF_RELEASED, &vcc->flags) && |
| 241 | sigd) { | 241 | sigd) { |
| 242 | prepare_to_wait(sk->sk_sleep, &wait, | 242 | prepare_to_wait(sk_sleep(sk), &wait, |
| 243 | TASK_INTERRUPTIBLE); | 243 | TASK_INTERRUPTIBLE); |
| 244 | schedule(); | 244 | schedule(); |
| 245 | } | 245 | } |
| @@ -250,7 +250,7 @@ static int svc_connect(struct socket *sock, struct sockaddr *sockaddr, | |||
| 250 | error = -EINTR; | 250 | error = -EINTR; |
| 251 | break; | 251 | break; |
| 252 | } | 252 | } |
| 253 | finish_wait(sk->sk_sleep, &wait); | 253 | finish_wait(sk_sleep(sk), &wait); |
| 254 | if (error) | 254 | if (error) |
| 255 | goto out; | 255 | goto out; |
| 256 | if (!sigd) { | 256 | if (!sigd) { |
| @@ -302,13 +302,13 @@ static int svc_listen(struct socket *sock, int backlog) | |||
| 302 | goto out; | 302 | goto out; |
| 303 | } | 303 | } |
| 304 | set_bit(ATM_VF_WAITING, &vcc->flags); | 304 | set_bit(ATM_VF_WAITING, &vcc->flags); |
| 305 | prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); | 305 | prepare_to_wait(sk_sleep(sk), &wait, TASK_UNINTERRUPTIBLE); |
| 306 | sigd_enq(vcc, as_listen, NULL, NULL, &vcc->local); | 306 | sigd_enq(vcc, as_listen, NULL, NULL, &vcc->local); |
| 307 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { | 307 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { |
| 308 | schedule(); | 308 | schedule(); |
| 309 | prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); | 309 | prepare_to_wait(sk_sleep(sk), &wait, TASK_UNINTERRUPTIBLE); |
| 310 | } | 310 | } |
| 311 | finish_wait(sk->sk_sleep, &wait); | 311 | finish_wait(sk_sleep(sk), &wait); |
| 312 | if (!sigd) { | 312 | if (!sigd) { |
| 313 | error = -EUNATCH; | 313 | error = -EUNATCH; |
| 314 | goto out; | 314 | goto out; |
| @@ -343,7 +343,7 @@ static int svc_accept(struct socket *sock, struct socket *newsock, int flags) | |||
| 343 | while (1) { | 343 | while (1) { |
| 344 | DEFINE_WAIT(wait); | 344 | DEFINE_WAIT(wait); |
| 345 | 345 | ||
| 346 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 346 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 347 | while (!(skb = skb_dequeue(&sk->sk_receive_queue)) && | 347 | while (!(skb = skb_dequeue(&sk->sk_receive_queue)) && |
| 348 | sigd) { | 348 | sigd) { |
| 349 | if (test_bit(ATM_VF_RELEASED, &old_vcc->flags)) | 349 | if (test_bit(ATM_VF_RELEASED, &old_vcc->flags)) |
| @@ -363,10 +363,10 @@ static int svc_accept(struct socket *sock, struct socket *newsock, int flags) | |||
| 363 | error = -ERESTARTSYS; | 363 | error = -ERESTARTSYS; |
| 364 | break; | 364 | break; |
| 365 | } | 365 | } |
| 366 | prepare_to_wait(sk->sk_sleep, &wait, | 366 | prepare_to_wait(sk_sleep(sk), &wait, |
| 367 | TASK_INTERRUPTIBLE); | 367 | TASK_INTERRUPTIBLE); |
| 368 | } | 368 | } |
| 369 | finish_wait(sk->sk_sleep, &wait); | 369 | finish_wait(sk_sleep(sk), &wait); |
| 370 | if (error) | 370 | if (error) |
| 371 | goto out; | 371 | goto out; |
| 372 | if (!skb) { | 372 | if (!skb) { |
| @@ -392,17 +392,17 @@ static int svc_accept(struct socket *sock, struct socket *newsock, int flags) | |||
| 392 | } | 392 | } |
| 393 | /* wait should be short, so we ignore the non-blocking flag */ | 393 | /* wait should be short, so we ignore the non-blocking flag */ |
| 394 | set_bit(ATM_VF_WAITING, &new_vcc->flags); | 394 | set_bit(ATM_VF_WAITING, &new_vcc->flags); |
| 395 | prepare_to_wait(sk_atm(new_vcc)->sk_sleep, &wait, | 395 | prepare_to_wait(sk_sleep(sk_atm(new_vcc)), &wait, |
| 396 | TASK_UNINTERRUPTIBLE); | 396 | TASK_UNINTERRUPTIBLE); |
| 397 | sigd_enq(new_vcc, as_accept, old_vcc, NULL, NULL); | 397 | sigd_enq(new_vcc, as_accept, old_vcc, NULL, NULL); |
| 398 | while (test_bit(ATM_VF_WAITING, &new_vcc->flags) && sigd) { | 398 | while (test_bit(ATM_VF_WAITING, &new_vcc->flags) && sigd) { |
| 399 | release_sock(sk); | 399 | release_sock(sk); |
| 400 | schedule(); | 400 | schedule(); |
| 401 | lock_sock(sk); | 401 | lock_sock(sk); |
| 402 | prepare_to_wait(sk_atm(new_vcc)->sk_sleep, &wait, | 402 | prepare_to_wait(sk_sleep(sk_atm(new_vcc)), &wait, |
| 403 | TASK_UNINTERRUPTIBLE); | 403 | TASK_UNINTERRUPTIBLE); |
| 404 | } | 404 | } |
| 405 | finish_wait(sk_atm(new_vcc)->sk_sleep, &wait); | 405 | finish_wait(sk_sleep(sk_atm(new_vcc)), &wait); |
| 406 | if (!sigd) { | 406 | if (!sigd) { |
| 407 | error = -EUNATCH; | 407 | error = -EUNATCH; |
| 408 | goto out; | 408 | goto out; |
| @@ -438,14 +438,14 @@ int svc_change_qos(struct atm_vcc *vcc, struct atm_qos *qos) | |||
| 438 | DEFINE_WAIT(wait); | 438 | DEFINE_WAIT(wait); |
| 439 | 439 | ||
| 440 | set_bit(ATM_VF_WAITING, &vcc->flags); | 440 | set_bit(ATM_VF_WAITING, &vcc->flags); |
| 441 | prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); | 441 | prepare_to_wait(sk_sleep(sk), &wait, TASK_UNINTERRUPTIBLE); |
| 442 | sigd_enq2(vcc, as_modify, NULL, NULL, &vcc->local, qos, 0); | 442 | sigd_enq2(vcc, as_modify, NULL, NULL, &vcc->local, qos, 0); |
| 443 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && | 443 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && |
| 444 | !test_bit(ATM_VF_RELEASED, &vcc->flags) && sigd) { | 444 | !test_bit(ATM_VF_RELEASED, &vcc->flags) && sigd) { |
| 445 | schedule(); | 445 | schedule(); |
| 446 | prepare_to_wait(sk->sk_sleep, &wait, TASK_UNINTERRUPTIBLE); | 446 | prepare_to_wait(sk_sleep(sk), &wait, TASK_UNINTERRUPTIBLE); |
| 447 | } | 447 | } |
| 448 | finish_wait(sk->sk_sleep, &wait); | 448 | finish_wait(sk_sleep(sk), &wait); |
| 449 | if (!sigd) | 449 | if (!sigd) |
| 450 | return -EUNATCH; | 450 | return -EUNATCH; |
| 451 | return -sk->sk_err; | 451 | return -sk->sk_err; |
| @@ -534,20 +534,20 @@ static int svc_addparty(struct socket *sock, struct sockaddr *sockaddr, | |||
| 534 | 534 | ||
| 535 | lock_sock(sk); | 535 | lock_sock(sk); |
| 536 | set_bit(ATM_VF_WAITING, &vcc->flags); | 536 | set_bit(ATM_VF_WAITING, &vcc->flags); |
| 537 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 537 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 538 | sigd_enq(vcc, as_addparty, NULL, NULL, | 538 | sigd_enq(vcc, as_addparty, NULL, NULL, |
| 539 | (struct sockaddr_atmsvc *) sockaddr); | 539 | (struct sockaddr_atmsvc *) sockaddr); |
| 540 | if (flags & O_NONBLOCK) { | 540 | if (flags & O_NONBLOCK) { |
| 541 | finish_wait(sk->sk_sleep, &wait); | 541 | finish_wait(sk_sleep(sk), &wait); |
| 542 | error = -EINPROGRESS; | 542 | error = -EINPROGRESS; |
| 543 | goto out; | 543 | goto out; |
| 544 | } | 544 | } |
| 545 | pr_debug("added wait queue\n"); | 545 | pr_debug("added wait queue\n"); |
| 546 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { | 546 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { |
| 547 | schedule(); | 547 | schedule(); |
| 548 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 548 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 549 | } | 549 | } |
| 550 | finish_wait(sk->sk_sleep, &wait); | 550 | finish_wait(sk_sleep(sk), &wait); |
| 551 | error = xchg(&sk->sk_err_soft, 0); | 551 | error = xchg(&sk->sk_err_soft, 0); |
| 552 | out: | 552 | out: |
| 553 | release_sock(sk); | 553 | release_sock(sk); |
| @@ -563,13 +563,13 @@ static int svc_dropparty(struct socket *sock, int ep_ref) | |||
| 563 | 563 | ||
| 564 | lock_sock(sk); | 564 | lock_sock(sk); |
| 565 | set_bit(ATM_VF_WAITING, &vcc->flags); | 565 | set_bit(ATM_VF_WAITING, &vcc->flags); |
| 566 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 566 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 567 | sigd_enq2(vcc, as_dropparty, NULL, NULL, NULL, NULL, ep_ref); | 567 | sigd_enq2(vcc, as_dropparty, NULL, NULL, NULL, NULL, ep_ref); |
| 568 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { | 568 | while (test_bit(ATM_VF_WAITING, &vcc->flags) && sigd) { |
| 569 | schedule(); | 569 | schedule(); |
| 570 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 570 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 571 | } | 571 | } |
| 572 | finish_wait(sk->sk_sleep, &wait); | 572 | finish_wait(sk_sleep(sk), &wait); |
| 573 | if (!sigd) { | 573 | if (!sigd) { |
| 574 | error = -EUNATCH; | 574 | error = -EUNATCH; |
| 575 | goto out; | 575 | goto out; |
