summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuss Meyerriecks <rmeyerreicks@digium.com>2012-09-21 18:16:30 +0000
committerRuss Meyerriecks <rmeyerreicks@digium.com>2012-09-21 18:16:30 +0000
commit3b001da831583986c95945f2a946569cdc9cf893 (patch)
treee9ab6c61fb18d1004582b58d24a058480f8a05d2
parentb14d6e793291b6e48c8c9d9e5182deb830722471 (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.c7
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);