Showing error 754

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: drivers/media/video/videobuf-dma-sg.c
Line in file: 421
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Smatch (1.59)
Entered: 2011-11-07 22:22:22 UTC


Source:

391        clear_user_page(page_address(page), (unsigned long)vmf->virtual_address,
392                        page);
393        vmf->page = page;
394        return 0;
395}
396
397static struct vm_operations_struct videobuf_vm_ops =
398{
399        .open     = videobuf_vm_open,
400        .close    = videobuf_vm_close,
401        .fault    = videobuf_vm_fault,
402};
403
404/* ---------------------------------------------------------------------
405 * SG handlers for the generic methods
406 */
407
408/* Allocated area consists on 3 parts:
409        struct video_buffer
410        struct <driver>_buffer (cx88_buffer, saa7134_buf, ...)
411        struct videobuf_dma_sg_memory
412 */
413
414static void *__videobuf_alloc(size_t size)
415{
416        struct videobuf_dma_sg_memory *mem;
417        struct videobuf_buffer *vb;
418
419        vb = kzalloc(size+sizeof(*mem),GFP_KERNEL);
420
421        mem = vb->priv = ((char *)vb)+size;
422        mem->magic=MAGIC_SG_MEM;
423
424        videobuf_dma_init(&mem->dma);
425
426        dprintk(1,"%s: allocated at %p(%ld+%ld) & %p(%ld)\n",
427                __func__,vb,(long)sizeof(*vb),(long)size-sizeof(*vb),
428                mem,(long)sizeof(*mem));
429
430        return vb;
431}
Show full sources