[PATCH v2] video: hyperv: hyperv_fb: Use physical memory for fb on HyperV Gen 1 VMs.

kbuild test robot lkp at intel.com
Mon Nov 25 13:07:37 UTC 2019


Hi Wei,

I love your patch! Yet something to improve:

[auto build test ERROR on next-20191122]
[cannot apply to linus/master v5.4-rc8 v5.4-rc7 v5.4-rc6 v5.4]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Wei-Hu/video-hyperv-hyperv_fb-Use-physical-memory-for-fb-on-HyperV-Gen-1-VMs/20191124-163533
base:    b9d3d01405061bb42358fe53f824e894a1922ced
config: i386-randconfig-b003-20191125 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-14) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   ld: kernel/dma/contiguous.o: in function `dma_alloc_from_contiguous':
>> kernel/dma/contiguous.c:199: undefined reference to `cma_alloc'
>> ld: kernel/dma/contiguous.c:199: undefined reference to `cma_alloc'
   ld: kernel/dma/contiguous.o: in function `dma_release_from_contiguous':
>> kernel/dma/contiguous.c:215: undefined reference to `cma_release'
>> ld: kernel/dma/contiguous.c:215: undefined reference to `cma_release'
   ld: kernel/dma/contiguous.o: in function `dma_alloc_contiguous':
   kernel/dma/contiguous.c:248: undefined reference to `cma_alloc'
   ld: kernel/dma/contiguous.o: in function `dma_free_contiguous':
   kernel/dma/contiguous.c:267: undefined reference to `cma_release'
   ld: kernel/dma/contiguous.c:267: undefined reference to `cma_release'
   ld: kernel/dma/contiguous.o: in function `dma_contiguous_reserve_area':
>> kernel/dma/contiguous.c:169: undefined reference to `cma_declare_contiguous'
>> ld: kernel/dma/contiguous.c:175: undefined reference to `cma_get_size'
>> ld: kernel/dma/contiguous.c:175: undefined reference to `cma_get_base'

vim +199 kernel/dma/contiguous.c

c64be2bb1c6eb4 drivers/base/dma-contiguous.c Marek Szyprowski 2011-12-29  145  
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  146  /**
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  147   * dma_contiguous_reserve_area() - reserve custom contiguous area
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  148   * @size: Size of the reserved area (in bytes),
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  149   * @base: Base address of the reserved area optional, use 0 for any
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  150   * @limit: End address of the reserved memory (optional, 0 for any).
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  151   * @res_cma: Pointer to store the created cma region.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  152   * @fixed: hint about where to place the reserved area
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  153   *
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  154   * This function reserves memory from early allocator. It should be
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  155   * called by arch specific code once the early allocator (memblock or bootmem)
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  156   * has been activated and all other subsystems have already allocated/reserved
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  157   * memory. This function allows to create custom reserved areas for specific
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  158   * devices.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  159   *
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  160   * If @fixed is true, reserve contiguous area at exactly @base.  If false,
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  161   * reserve in range from @base to @limit.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  162   */
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  163  int __init dma_contiguous_reserve_area(phys_addr_t size, phys_addr_t base,
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  164  				       phys_addr_t limit, struct cma **res_cma,
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  165  				       bool fixed)
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  166  {
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  167  	int ret;
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  168  
f318dd083c8128 drivers/base/dma-contiguous.c Laura Abbott     2017-04-18 @169  	ret = cma_declare_contiguous(base, size, limit, 0, 0, fixed,
f318dd083c8128 drivers/base/dma-contiguous.c Laura Abbott     2017-04-18  170  					"reserved", res_cma);
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  171  	if (ret)
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  172  		return ret;
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  173  
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  174  	/* Architecture specific contiguous memory fixup. */
a254129e8686bf drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06 @175  	dma_contiguous_early_fixup(cma_get_base(*res_cma),
a254129e8686bf drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  176  				cma_get_size(*res_cma));
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  177  
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  178  	return 0;
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  179  }
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  180  
c64be2bb1c6eb4 drivers/base/dma-contiguous.c Marek Szyprowski 2011-12-29  181  /**
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  182   * dma_alloc_from_contiguous() - allocate pages from contiguous area
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  183   * @dev:   Pointer to device for which the allocation is performed.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  184   * @count: Requested number of pages.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  185   * @align: Requested alignment of pages (in PAGE_SIZE order).
d834c5ab83febf kernel/dma/contiguous.c       Marek Szyprowski 2018-08-17  186   * @no_warn: Avoid printing message about failed allocation.
c64be2bb1c6eb4 drivers/base/dma-contiguous.c Marek Szyprowski 2011-12-29  187   *
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  188   * This function allocates memory buffer for specified device. It uses
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  189   * device specific contiguous memory area if available or the default
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  190   * global one. Requires architecture specific dev_get_cma_area() helper
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  191   * function.
c64be2bb1c6eb4 drivers/base/dma-contiguous.c Marek Szyprowski 2011-12-29  192   */
67a2e213e7e937 drivers/base/dma-contiguous.c Rohit Vaswani    2015-10-22  193  struct page *dma_alloc_from_contiguous(struct device *dev, size_t count,
d834c5ab83febf kernel/dma/contiguous.c       Marek Szyprowski 2018-08-17  194  				       unsigned int align, bool no_warn)
c64be2bb1c6eb4 drivers/base/dma-contiguous.c Marek Szyprowski 2011-12-29  195  {
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  196  	if (align > CONFIG_CMA_ALIGNMENT)
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  197  		align = CONFIG_CMA_ALIGNMENT;
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  198  
d834c5ab83febf kernel/dma/contiguous.c       Marek Szyprowski 2018-08-17 @199  	return cma_alloc(dev_get_cma_area(dev), count, align, no_warn);
c64be2bb1c6eb4 drivers/base/dma-contiguous.c Marek Szyprowski 2011-12-29  200  }
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  201  
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  202  /**
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  203   * dma_release_from_contiguous() - release allocated pages
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  204   * @dev:   Pointer to device for which the pages were allocated.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  205   * @pages: Allocated pages.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  206   * @count: Number of allocated pages.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  207   *
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  208   * This function releases memory allocated by dma_alloc_from_contiguous().
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  209   * It returns false when provided pages do not belong to contiguous area and
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  210   * true otherwise.
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  211   */
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  212  bool dma_release_from_contiguous(struct device *dev, struct page *pages,
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  213  				 int count)
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  214  {
a254129e8686bf drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06 @215  	return cma_release(dev_get_cma_area(dev), pages, count);
3162bbd7e65b9c drivers/base/dma-contiguous.c Joonsoo Kim      2014-08-06  216  }
de9e14eebf33a6 drivers/base/dma-contiguous.c Marek Szyprowski 2014-10-13  217  

:::::: The code at line 199 was first introduced by commit
:::::: d834c5ab83febf9624ad3b16c3c348aa1e02014c kernel/dma: remove unsupported gfp_mask parameter from dma_alloc_from_contiguous()

:::::: TO: Marek Szyprowski <m.szyprowski at samsung.com>
:::::: CC: Linus Torvalds <torvalds at linux-foundation.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 35695 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20191125/f13d01c3/attachment-0001.gz>


More information about the dri-devel mailing list