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 |
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}