diff options
Diffstat (limited to 'drivers/dahdi/dahdi-base.c')
-rw-r--r-- | drivers/dahdi/dahdi-base.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c index ed59d26..f2b4cd7 100644 --- a/drivers/dahdi/dahdi-base.c +++ b/drivers/dahdi/dahdi-base.c @@ -2451,7 +2451,9 @@ static int dahdi_specchan_release(struct inode *node, struct file *file, int uni close_channel(chans[unit]); if (chans[unit]->span && chans[unit]->span->close) res = chans[unit]->span->close(chans[unit]); - clear_bit(DAHDI_FLAGBIT_OPEN, &chans[unit]->flags); + /* The channel might be destroyed by low-level driver span->close() */ + if(chans[unit]) + clear_bit(DAHDI_FLAGBIT_OPEN, &chans[unit]->flags); } else res = -ENXIO; return res; |