> +
> +/* Here we want the physical address of the memory.
> + * This is used when initializing the contents of the
> + * area and marking the pages as reserved.
> + */
> +static inline unsigned long kvirt_to_pa(unsigned long adr)
> +{
> + unsigned long kva, ret;
> +
> + kva = (unsigned long) page_address(vmalloc_to_page((void *)adr));
> + kva |= adr & (PAGE_SIZE-1); /* restore the offset */
> + ret = __pa(kva);
> + return ret;
> +}
> +
> +static void *rvmalloc(unsigned long size)
> +{
> + void *mem;
> + unsigned long adr;
> +
> + /* Round it off to PAGE_SIZE */
> + size = PAGE_ALIGN(size);
> +
> + mem = vmalloc_32(size);
> + if (!mem)
> + return NULL;
> +
> + memset(mem, 0, size); /* Clear the ram out, no junk to the user */
> + adr = (unsigned long) mem;
> +
> + while ((long)size > 0) {
> + SetPageReserved(vmalloc_to_page((void *)adr));
> + adr += PAGE_SIZE;
> + size -= PAGE_SIZE;
> + }
> + return mem;
> +}
you are adding rvmalloc copy number 14; seems you own the task to make
it generic now ;)
Also I thought SetPageReserved and friends are deprecated :)
> +struct camera_data {
> + /* locks */
> + struct semaphore busy_lock; /* guard against SMP multithreading */
> + struct v4l2_prio_state prio;
> +
please make this use mutexes; adding new semaphores for no reason is not
a good idea...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]