[ATM]: basic sysfs support for ATM devices

Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Roman Kagan
2006-06-29 12:36:34 -07:00
committed by David S. Miller
parent d17f086550
commit 656d98b09d
7 changed files with 210 additions and 7 deletions

View File

@@ -114,14 +114,27 @@ struct atm_dev *atm_dev_register(const char *type, const struct atmdev_ops *ops,
printk(KERN_ERR "atm_dev_register: "
"atm_proc_dev_register failed for dev %s\n",
type);
mutex_unlock(&atm_dev_mutex);
kfree(dev);
return NULL;
goto out_fail;
}
list_add_tail(&dev->dev_list, &atm_devs);
mutex_unlock(&atm_dev_mutex);
if (atm_register_sysfs(dev) < 0) {
printk(KERN_ERR "atm_dev_register: "
"atm_register_sysfs failed for dev %s\n",
type);
atm_proc_dev_deregister(dev);
goto out_fail;
}
list_add_tail(&dev->dev_list, &atm_devs);
out:
mutex_unlock(&atm_dev_mutex);
return dev;
out_fail:
kfree(dev);
dev = NULL;
goto out;
}
@@ -140,6 +153,7 @@ void atm_dev_deregister(struct atm_dev *dev)
mutex_unlock(&atm_dev_mutex);
atm_dev_release_vccs(dev);
atm_unregister_sysfs(dev);
atm_proc_dev_deregister(dev);
atm_dev_put(dev);