Hi Thomas,
I love your patch! Perhaps something to improve:
[auto build test WARNING on next-20200914]
[also build test WARNING on v5.9-rc5]
[cannot apply to linuxtv-media/master drm-intel/for-linux-next tegra/for-next linus/master
v5.9-rc5 v5.9-rc4 v5.9-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Thomas-Zimmermann/dma-buf-Flag-v...
base: f965d3ec86fa89285db0fbb983da76ba9c398efa
config: arm-randconfig-r002-20200914 (attached as .config)
compiler: clang version 12.0.0 (
https://github.com/llvm/llvm-project
b2c32c90bab09a6e2c1f370429db26017a182143)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> drivers/gpu/drm/drm_gem_cma_helper.c:179:50: warning: variable
'cma_obj' is uninitialized when used here [-Wuninitialized]
struct dma_buf_map map = DMA_BUF_MAP_INIT_VADDR(cma_obj->vaddr);
^~~~~~~
include/linux/dma-buf-map.h:37:13: note: expanded from macro
'DMA_BUF_MAP_INIT_VADDR'
.vaddr = (vaddr_), \
^~~~~~
drivers/gpu/drm/drm_gem_cma_helper.c:178:36: note: initialize the variable
'cma_obj' to silence this warning
struct drm_gem_cma_object *cma_obj;
^
= NULL
1 warning generated.
#
https://github.com/0day-ci/linux/commit/7fd403952126005980734501c5d0de5e1...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Thomas-Zimmermann/dma-buf-Flag-vmap-ed-memory-as-system-or-I-O-memory/20200914-192712
git checkout 7fd403952126005980734501c5d0de5e13b3673b
vim +/cma_obj +179 drivers/gpu/drm/drm_gem_cma_helper.c
165
166 /**
167 * drm_gem_cma_free_object - free resources associated with a CMA GEM object
168 * @gem_obj: GEM object to free
169 *
170 * This function frees the backing memory of the CMA GEM object, cleans up the
171 * GEM object state and frees the memory used to store the object itself.
172 * If the buffer is imported and the virtual address is set, it is released.
173 * Drivers using the CMA helpers should set this as their
174 * &drm_driver.gem_free_object_unlocked callback.
175 */
176 void drm_gem_cma_free_object(struct drm_gem_object *gem_obj)
177 {
178 struct drm_gem_cma_object *cma_obj;
179 struct dma_buf_map map =
DMA_BUF_MAP_INIT_VADDR(cma_obj->vaddr);
180
181 cma_obj = to_drm_gem_cma_obj(gem_obj);
182
183 if (gem_obj->import_attach) {
184 if (cma_obj->vaddr)
185 dma_buf_vunmap(gem_obj->import_attach->dmabuf, &map);
186 drm_prime_gem_destroy(gem_obj, cma_obj->sgt);
187 } else if (cma_obj->vaddr) {
188 dma_free_wc(gem_obj->dev->dev, cma_obj->base.size,
189 cma_obj->vaddr, cma_obj->paddr);
190 }
191
192 drm_gem_object_release(gem_obj);
193
194 kfree(cma_obj);
195 }
196 EXPORT_SYMBOL_GPL(drm_gem_cma_free_object);
197
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org