[dahdi-commits] tzafrir: linux/trunk r9090 -	/linux/trunk/drivers/dahdi/dahdi-base.c
    SVN commits to the DAHDI project 
    dahdi-commits at lists.digium.com
       
    Thu Aug  5 16:05:15 CDT 2010
    
    
  
Author: tzafrir
Date: Thu Aug  5 16:05:11 2010
New Revision: 9090
URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=9090
Log:
don't crash on disconnecting of AB
This is a regression from r8985 . The temporary 'module' was there because
the pointer 'chan' may become invalid after the close function.
Modified:
    linux/trunk/drivers/dahdi/dahdi-base.c
Modified: linux/trunk/drivers/dahdi/dahdi-base.c
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/dahdi-base.c?view=diff&rev=9090&r1=9089&r2=9090
==============================================================================
--- linux/trunk/drivers/dahdi/dahdi-base.c (original)
+++ linux/trunk/drivers/dahdi/dahdi-base.c Thu Aug  5 16:05:11 2010
@@ -2771,9 +2771,11 @@
 		spin_unlock_irqrestore(&chan->lock, flags);
 		close_channel(chan);
 		if (chan->span) {
+			struct module *owner = chan->span->ops->owner;
+
 			if (chan->span->ops->close)
 				res = chan->span->ops->close(chan);
-			module_put(chan->span->ops->owner);
+			module_put(owner);
 		}
 		/* The channel might be destroyed by low-level driver span->close() */
 		if (chans[unit])
    
    
More information about the dahdi-commits
mailing list