V4L/DVB: gspca - main: Don't use the PG_Reserved flag for mmapped buffers
authorJean-François Moine <moinejf@free.fr>
Thu, 24 Jun 2010 08:14:22 +0000 (05:14 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Mon, 2 Aug 2010 17:52:20 +0000 (14:52 -0300)
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/gspca/gspca.c

index b7a5655..03a2451 100644 (file)
@@ -506,36 +506,6 @@ static int gspca_is_compressed(__u32 format)
        return 0;
 }
 
-static void *rvmalloc(long size)
-{
-       void *mem;
-       unsigned long adr;
-
-       mem = vmalloc_32(size);
-       if (mem != NULL) {
-               adr = (unsigned long) mem;
-               while (size > 0) {
-                       SetPageReserved(vmalloc_to_page((void *) adr));
-                       adr += PAGE_SIZE;
-                       size -= PAGE_SIZE;
-               }
-       }
-       return mem;
-}
-
-static void rvfree(void *mem, long size)
-{
-       unsigned long adr;
-
-       adr = (unsigned long) mem;
-       while (size > 0) {
-               ClearPageReserved(vmalloc_to_page((void *) adr));
-               adr += PAGE_SIZE;
-               size -= PAGE_SIZE;
-       }
-       vfree(mem);
-}
-
 static int frame_alloc(struct gspca_dev *gspca_dev,
                        unsigned int count)
 {
@@ -550,7 +520,7 @@ static int frame_alloc(struct gspca_dev *gspca_dev,
        gspca_dev->frsz = frsz;
        if (count > GSPCA_MAX_FRAMES)
                count = GSPCA_MAX_FRAMES;
-       gspca_dev->frbuf = rvmalloc(frsz * count);
+       gspca_dev->frbuf = vmalloc_32(frsz * count);
        if (!gspca_dev->frbuf) {
                err("frame alloc failed");
                return -ENOMEM;
@@ -582,8 +552,7 @@ static void frame_free(struct gspca_dev *gspca_dev)
 
        PDEBUG(D_STREAM, "frame free");
        if (gspca_dev->frbuf != NULL) {
-               rvfree(gspca_dev->frbuf,
-                       gspca_dev->nframes * gspca_dev->frsz);
+               vfree(gspca_dev->frbuf);
                gspca_dev->frbuf = NULL;
                for (i = 0; i < gspca_dev->nframes; i++)
                        gspca_dev->frame[i].data = NULL;