diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index eff2957..773b8a1 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -7153,6 +7153,13 @@ static void __dahdi_init_span(struct dahdi_span *span) spin_lock_init(&span->lock); clear_bit(DAHDI_FLAGBIT_REGISTERED, &span->flags); + /* DAHDI_ALARM_NOTOPEN can be set when a span is disabled, i.e. via + * sysfs, so when the span is being initialized again before + * reassignment we should make sure it's cleared. This eliminates the + * need for board drivers to re-report their alarm states on span + * reassignment. */ + span->alarms &= ~DAHDI_ALARM_NOTOPEN; + if (!span->deflaw) { module_printk(KERN_NOTICE, "Span %s didn't specify default " "law. Assuming mulaw, please fix driver!\n",