diff options
Diffstat (limited to 'net/atm/signaling.c')
| -rw-r--r-- | net/atm/signaling.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/atm/signaling.c b/net/atm/signaling.c index f7c449ac1800..e7211a7f382c 100644 --- a/net/atm/signaling.c +++ b/net/atm/signaling.c | |||
| @@ -217,8 +217,9 @@ void sigd_enq(struct atm_vcc *vcc,enum atmsvc_msg_type type, | |||
| 217 | static void purge_vcc(struct atm_vcc *vcc) | 217 | static void purge_vcc(struct atm_vcc *vcc) |
| 218 | { | 218 | { |
| 219 | if (sk_atm(vcc)->sk_family == PF_ATMSVC && | 219 | if (sk_atm(vcc)->sk_family == PF_ATMSVC && |
| 220 | !test_bit(ATM_VF_META,&vcc->flags)) { | 220 | !test_bit(ATM_VF_META, &vcc->flags)) { |
| 221 | set_bit(ATM_VF_RELEASED,&vcc->flags); | 221 | set_bit(ATM_VF_RELEASED, &vcc->flags); |
| 222 | clear_bit(ATM_VF_REGIS, &vcc->flags); | ||
| 222 | vcc_release_async(vcc, -EUNATCH); | 223 | vcc_release_async(vcc, -EUNATCH); |
| 223 | } | 224 | } |
| 224 | } | 225 | } |
| @@ -243,8 +244,7 @@ static void sigd_close(struct atm_vcc *vcc) | |||
| 243 | sk_for_each(s, node, head) { | 244 | sk_for_each(s, node, head) { |
| 244 | struct atm_vcc *vcc = atm_sk(s); | 245 | struct atm_vcc *vcc = atm_sk(s); |
| 245 | 246 | ||
| 246 | if (vcc->dev) | 247 | purge_vcc(vcc); |
| 247 | purge_vcc(vcc); | ||
| 248 | } | 248 | } |
| 249 | } | 249 | } |
| 250 | read_unlock(&vcc_sklist_lock); | 250 | read_unlock(&vcc_sklist_lock); |
