summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;