diff options
author | Russ Meyerriecks <rmeyerreicks@digium.com> | 2012-09-21 18:16:30 +0000 |
---|---|---|
committer | Russ Meyerriecks <rmeyerreicks@digium.com> | 2012-09-21 18:16:30 +0000 |
commit | 3b001da831583986c95945f2a946569cdc9cf893 (patch) | |
tree | e9ab6c61fb18d1004582b58d24a058480f8a05d2 | |
parent | b14d6e793291b6e48c8c9d9e5182deb830722471 (diff) |
dahdi-base: Minor maint mode error
The previous maint state was saved regardless if the base driver returned an
error or not. This caused strange behavior in dahdi tools. Moved the maint
state save to after the switch case to reflect this.
https://issues.asterisk.org/jira/browse/DAHDI-984
Signed-off-by: Russ Meyerriecks <rmeyerriecks@digium.com>
git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10718 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r-- | drivers/dahdi/dahdi-base.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index 70edabc..9b407e3 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -5188,8 +5188,7 @@ static int dahdi_ioctl_maint(unsigned long data) spin_lock_irqsave(&s->lock, flags); /* save current maint state */ i = s->maintstat; - /* set maint mode */ - s->maintstat = maint.command; + switch (maint.command) { case DAHDI_MAINT_NONE: case DAHDI_MAINT_LOCALLOOP: @@ -5248,6 +5247,10 @@ static int dahdi_ioctl_maint(unsigned long data) put_span(s); return -ENOSYS; } + + /* set maint mode */ + s->maintstat = maint.command; + dahdi_alarm_notify(s); /* process alarm-related events */ spin_unlock_irqrestore(&s->lock, flags); put_span(s); |