V4L/DVB (8252): buf-dma-sg.c: avoid clearing memory twice
authorChristophe Jaillet <jaillet.christophe@wanadoo.fr>
Fri, 4 Jul 2008 09:33:22 +0000 (06:33 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 20 Jul 2008 10:19:10 +0000 (07:19 -0300)
1) Remove a useless initialisation of 'i'

2) Avoid clearing the memory allocated twice (once in 'kcalloc', once
   in 'sg_init_table')

3) Remove a test that can never trigger.  The function returns NULL in
   such a case, so we know that at this point 'pages[0]' != NULL

Signed-off-by: Christophe Jaillet <jaillet.christophe@wanadoo.fr>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/videobuf-dma-sg.c

index 03a7b946bd5448b4b5e471836fd8469bdfc492c8..8ed60827d35088f76fa990017b9acf81e93df002 100644 (file)
@@ -80,17 +80,15 @@ struct scatterlist*
 videobuf_pages_to_sg(struct page **pages, int nr_pages, int offset)
 {
        struct scatterlist *sglist;
-       int i = 0;
+       int i;
 
        if (NULL == pages[0])
                return NULL;
-       sglist = kcalloc(nr_pages, sizeof(*sglist), GFP_KERNEL);
+       sglist = kmalloc(nr_pages * sizeof(*sglist), GFP_KERNEL);
        if (NULL == sglist)
                return NULL;
        sg_init_table(sglist, nr_pages);
 
-       if (NULL == pages[0])
-               goto nopage;
        if (PageHighMem(pages[0]))
                /* DMA to highmem pages might not work */
                goto highmem;