[svn-commits] sruffell: branch linux/sruffell/dahdi-linux-refcounts r6773 - in /linux/team/...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Jun 26 12:27:14 CDT 2009


Author: sruffell
Date: Fri Jun 26 12:27:10 2009
New Revision: 6773

URL: http://svn.asterisk.org/svn-view/dahdi?view=rev&rev=6773
Log:
Merged revisions 6768,6771 via svnmerge from 
https://origsvn.digium.com/svn/dahdi/linux/trunk

........
  r6768 | sruffell | 2009-06-26 12:07:39 -0500 (Fri, 26 Jun 2009) | 1 line
  
  wct4xxp: Unmap the same size DMA window that was mapped.
........
  r6771 | sruffell | 2009-06-26 12:22:45 -0500 (Fri, 26 Jun 2009) | 6 lines
  
  dahdi_dynamic: Release the dlock before calling accross modules.
  
  Resolves a hard lock due to a recursive spinlock grab at startup.
  
  Reported by: mapacheco
  (closes issue #15210)
........

Modified:
    linux/team/sruffell/dahdi-linux-refcounts/   (props changed)
    linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/dahdi_dynamic.c
    linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/wct4xxp/base.c

Propchange: linux/team/sruffell/dahdi-linux-refcounts/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Fri Jun 26 12:27:10 2009
@@ -1,1 +1,1 @@
-/linux/trunk:1-6763
+/linux/trunk:1-6772

Modified: linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/dahdi_dynamic.c
URL: http://svn.asterisk.org/svn-view/dahdi/linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/dahdi_dynamic.c?view=diff&rev=6773&r1=6772&r2=6773
==============================================================================
--- linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/dahdi_dynamic.c (original)
+++ linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/dahdi_dynamic.c Fri Jun 26 12:27:10 2009
@@ -239,7 +239,9 @@
 			dahdi_receive(&z->span);
 			dahdi_transmit(&z->span);
 			/* Handle all transmissions now */
+			spin_unlock_irqrestore(&dlock, flags);
 			ztd_sendmessage(z);
+			spin_lock_irqsave(&dlock, flags);
 		}
 		z = z->next;
 	}

Modified: linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/wct4xxp/base.c
URL: http://svn.asterisk.org/svn-view/dahdi/linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/wct4xxp/base.c?view=diff&rev=6773&r1=6772&r2=6773
==============================================================================
--- linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/wct4xxp/base.c (original)
+++ linux/team/sruffell/dahdi-linux-refcounts/drivers/dahdi/wct4xxp/base.c Fri Jun 26 12:27:10 2009
@@ -3807,6 +3807,7 @@
 {
 	struct t4 *wc = pci_get_drvdata(pdev);
 	struct dahdi_span *span;
+	int basesize;
 	int i;
 
 	if (!wc) {
@@ -3822,6 +3823,10 @@
 	wc->vpm450m = NULL;
 	/* Unregister spans */
 
+	basesize = DAHDI_MAX_CHUNKSIZE * 32 * 4;
+	if (!(wc->tspans[0]->spanflags & FLAG_2NDGEN))
+		basesize = basesize * 2;
+
 	for (i = 0; i < wc->numspans; ++i) {
 		span = &wc->tspans[i]->span;
 		if (test_bit(DAHDI_FLAGBIT_REGISTERED, &span->flags))
@@ -3842,7 +3847,9 @@
 	pci_release_regions(pdev);		
 	
 	/* Immediately free resources */
-	pci_free_consistent(pdev, DAHDI_MAX_CHUNKSIZE * 2 * 2 * 32 * 4, (void *)wc->writechunk, wc->writedma);
+
+	pci_free_consistent(pdev, basesize * 2,
+				(void *)wc->writechunk, wc->writedma);
 	
 	order_index[wc->order]--;
 	




More information about the svn-commits mailing list