diff options
author | Shaun Ruffell <sruffell@digium.com> | 2011-04-04 16:24:33 +0000 |
---|---|---|
committer | Shaun Ruffell <sruffell@digium.com> | 2011-04-04 16:24:33 +0000 |
commit | d24ae8b2ee4b2a73ac16ea3336ee72a858360883 (patch) | |
tree | 93e5796443aa7f4122d8c1cc1fd1d10a81bf245e | |
parent | 7972f393c7098bb0156654e3468deab10f7b8d9b (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
-rw-r--r-- | drivers/dahdi/voicebus/voicebus.h | 10 | ||||
-rw-r--r-- | drivers/dahdi/voicebus/voicebus_net.c | 11 |
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; |