2010-08-13 18:32:13

by Ira W. Snyder

[permalink] [raw]
Subject: [PATCH 1/1] kfifo: fix DMA sample driver

The kfifo DMA sample driver is broken. It does not properly initialize
the scatterlist, and therefore causes a kernel BUG with
CONFIG_DEBUG_SG=y.

Signed-off-by: Ira W. Snyder <[email protected]>
---
samples/kfifo/dma-example.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/samples/kfifo/dma-example.c b/samples/kfifo/dma-example.c
index b9482c2..baa5060 100644
--- a/samples/kfifo/dma-example.c
+++ b/samples/kfifo/dma-example.c
@@ -45,6 +45,9 @@ static int __init example_init(void)

printk(KERN_INFO "queue len: %u\n", kfifo_len(&fifo));

+ /* initialize scatterlist */
+ sg_init_table(sg, ARRAY_SIZE(sg));
+
ret = kfifo_dma_in_prepare(&fifo, sg, ARRAY_SIZE(sg), FIFO_SIZE);
printk(KERN_INFO "DMA sgl entries: %d\n", ret);

--
1.7.1


2010-08-13 18:34:10

by Ira W. Snyder

[permalink] [raw]
Subject: Re: [PATCH 1/1] kfifo: fix DMA sample driver

On Fri, Aug 13, 2010 at 11:32:11AM -0700, Ira W. Snyder wrote:
> The kfifo DMA sample driver is broken. It does not properly initialize
> the scatterlist, and therefore causes a kernel BUG with
> CONFIG_DEBUG_SG=y.
>
> Signed-off-by: Ira W. Snyder <[email protected]>
> ---

Whoops, forgot to CC Stefani Seibold.

> samples/kfifo/dma-example.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/samples/kfifo/dma-example.c b/samples/kfifo/dma-example.c
> index b9482c2..baa5060 100644
> --- a/samples/kfifo/dma-example.c
> +++ b/samples/kfifo/dma-example.c
> @@ -45,6 +45,9 @@ static int __init example_init(void)
>
> printk(KERN_INFO "queue len: %u\n", kfifo_len(&fifo));
>
> + /* initialize scatterlist */
> + sg_init_table(sg, ARRAY_SIZE(sg));
> +
> ret = kfifo_dma_in_prepare(&fifo, sg, ARRAY_SIZE(sg), FIFO_SIZE);
> printk(KERN_INFO "DMA sgl entries: %d\n", ret);
>
> --
> 1.7.1
>