diff options
author | Kevin P. Fleming <kpfleming@digium.com> | 2009-06-23 20:32:01 +0000 |
---|---|---|
committer | Kevin P. Fleming <kpfleming@digium.com> | 2009-06-23 20:32:01 +0000 |
commit | 0a12dbd20192c4fc7a8fc36d2dabf6144d993c6c (patch) | |
tree | 7c409d971666f62712fd18c89a75c38f284132eb /drivers/dahdi/hpec | |
parent | 7088701ec6808c1dfa0f1db55760cea56fbe35d5 (diff) |
Use the same mutex lock for channel allocation and license checking in dahdi_echocan_hpec, so that channel allocation won't happen while the license is being checked (or rechecked)
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@6699 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/hpec')
-rw-r--r-- | drivers/dahdi/hpec/dahdi_echocan_hpec.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/dahdi/hpec/dahdi_echocan_hpec.c b/drivers/dahdi/hpec/dahdi_echocan_hpec.c index 17589b8..6a98d20 100644 --- a/drivers/dahdi/hpec/dahdi_echocan_hpec.c +++ b/drivers/dahdi/hpec/dahdi_echocan_hpec.c @@ -114,7 +114,7 @@ static void echo_can_process(struct dahdi_echocan_state *ec, short *isig, const hpec_channel_update(pvt->hpec, isig, iref); } -DECLARE_MUTEX(alloc_lock); +DECLARE_MUTEX(license_lock); static int echo_can_create(struct dahdi_chan *chan, struct dahdi_echocanparams *ecp, struct dahdi_echocanparam *p, struct dahdi_echocan_state **ec) @@ -133,12 +133,12 @@ static int echo_can_create(struct dahdi_chan *chan, struct dahdi_echocanparams * pvt->dahdi.ops = &my_ops; pvt->dahdi.features = my_features; - if (down_interruptible(&alloc_lock)) + if (down_interruptible(&license_lock)) return -ENOTTY; pvt->hpec = hpec_channel_alloc(ecp->tap_length); - up(&alloc_lock); + up(&license_lock); if (!pvt->hpec) { kfree(pvt); @@ -155,8 +155,6 @@ static int echo_can_traintap(struct dahdi_echocan_state *ec, int pos, short val) return 1; } -DECLARE_MUTEX(license_lock); - static int hpec_license_ioctl(unsigned int cmd, unsigned long data) { struct hpec_challenge challenge; |