summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xzaptel.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/zaptel.c b/zaptel.c
index bd2ac96..6a5c2e7 100755
--- a/zaptel.c
+++ b/zaptel.c
@@ -2910,7 +2910,9 @@ static int zt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd
/* if same, ignore it */
if (i == maint.command) break;
rv = spans[maint.spanno]->maint(spans[maint.spanno], maint.command);
+ spin_unlock_irqrestore(&spans[maint.spanno]->lock, flags);
if (rv) return rv;
+ spin_lock_irqsave(&spans[maint.spanno]->lock, flags);
break;
case ZT_MAINT_LOOPUP:
case ZT_MAINT_LOOPDOWN:
@@ -3815,6 +3817,7 @@ int zt_register(struct zt_span *span, int prefmaster)
}
span->flags |= ZT_FLAG_REGISTERED;
span->spanno = x;
+ spin_lock_init(&span->lock);
if (!span->deflaw) {
printk("zaptel: Span %s didn't specify default law. Assuming mulaw, please fix driver!\n", span->name);
span->deflaw = ZT_LAW_MULAW;