summaryrefslogtreecommitdiff
path: root/drivers/dahdi/voicebus
diff options
context:
space:
mode:
authorShaun Ruffell <sruffell@digium.com>2011-04-04 16:24:33 +0000
committerShaun Ruffell <sruffell@digium.com>2011-04-04 16:24:33 +0000
commitd24ae8b2ee4b2a73ac16ea3336ee72a858360883 (patch)
tree93e5796443aa7f4122d8c1cc1fd1d10a81bf245e /drivers/dahdi/voicebus
parent7972f393c7098bb0156654e3468deab10f7b8d9b (diff)
voicebus: Update the network debug device to use dma_pools.
r9402 switched to dma_pool for the SFRAMES. This updates the network debug device to use the dma_pools for SFRAME allocation. Signed-off-by: Shaun Ruffell <sruffell@digium.com> Acked-by: Michael Spiceland <mspiceland@digium.com> Acked-by: Kinsey Moore <kmoore@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9877 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'drivers/dahdi/voicebus')
-rw-r--r--drivers/dahdi/voicebus/voicebus.h10
-rw-r--r--drivers/dahdi/voicebus/voicebus_net.c11
2 files changed, 12 insertions, 9 deletions
diff --git a/drivers/dahdi/voicebus/voicebus.h b/drivers/dahdi/voicebus/voicebus.h
index 73bd724..aaf7c60 100644
--- a/drivers/dahdi/voicebus/voicebus.h
+++ b/drivers/dahdi/voicebus/voicebus.h
@@ -32,11 +32,6 @@
#include <linux/interrupt.h>
-#ifdef VOICEBUS_NET_DEBUG
-#include <linux/netdevice.h>
-#include <linux/etherdevice.h>
-#endif
-
#define VOICEBUS_DEFAULT_LATENCY 3U
#define VOICEBUS_DEFAULT_MAXLATENCY 25U
#define VOICEBUS_MAXLATENCY_BUMP 6U
@@ -76,6 +71,11 @@ struct dahdi_fifo *dahdi_fifo_alloc(size_t maxsize, gfp_t alloc_flags);
#endif
+#ifdef VOICEBUS_NET_DEBUG
+#include <linux/skbuff.h>
+#include <linux/netdevice.h>
+#include <linux/etherdevice.h>
+#endif
struct voicebus;
diff --git a/drivers/dahdi/voicebus/voicebus_net.c b/drivers/dahdi/voicebus/voicebus_net.c
index 4a82333..7d4af7f 100644
--- a/drivers/dahdi/voicebus/voicebus_net.c
+++ b/drivers/dahdi/voicebus/voicebus_net.c
@@ -3,7 +3,7 @@
*
* Written by Shaun Ruffell <sruffell@digium.com>
*
- * Copyright (C) 2010 Digium, Inc.
+ * Copyright (C) 2010-2011 Digium, Inc.
*
* All rights reserved.
@@ -57,8 +57,9 @@ static void *
skb_to_vbb(struct voicebus *vb, struct sk_buff *skb)
{
int res;
- void *vbb;
+ struct vbb *vbb;
const int COMMON_HEADER = 30;
+ dma_addr_t dma_addr;
if (skb->len != (VOICEBUS_SFRAME_SIZE + COMMON_HEADER)) {
dev_warn(&vb->pdev->dev, "Packet of length %d is not the "
@@ -67,13 +68,15 @@ skb_to_vbb(struct voicebus *vb, struct sk_buff *skb)
return NULL;
}
- vbb = voicebus_alloc(vb);
+ vbb = dma_pool_alloc(vb->pool, GFP_KERNEL, &dma_addr);
if (!vbb)
return NULL;
+
+ vbb->dma_addr = dma_addr;
res = skb_copy_bits(skb, COMMON_HEADER, vbb, VOICEBUS_SFRAME_SIZE);
if (res) {
dev_warn(&vb->pdev->dev, "Failed call to skb_copy_bits.\n");
- voicebus_free(vb, vbb);
+ dma_pool_free(vb->pool, vbb, vbb->dma_addr);
return NULL;
}
return vbb;