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

Reply via email to