[linux-stable-rc:linux-4.4.y 8340/8366] drivers/media//v4l2-core/videobuf2-vmalloc.c:103:20: error: implicit declaration of function '__pfn_to_phys'; did you mean 'dma_to_phys'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.4.y
head:   a33ce4af3470ca75091b7a05ed6259e938186054
commit: 38b2082959efe95b2aa41c38c6a4f2dcdd6c2df1 [8340/8366] media: vb2: Fix videobuf2 to map correct area
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 38b2082959efe95b2aa41c38c6a4f2dcdd6c2df1
        # save the attached .config to linux build tree
        make.cross ARCH=ia64 

All errors (new ones prefixed by >>):

   drivers/media//v4l2-core/videobuf2-vmalloc.c: In function 'vb2_vmalloc_get_userptr':
>> drivers/media//v4l2-core/videobuf2-vmalloc.c:103:20: error: implicit declaration of function '__pfn_to_phys'; did you mean 'dma_to_phys'? [-Werror=implicit-function-declaration]
       ioremap_nocache(__pfn_to_phys(nums[0]), size + offset);
                       ^~~~~~~~~~~~~
                       dma_to_phys
   cc1: some warnings being treated as errors

vim +103 drivers/media//v4l2-core/videobuf2-vmalloc.c

    71	
    72	static void *vb2_vmalloc_get_userptr(void *alloc_ctx, unsigned long vaddr,
    73					     unsigned long size,
    74					     enum dma_data_direction dma_dir)
    75	{
    76		struct vb2_vmalloc_buf *buf;
    77		struct frame_vector *vec;
    78		int n_pages, offset, i;
    79	
    80		buf = kzalloc(sizeof(*buf), GFP_KERNEL);
    81		if (!buf)
    82			return NULL;
    83	
    84		buf->dma_dir = dma_dir;
    85		offset = vaddr & ~PAGE_MASK;
    86		buf->size = size;
    87		vec = vb2_create_framevec(vaddr, size, dma_dir == DMA_FROM_DEVICE);
    88		if (IS_ERR(vec))
    89			goto fail_pfnvec_create;
    90		buf->vec = vec;
    91		n_pages = frame_vector_count(vec);
    92		if (frame_vector_to_pages(vec) < 0) {
    93			unsigned long *nums = frame_vector_pfns(vec);
    94	
    95			/*
    96			 * We cannot get page pointers for these pfns. Check memory is
    97			 * physically contiguous and use direct mapping.
    98			 */
    99			for (i = 1; i < n_pages; i++)
   100				if (nums[i-1] + 1 != nums[i])
   101					goto fail_map;
   102			buf->vaddr = (__force void *)
 > 103				ioremap_nocache(__pfn_to_phys(nums[0]), size + offset);
   104		} else {
   105			buf->vaddr = vm_map_ram(frame_vector_pages(vec), n_pages, -1,
   106						PAGE_KERNEL);
   107		}
   108	
   109		if (!buf->vaddr)
   110			goto fail_map;
   111		buf->vaddr += offset;
   112		return buf;
   113	
   114	fail_map:
   115		vb2_destroy_framevec(vec);
   116	fail_pfnvec_create:
   117		kfree(buf);
   118	
   119		return NULL;
   120	}
   121	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux