[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