summaryrefslogtreecommitdiff
path: root/zaptel.c
diff options
context:
space:
mode:
authormarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2003-06-29 04:46:24 +0000
committermarkster <markster@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2003-06-29 04:46:24 +0000
commit60966b82705330cd91d788d651c71d9f55e46966 (patch)
tree4d9ca1c1799131b3035cc6a4e473545a82c68b0c /zaptel.c
parent57259a61fe1f92cd56c2e4b4d31ddf23bf42a013 (diff)
Fix locking issues
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@203 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel.c')
-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;