From 3b001da831583986c95945f2a946569cdc9cf893 Mon Sep 17 00:00:00 2001 From: Russ Meyerriecks Date: Fri, 21 Sep 2012 18:16:30 +0000 Subject: 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 git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10718 a0bf4364-ded3-4de4-8d8a-66a801d63aff --- drivers/dahdi/dahdi-base.c | 7 +++++-- 1 file 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); -- cgit v1.2.3