summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/dahdi/dahdi_dynamic.c10
-rw-r--r--include/dahdi/kernel.h3
2 files changed, 10 insertions, 3 deletions
diff --git a/drivers/dahdi/dahdi_dynamic.c b/drivers/dahdi/dahdi_dynamic.c
index 1c80ff2..79c8bba 100644
--- a/drivers/dahdi/dahdi_dynamic.c
+++ b/drivers/dahdi/dahdi_dynamic.c
@@ -600,9 +600,10 @@ static int _create_dynamic(struct dahdi_dynamic_span *dds)
strlcpy(d->dname, dds->driver, sizeof(d->dname));
strlcpy(d->addr, dds->addr, sizeof(d->addr));
d->timing = dds->timing;
- sprintf(d->span.name, "DYN/%s/%s", dds->driver, dds->addr);
- sprintf(d->span.desc, "Dynamic '%s' span at '%s'",
- dds->driver, dds->addr);
+ snprintf(d->span.name, sizeof(d->span.name), "DYN/%s/%s",
+ dds->driver, dds->addr);
+ snprintf(d->span.desc, sizeof(d->span.desc),
+ "Dynamic '%s' span at '%s'", dds->driver, dds->addr);
d->span.deflaw = DAHDI_LAW_MULAW;
d->span.flags |= DAHDI_FLAG_RBS;
d->span.chans = d->chans;
@@ -653,6 +654,9 @@ static int _create_dynamic(struct dahdi_dynamic_span *dds)
return res;
}
+ d->ddev->devicetype = d->span.name;
+ d->ddev->hardware_id = d->span.name;
+ dev_set_name(&d->ddev->dev, "dynamic:%s:%d", dds->driver, dtd->id++);
list_add_tail(&d->span.device_node, &d->ddev->spans);
/* Whee! We're created. Now register the span */
if (dahdi_register_device(d->ddev, d->dev)) {
diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
index a0c96ae..8097cb3 100644
--- a/include/dahdi/kernel.h
+++ b/include/dahdi/kernel.h
@@ -1096,6 +1096,9 @@ struct dahdi_dynamic_driver {
struct list_head list;
struct module *owner;
+
+ /*! Numberic id of next device created by this driver. */
+ unsigned int id;
};
/*! \brief Receive a dynamic span message */