diff options
author | Oron Peled <oron.peled@xorcom.com> | 2011-05-23 17:50:14 +0300 |
---|---|---|
committer | Oron Peled <oron.peled@xorcom.com> | 2011-05-23 17:50:14 +0300 |
commit | 090ffe93c179ddd674e0f272e090eebd0b2941ad (patch) | |
tree | f3bc325060b2ca7d39d3f25d7b8ecb5c498cf706 /drivers/dahdi | |
parent | 35a1e9c60bccdafdf3d59d1c6c15e68d59d8ef11 (diff) |
Allow low-level drivers to unregister a single span at a time:
- Rename the static dahdi_unregister_span() to _dahdi_unregister_span()
- Export a new dahdi_unregister_span() [protected by registration_mutex]
Diffstat (limited to 'drivers/dahdi')
-rw-r--r-- | drivers/dahdi/dahdi-base.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index 1d14d4c..23cda1a 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -6786,7 +6786,7 @@ int dahdi_register_device(struct dahdi_device *ddev, struct device *parent) EXPORT_SYMBOL(dahdi_register_device); /** - * dahdi_unregister_span() - unregister a DAHDI span + * _dahdi_unregister_span() - unregister a DAHDI span * @span: the DAHDI span * @prefmaster: will the new span be preferred as a master? * @@ -6804,7 +6804,7 @@ EXPORT_SYMBOL(dahdi_register_device); * Must be called with the registration_mutex held. * */ -static int dahdi_unregister_span(struct dahdi_span *span) +static int _dahdi_unregister_span(struct dahdi_span *span) { int x; struct dahdi_span *new_master, *s; @@ -6854,6 +6854,17 @@ static int dahdi_unregister_span(struct dahdi_span *span) return 0; } +int dahdi_unregister_span(struct dahdi_span *span) +{ + module_printk(KERN_NOTICE, "%s: %s\n", __FUNCTION__, span->name); + mutex_lock(®istration_mutex); + _dahdi_unregister_span(span); + list_del_init(&span->device_node); + mutex_unlock(®istration_mutex); + return 0; +} +EXPORT_SYMBOL(dahdi_unregister_span); + /** * dahdi_unregister_device() - unregister a DAHDI device * @span: the DAHDI span @@ -6872,7 +6883,7 @@ void dahdi_unregister_device(struct dahdi_device *ddev) mutex_lock(®istration_mutex); list_for_each_entry(s, &ddev->spans, device_node) - dahdi_unregister_span(s); + _dahdi_unregister_span(s); mutex_unlock(®istration_mutex); dahdi_sysfs_unregister_device(ddev); |