diff options
author | Russ Meyerriecks <rmeyerreicks@digium.com> | 2009-09-14 20:30:24 +0000 |
---|---|---|
committer | Russ Meyerriecks <rmeyerreicks@digium.com> | 2009-09-14 20:30:24 +0000 |
commit | d766adf4e70c9bb12fa3964ad8775c9f68737f9c (patch) | |
tree | 6fc7b07addc916c346c7916f2588f3f20fad4ca7 | |
parent | 3f7b5175a417301b4e4d63b291c441da9f6c0d0d (diff) |
Fixed issue where the clear channel flags were not being set at the appropriate time causing a channel re-configure to mis-set the last channel in each span
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@7110 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r-- | drivers/dahdi/dahdi-base.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index c1c28c8..6f11b4b 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -4094,9 +4094,6 @@ static int dahdi_ctl_ioctl(struct inode *inode, struct file *file, unsigned int if ((sigcap & ch.sigtype) != ch.sigtype) res = -EINVAL; - if (!res && chans[ch.chan]->span->chanconfig) - res = chans[ch.chan]->span->chanconfig(chans[ch.chan], ch.sigtype); - if (chans[ch.chan]->master != chans[ch.chan]) { struct dahdi_chan *oldmaster = chans[ch.chan]->master; @@ -4167,6 +4164,12 @@ static int dahdi_ctl_ioctl(struct inode *inode, struct file *file, unsigned int else chans[ch.chan]->flags &= ~DAHDI_FLAG_MTP2; } + + if (!res && chans[ch.chan]->span->chanconfig){ + res = chans[ch.chan]->span->chanconfig(chans[ch.chan], + ch.sigtype); + } + #ifdef CONFIG_DAHDI_NET if (!res && (newmaster == chans[ch.chan]) && |