diff options
Diffstat (limited to 'drivers/atm/atmtcp.c')
| -rw-r--r-- | drivers/atm/atmtcp.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/drivers/atm/atmtcp.c b/drivers/atm/atmtcp.c index 57f1810fdc..fc518d8554 100644 --- a/drivers/atm/atmtcp.c +++ b/drivers/atm/atmtcp.c | |||
| @@ -246,10 +246,6 @@ static void atmtcp_c_close(struct atm_vcc *vcc) | |||
| 246 | { | 246 | { |
| 247 | struct atm_dev *atmtcp_dev; | 247 | struct atm_dev *atmtcp_dev; |
| 248 | struct atmtcp_dev_data *dev_data; | 248 | struct atmtcp_dev_data *dev_data; |
| 249 | struct sock *s; | ||
| 250 | struct hlist_node *node; | ||
| 251 | struct atm_vcc *walk; | ||
| 252 | int i; | ||
| 253 | 249 | ||
| 254 | atmtcp_dev = (struct atm_dev *) vcc->dev_data; | 250 | atmtcp_dev = (struct atm_dev *) vcc->dev_data; |
| 255 | dev_data = PRIV(atmtcp_dev); | 251 | dev_data = PRIV(atmtcp_dev); |
| @@ -257,20 +253,8 @@ static void atmtcp_c_close(struct atm_vcc *vcc) | |||
| 257 | if (dev_data->persist) return; | 253 | if (dev_data->persist) return; |
| 258 | atmtcp_dev->dev_data = NULL; | 254 | atmtcp_dev->dev_data = NULL; |
| 259 | kfree(dev_data); | 255 | kfree(dev_data); |
| 260 | shutdown_atm_dev(atmtcp_dev); | 256 | atm_dev_deregister(atmtcp_dev); |
| 261 | vcc->dev_data = NULL; | 257 | vcc->dev_data = NULL; |
| 262 | read_lock(&vcc_sklist_lock); | ||
| 263 | for(i = 0; i < VCC_HTABLE_SIZE; ++i) { | ||
| 264 | struct hlist_head *head = &vcc_hash[i]; | ||
| 265 | |||
| 266 | sk_for_each(s, node, head) { | ||
| 267 | walk = atm_sk(s); | ||
| 268 | if (walk->dev != atmtcp_dev) | ||
| 269 | continue; | ||
| 270 | wake_up(s->sk_sleep); | ||
| 271 | } | ||
| 272 | } | ||
| 273 | read_unlock(&vcc_sklist_lock); | ||
| 274 | module_put(THIS_MODULE); | 258 | module_put(THIS_MODULE); |
| 275 | } | 259 | } |
| 276 | 260 | ||
| @@ -450,7 +434,7 @@ static int atmtcp_remove_persistent(int itf) | |||
| 450 | if (PRIV(dev)->vcc) return 0; | 434 | if (PRIV(dev)->vcc) return 0; |
| 451 | kfree(dev_data); | 435 | kfree(dev_data); |
| 452 | atm_dev_put(dev); | 436 | atm_dev_put(dev); |
| 453 | shutdown_atm_dev(dev); | 437 | atm_dev_deregister(dev); |
| 454 | return 0; | 438 | return 0; |
| 455 | } | 439 | } |
| 456 | 440 | ||
