Update of /cvsroot/linuxsh/linux/arch/sh/drivers/dma
In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv3314/arch/sh/drivers/dma
Modified Files:
dma-sh.c
Log Message:
Fix /proc/interrupts displaying random kernel memory for SH DMAC channels
Index: dma-sh.c
===================================================================
RCS file: /cvsroot/linuxsh/linux/arch/sh/drivers/dma/dma-sh.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- dma-sh.c 5 Feb 2006 15:25:52 -0000 1.15
+++ dma-sh.c 4 Aug 2006 20:04:22 -0000 1.16
@@ -81,12 +81,13 @@
static int sh_dmac_request_dma(struct dma_channel *chan)
{
- char name[32];
-
if (unlikely(!chan->flags & DMA_TEI_CAPABLE))
return 0;
- snprintf(name, sizeof(name), "DMAC Transfer End (Channel %d)",
+ chan->name = kzalloc(32, GFP_KERNEL);
+ if (unlikely(chan->name == NULL))
+ return -ENOMEM;
+ snprintf(chan->name, 32, "DMAC Transfer End (Channel %d)",
chan->chan);
return request_irq(get_dmte_irq(chan->chan), dma_tei,
@@ -96,6 +97,7 @@
static void sh_dmac_free_dma(struct dma_channel *chan)
{
free_irq(get_dmte_irq(chan->chan), chan);
+ kfree(chan->name);
}
static void
|