-diff -urN linux.old/net/atm/resources.c linux.dev/net/atm/resources.c
---- linux.old/net/atm/resources.c 2005-08-22 23:18:50.880539464 +0200
-+++ linux.dev/net/atm/resources.c 2005-08-22 23:17:42.452942040 +0200
-@@ -398,8 +398,23 @@
- return error;
- }
-
-+void bind_vcc(struct atm_vcc *vcc,struct atm_dev *dev)
-+{
-+ vcc->dev = dev;
-+ if (dev) {
-+ vcc->next = NULL;
-+ vcc->prev = dev->last;
-+ if (dev->vccs)
-+ dev->last->next = vcc;
-+ else
-+ dev->vccs = vcc;
-+ dev->last = vcc;
-+ }
-+}
-+
-
- EXPORT_SYMBOL(atm_dev_register);
- EXPORT_SYMBOL(atm_dev_deregister);
- EXPORT_SYMBOL(atm_dev_lookup);
-+EXPORT_SYMBOL(bind_vcc);
- EXPORT_SYMBOL(shutdown_atm_dev);
-diff -urN linux.old/net/atm/signaling.c linux.dev/net/atm/signaling.c
---- linux.old/net/atm/signaling.c 2005-08-22 23:18:50.881539312 +0200
-+++ linux.dev/net/atm/signaling.c 2005-08-22 23:17:42.452942040 +0200
-@@ -251,7 +251,7 @@
- if (sigd) return -EADDRINUSE;
- DPRINTK("sigd_attach\n");
- sigd = vcc;
-- vcc->dev = &sigd_dev;
-+ bind_vcc(vcc, &sigd_dev);
- vcc_insert_socket(vcc->sk);
- set_bit(ATM_VF_META,&vcc->flags);
- set_bit(ATM_VF_READY,&vcc->flags);