tree:
https://github.com/intel/linux-intel-lts.git 4.9/yocto/base
head: 2a51382b3fd2c499ef6a2229389aa5c06481d1cf
commit: 6b6bf4cfb24e321833e1b8267d18440cd4c328d9 [4/9] Merge tag 'v4.9.220' into
lts2016/yocto
config: arm-allyesconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 7.5.0
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
git checkout 6b6bf4cfb24e321833e1b8267d18440cd4c328d9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.0 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 errors (new ones prefixed by >>):
drivers/gpu/drm/etnaviv/etnaviv_mmu.c: In function 'etnaviv_iommu_map_gem':
> drivers/gpu/drm/etnaviv/etnaviv_mmu.c:250:5: error: 'struct
etnaviv_iommu' has no member named 'need_flush'
mmu->need_flush
= true;
^~
drivers/gpu/drm/etnaviv/etnaviv_mmu.c: In function 'etnaviv_iommu_unmap_gem':
drivers/gpu/drm/etnaviv/etnaviv_mmu.c:268:5: error: 'struct etnaviv_iommu' has
no member named 'need_flush'
mmu->need_flush = true;
^~
#
https://github.com/intel/linux-intel-lts/commit/6b6bf4cfb24e321833e1b8267...
git remote add intel-linux-intel-lts
https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-linux-intel-lts 4.9/yocto/base
git checkout 6b6bf4cfb24e321833e1b8267d18440cd4c328d9
vim +250 drivers/gpu/drm/etnaviv/etnaviv_mmu.c
90969c9aa97700 Lucas Stach 2016-08-19 203
90969c9aa97700 Lucas Stach 2016-08-19 204 int etnaviv_iommu_map_gem(struct
etnaviv_iommu *mmu,
90969c9aa97700 Lucas Stach 2016-08-19 205 struct etnaviv_gem_object
*etnaviv_obj, u32 memory_base,
90969c9aa97700 Lucas Stach 2016-08-19 206 struct etnaviv_vram_mapping
*mapping)
90969c9aa97700 Lucas Stach 2016-08-19 207 {
90969c9aa97700 Lucas Stach 2016-08-19 208 struct sg_table *sgt =
etnaviv_obj->sgt;
90969c9aa97700 Lucas Stach 2016-08-19 209 struct drm_mm_node *node;
90969c9aa97700 Lucas Stach 2016-08-19 210 int ret;
90969c9aa97700 Lucas Stach 2016-08-19 211
90969c9aa97700 Lucas Stach 2016-08-19 212
lockdep_assert_held(&etnaviv_obj->lock);
90969c9aa97700 Lucas Stach 2016-08-19 213
90969c9aa97700 Lucas Stach 2016-08-19 214 mutex_lock(&mmu->lock);
90969c9aa97700 Lucas Stach 2016-08-19 215
90969c9aa97700 Lucas Stach 2016-08-19 216 /* v1 MMU can optimize single entry
(contiguous) scatterlists */
90969c9aa97700 Lucas Stach 2016-08-19 217 if (mmu->version ==
ETNAVIV_IOMMU_V1 &&
90969c9aa97700 Lucas Stach 2016-08-19 218 sgt->nents == 1 &&
!(etnaviv_obj->flags & ETNA_BO_FORCE_MMU)) {
90969c9aa97700 Lucas Stach 2016-08-19 219 u32 iova;
90969c9aa97700 Lucas Stach 2016-08-19 220
90969c9aa97700 Lucas Stach 2016-08-19 221 iova = sg_dma_address(sgt->sgl) -
memory_base;
90969c9aa97700 Lucas Stach 2016-08-19 222 if (iova < 0x80000000 -
sg_dma_len(sgt->sgl)) {
90969c9aa97700 Lucas Stach 2016-08-19 223 mapping->iova = iova;
90969c9aa97700 Lucas Stach 2016-08-19 224
list_add_tail(&mapping->mmu_node, &mmu->mappings);
90969c9aa97700 Lucas Stach 2016-08-19 225 mutex_unlock(&mmu->lock);
90969c9aa97700 Lucas Stach 2016-08-19 226 return 0;
90969c9aa97700 Lucas Stach 2016-08-19 227 }
90969c9aa97700 Lucas Stach 2016-08-19 228 }
90969c9aa97700 Lucas Stach 2016-08-19 229
90969c9aa97700 Lucas Stach 2016-08-19 230 node = &mapping->vram_node;
90969c9aa97700 Lucas Stach 2016-08-19 231
90969c9aa97700 Lucas Stach 2016-08-19 232 ret = etnaviv_iommu_find_iova(mmu,
node, etnaviv_obj->base.size);
a8c21a5451d831 The etnaviv authors 2015-12-03 233 if (ret < 0) {
a8c21a5451d831 The etnaviv authors 2015-12-03 234 mutex_unlock(&mmu->lock);
a8c21a5451d831 The etnaviv authors 2015-12-03 235 return ret;
a8c21a5451d831 The etnaviv authors 2015-12-03 236 }
a8c21a5451d831 The etnaviv authors 2015-12-03 237
a8c21a5451d831 The etnaviv authors 2015-12-03 238 mmu->last_iova = node->start +
etnaviv_obj->base.size;
a8c21a5451d831 The etnaviv authors 2015-12-03 239 mapping->iova = node->start;
a8c21a5451d831 The etnaviv authors 2015-12-03 240 ret = etnaviv_iommu_map(mmu,
node->start, sgt, etnaviv_obj->base.size,
a8c21a5451d831 The etnaviv authors 2015-12-03 241 IOMMU_READ | IOMMU_WRITE);
a8c21a5451d831 The etnaviv authors 2015-12-03 242
a8c21a5451d831 The etnaviv authors 2015-12-03 243 if (ret < 0) {
a8c21a5451d831 The etnaviv authors 2015-12-03 244 drm_mm_remove_node(node);
a8c21a5451d831 The etnaviv authors 2015-12-03 245 mutex_unlock(&mmu->lock);
a8c21a5451d831 The etnaviv authors 2015-12-03 246 return ret;
a8c21a5451d831 The etnaviv authors 2015-12-03 247 }
a8c21a5451d831 The etnaviv authors 2015-12-03 248
a8c21a5451d831 The etnaviv authors 2015-12-03 249
list_add_tail(&mapping->mmu_node, &mmu->mappings);
7a8d0aae150b2a Lucas Stach 2017-01-17 @250 mmu->need_flush = true;
a8c21a5451d831 The etnaviv authors 2015-12-03 251 mutex_unlock(&mmu->lock);
a8c21a5451d831 The etnaviv authors 2015-12-03 252
a8c21a5451d831 The etnaviv authors 2015-12-03 253 return ret;
a8c21a5451d831 The etnaviv authors 2015-12-03 254 }
a8c21a5451d831 The etnaviv authors 2015-12-03 255
:::::: The code at line 250 was first introduced by commit
:::::: 7a8d0aae150b2a86614c4f849413422536bcc53e drm/etnaviv: always flush MMU TLBs on
map/unmap
:::::: TO: Lucas Stach <l.stach(a)pengutronix.de>
:::::: CC: Fei Yang <fei.yang(a)intel.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org