Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp1155120ybl; Tue, 13 Aug 2019 08:12:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqwMGlTUaz2D9Es9iYWPWp9E4IaTIMVnej3J4628b6WRiENBFZDZuX2GClawJxwypxuV261G X-Received: by 2002:a17:902:f81:: with SMTP id 1mr37919494plz.191.1565709142687; Tue, 13 Aug 2019 08:12:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565709142; cv=none; d=google.com; s=arc-20160816; b=siw6DokOPxZX1uqUEbwNGOfWk90Hd8zNlc5gZVE2uu3MKzioYiB08QqSMiDDa4bgko L2bieMKmO42HIzVaeq+6wWwgFaKock56KsCbxe44nG4wl/hjLMeWKNU9515fIjAmWD05 OHZVIIbrCCK8iPndnOszhI+8jzha0vXBDue1hcqjxVJwdPRo4ixB4ugDOSKi53cZF6hJ Mj9+c7/vUARBs4DQ8AbaeBOuvtKztqKZCYxNnj5XKl+7w3LQD6TsJtJRUtD1FIAmxGDI MyAIjqboEeQzOZmBUl34nQ0fmFOqWasvnNtsfBS5hVbPS+OHHyEohsH9Bh0iuZ9bUC80 Mudg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=Tp5uld9lfHh18m7fY/6QUhAxi+QJxhfd3CiVIG0MbmA=; b=xTUTapB7u24aPMAnFsGFEEz9cSZWqWBlP7DHO2pXsTV2JN2ct/RFcK20qZqMgjGSkg UV6w3NP3b8Ydzoi7iDPRumkQJIGpHEUWD8h+nhn2ShIiKdmh4VpldV6hPLtUqQC/06OI MaVdRexgne+vwfu0c0/Mj0CSLoYQPTJMC4Xsd2kM9LV6gEQjQ837k3+dtEhER8p7cOcw 2wWuNlDLrWwiFls/5YTan2+gtwVbVMdD5VT74GLqWyrhlgz2c4BCY93z8O4zikSW16ER lR6zM1K5Rmk5atfukgU7SOKKdqgc0I0u0kBlifuvOywKSwV3vh5Yl+GtPWJclDbX9byD 8w3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=SvKOy3G5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j66si58982004plb.375.2019.08.13.08.12.05; Tue, 13 Aug 2019 08:12:22 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=SvKOy3G5; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729918AbfHMPLW (ORCPT + 99 others); Tue, 13 Aug 2019 11:11:22 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:35765 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726637AbfHMPLW (ORCPT ); Tue, 13 Aug 2019 11:11:22 -0400 Received: by mail-wm1-f66.google.com with SMTP id l2so1777754wmg.0 for ; Tue, 13 Aug 2019 08:11:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Tp5uld9lfHh18m7fY/6QUhAxi+QJxhfd3CiVIG0MbmA=; b=SvKOy3G5pJS3mk1jeffqIzNAczI/Ay18RBtKMOh1OQQzWPahTziS+4cY+C3TooFhli TCP9ULVfdPyKrndaF23rY7fIsC/hZFzlfxXEIe2YjD1Hlik1x4I7oG9Z59wd6otHTKEo nzsrLUK8egIfMI4RKMePtWuA+vkZTG7MfDPCgOWj+oYAla2TGgx1BlCtKqAn8jXVX4Zq JpPL1gFVVB2XiavP8k5O9G7wUyihZcDTKAaeo2jPQVeW83UnNxNXJjq0VN4Eb3Bd1WrK LXoCC1+9rSTyCI+6BF961bkiwsX/On9jTyJ8Fg19e8RPfTtMweR84vbba4/XR3cjYF2d /IUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=Tp5uld9lfHh18m7fY/6QUhAxi+QJxhfd3CiVIG0MbmA=; b=b+tChWcwejT2sssHCx0OK3Lqr6wf39xc6GQfa4+vrOzZaCqDQUvRqQ0bQ66a7cTzAI +dcuKCHtHatT7olPLB0VLwDSUNlqk3f0BFEsssdG+BLfMfPK0mXdsdogyTHFALU1fPzC LbFZgpOSHchxmov+g4AWdPJhJqiuREP0CJdQMdGKSOjSGNbH/o5x299MhLV1H4TMcdOI ld7X+D6rfNg91CMO4E/0965I6cHKNc2jrK5ZFNaGHIcVpcjkETQJrn817LTfSHo9B39Z 7h7IUaUoy0+3n1gYozSyD3J8stYEQb1UVbiPhnkrUt9XUgrO5glE97qDt0Eba7E44Hp+ 5Bqg== X-Gm-Message-State: APjAAAVR/dNR5kBMCJP5qV8xAPaafUQGxOBkeo9R1gXwGIMJByzxRqY8 VU4r3xmzSVe+CbiBK5CQY64= X-Received: by 2002:a7b:c310:: with SMTP id k16mr3491360wmj.133.1565709078621; Tue, 13 Aug 2019 08:11:18 -0700 (PDT) Received: from localhost (pD9E51890.dip0.t-ipconnect.de. [217.229.24.144]) by smtp.gmail.com with ESMTPSA id k124sm3839100wmk.47.2019.08.13.08.11.16 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Tue, 13 Aug 2019 08:11:16 -0700 (PDT) Date: Tue, 13 Aug 2019 17:11:15 +0200 From: Thierry Reding To: Gerd Hoffmann Cc: dri-devel@lists.freedesktop.org, David Airlie , "open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS" , "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , Huang Rui , "David (ChunMing) Zhou" , Thomas Hellstrom , "open list:RADEON and AMDGPU DRM DRIVERS" , Maxime Ripard , VMware Graphics , bskeggs@redhat.com, Dave Airlie , thomas@shipmail.org, tzimmermann@suse.de, ckoenig.leichtzumerken@gmail.com, intel-gfx@lists.freedesktop.org, "open list:DRM DRIVER FOR QXL VIRTUAL GPU" , open list , Alex Deucher , Christian =?utf-8?B?S8O2bmln?= Subject: Re: [Intel-gfx] [PATCH v6 08/17] drm/ttm: use gem vma_node Message-ID: <20190813151115.GA29955@ulmo> References: <20190805140119.7337-1-kraxel@redhat.com> <20190805140119.7337-9-kraxel@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="tKW2IUtsqtDRztdT" Content-Disposition: inline In-Reply-To: <20190805140119.7337-9-kraxel@redhat.com> User-Agent: Mutt/1.12.1 (2019-06-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --tKW2IUtsqtDRztdT Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Aug 05, 2019 at 04:01:10PM +0200, Gerd Hoffmann wrote: > Drop vma_node from ttm_buffer_object, use the gem struct > (base.vma_node) instead. >=20 > Signed-off-by: Gerd Hoffmann > Reviewed-by: Christian K=C3=B6nig > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_object.h | 2 +- > drivers/gpu/drm/qxl/qxl_object.h | 2 +- > drivers/gpu/drm/radeon/radeon_object.h | 2 +- > drivers/gpu/drm/virtio/virtgpu_drv.h | 2 +- > include/drm/ttm/ttm_bo_api.h | 4 ---- > drivers/gpu/drm/drm_gem_vram_helper.c | 2 +- > drivers/gpu/drm/nouveau/nouveau_display.c | 2 +- > drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +- > drivers/gpu/drm/ttm/ttm_bo.c | 8 ++++---- > drivers/gpu/drm/ttm/ttm_bo_util.c | 2 +- > drivers/gpu/drm/ttm/ttm_bo_vm.c | 9 +++++---- > drivers/gpu/drm/virtio/virtgpu_prime.c | 3 --- > drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 4 ++-- > drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 4 ++-- > 14 files changed, 21 insertions(+), 27 deletions(-) Hi Gerd, I've been seeing a regression on Nouveau with recent linux-next releases and git bisect points at this commit as the first bad one. If I revert it (there's a tiny conflict with a patch that was merged subsequently), things are back to normal. I think the reason for this issue is that Nouveau doesn't use GEM objects for all buffer objects, and even when it uses GEM objects, the code will not initialize the GEM object until after the buffer objects and the backing TTM objects have been created. I tried to fix that by making sure drm_gem_object_init() gets called by Nouveau before ttm_bo_init(), but the changes are fairly involved and I was unable to get the GEM reference counting right. I can look into the proper fix some more, but it might be worth reverting this patch for now to get Nouveau working again. Thierry > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h b/drivers/gpu/drm= /amd/amdgpu/amdgpu_object.h > index 645a189d365c..113fb2feb437 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.h > @@ -191,7 +191,7 @@ static inline unsigned amdgpu_bo_gpu_page_alignment(s= truct amdgpu_bo *bo) > */ > static inline u64 amdgpu_bo_mmap_offset(struct amdgpu_bo *bo) > { > - return drm_vma_node_offset_addr(&bo->tbo.vma_node); > + return drm_vma_node_offset_addr(&bo->tbo.base.vma_node); > } > =20 > /** > diff --git a/drivers/gpu/drm/qxl/qxl_object.h b/drivers/gpu/drm/qxl/qxl_o= bject.h > index b812d4ae9d0d..8ae54ba7857c 100644 > --- a/drivers/gpu/drm/qxl/qxl_object.h > +++ b/drivers/gpu/drm/qxl/qxl_object.h > @@ -60,7 +60,7 @@ static inline unsigned long qxl_bo_size(struct qxl_bo *= bo) > =20 > static inline u64 qxl_bo_mmap_offset(struct qxl_bo *bo) > { > - return drm_vma_node_offset_addr(&bo->tbo.vma_node); > + return drm_vma_node_offset_addr(&bo->tbo.base.vma_node); > } > =20 > static inline int qxl_bo_wait(struct qxl_bo *bo, u32 *mem_type, > diff --git a/drivers/gpu/drm/radeon/radeon_object.h b/drivers/gpu/drm/rad= eon/radeon_object.h > index 9ffd8215d38a..e5554bf9140e 100644 > --- a/drivers/gpu/drm/radeon/radeon_object.h > +++ b/drivers/gpu/drm/radeon/radeon_object.h > @@ -116,7 +116,7 @@ static inline unsigned radeon_bo_gpu_page_alignment(s= truct radeon_bo *bo) > */ > static inline u64 radeon_bo_mmap_offset(struct radeon_bo *bo) > { > - return drm_vma_node_offset_addr(&bo->tbo.vma_node); > + return drm_vma_node_offset_addr(&bo->tbo.base.vma_node); > } > =20 > extern int radeon_bo_wait(struct radeon_bo *bo, u32 *mem_type, > diff --git a/drivers/gpu/drm/virtio/virtgpu_drv.h b/drivers/gpu/drm/virti= o/virtgpu_drv.h > index f4ecea6054ba..e28829661724 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drv.h > +++ b/drivers/gpu/drm/virtio/virtgpu_drv.h > @@ -396,7 +396,7 @@ static inline void virtio_gpu_object_unref(struct vir= tio_gpu_object **bo) > =20 > static inline u64 virtio_gpu_object_mmap_offset(struct virtio_gpu_object= *bo) > { > - return drm_vma_node_offset_addr(&bo->tbo.vma_node); > + return drm_vma_node_offset_addr(&bo->tbo.base.vma_node); > } > =20 > static inline int virtio_gpu_object_reserve(struct virtio_gpu_object *bo, > diff --git a/include/drm/ttm/ttm_bo_api.h b/include/drm/ttm/ttm_bo_api.h > index fa050f0328ab..7ffc50a3303d 100644 > --- a/include/drm/ttm/ttm_bo_api.h > +++ b/include/drm/ttm/ttm_bo_api.h > @@ -152,7 +152,6 @@ struct ttm_tt; > * @ddestroy: List head for the delayed destroy list. > * @swap: List head for swap LRU list. > * @moving: Fence set when BO is moving > - * @vma_node: Address space manager node. > * @offset: The current GPU offset, which can have different meanings > * depending on the memory type. For SYSTEM type memory, it should be 0. > * @cur_placement: Hint of current placement. > @@ -219,9 +218,6 @@ struct ttm_buffer_object { > */ > =20 > struct dma_fence *moving; > - > - struct drm_vma_offset_node vma_node; > - > unsigned priority; > =20 > /** > diff --git a/drivers/gpu/drm/drm_gem_vram_helper.c b/drivers/gpu/drm/drm_= gem_vram_helper.c > index fc13920b3cb4..fd751078bae1 100644 > --- a/drivers/gpu/drm/drm_gem_vram_helper.c > +++ b/drivers/gpu/drm/drm_gem_vram_helper.c > @@ -168,7 +168,7 @@ EXPORT_SYMBOL(drm_gem_vram_put); > */ > u64 drm_gem_vram_mmap_offset(struct drm_gem_vram_object *gbo) > { > - return drm_vma_node_offset_addr(&gbo->bo.vma_node); > + return drm_vma_node_offset_addr(&gbo->bo.base.vma_node); > } > EXPORT_SYMBOL(drm_gem_vram_mmap_offset); > =20 > diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/= nouveau/nouveau_display.c > index fc8f5bb73ca8..98afc50162e9 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_display.c > +++ b/drivers/gpu/drm/nouveau/nouveau_display.c > @@ -675,7 +675,7 @@ nouveau_display_dumb_map_offset(struct drm_file *file= _priv, > gem =3D drm_gem_object_lookup(file_priv, handle); > if (gem) { > struct nouveau_bo *bo =3D nouveau_gem_object(gem); > - *poffset =3D drm_vma_node_offset_addr(&bo->bo.vma_node); > + *poffset =3D drm_vma_node_offset_addr(&bo->bo.base.vma_node); > drm_gem_object_put_unlocked(gem); > return 0; > } > diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouv= eau/nouveau_gem.c > index 2f484ab7dbca..b1e4852810ed 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_gem.c > +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c > @@ -240,7 +240,7 @@ nouveau_gem_info(struct drm_file *file_priv, struct d= rm_gem_object *gem, > } > =20 > rep->size =3D nvbo->bo.mem.num_pages << PAGE_SHIFT; > - rep->map_handle =3D drm_vma_node_offset_addr(&nvbo->bo.vma_node); > + rep->map_handle =3D drm_vma_node_offset_addr(&nvbo->bo.base.vma_node); > rep->tile_mode =3D nvbo->mode; > rep->tile_flags =3D nvbo->contig ? 0 : NOUVEAU_GEM_TILE_NONCONTIG; > if (cli->device.info.family >=3D NV_DEVICE_INFO_V0_FERMI) > diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > index ceff153f7e68..3e0a0cbc410e 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo.c > +++ b/drivers/gpu/drm/ttm/ttm_bo.c > @@ -672,7 +672,7 @@ static void ttm_bo_release(struct kref *kref) > struct ttm_bo_device *bdev =3D bo->bdev; > struct ttm_mem_type_manager *man =3D &bdev->man[bo->mem.mem_type]; > =20 > - drm_vma_offset_remove(&bdev->vma_manager, &bo->vma_node); > + drm_vma_offset_remove(&bdev->vma_manager, &bo->base.vma_node); > ttm_mem_io_lock(man, false); > ttm_mem_io_free_vm(bo); > ttm_mem_io_unlock(man); > @@ -1343,9 +1343,9 @@ int ttm_bo_init_reserved(struct ttm_bo_device *bdev, > * struct elements we want use regardless. > */ > reservation_object_init(&bo->base._resv); > + drm_vma_node_reset(&bo->base.vma_node); > } > atomic_inc(&bo->bdev->glob->bo_count); > - drm_vma_node_reset(&bo->vma_node); > =20 > /* > * For ttm_bo_type_device buffers, allocate > @@ -1353,7 +1353,7 @@ int ttm_bo_init_reserved(struct ttm_bo_device *bdev, > */ > if (bo->type =3D=3D ttm_bo_type_device || > bo->type =3D=3D ttm_bo_type_sg) > - ret =3D drm_vma_offset_add(&bdev->vma_manager, &bo->vma_node, > + ret =3D drm_vma_offset_add(&bdev->vma_manager, &bo->base.vma_node, > bo->mem.num_pages); > =20 > /* passed reservation objects should already be locked, > @@ -1781,7 +1781,7 @@ void ttm_bo_unmap_virtual_locked(struct ttm_buffer_= object *bo) > { > struct ttm_bo_device *bdev =3D bo->bdev; > =20 > - drm_vma_node_unmap(&bo->vma_node, bdev->dev_mapping); > + drm_vma_node_unmap(&bo->base.vma_node, bdev->dev_mapping); > ttm_mem_io_free_vm(bo); > } > =20 > diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_= bo_util.c > index 05fbcaf6a3f2..f5009c1b6a9c 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo_util.c > +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c > @@ -510,7 +510,7 @@ static int ttm_buffer_object_transfer(struct ttm_buff= er_object *bo, > INIT_LIST_HEAD(&fbo->base.io_reserve_lru); > mutex_init(&fbo->base.wu_mutex); > fbo->base.moving =3D NULL; > - drm_vma_node_reset(&fbo->base.vma_node); > + drm_vma_node_reset(&fbo->base.base.vma_node); > atomic_set(&fbo->base.cpu_writers, 0); > =20 > kref_init(&fbo->base.list_kref); > diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo= _vm.c > index 6dacff49c1cc..fb6875a789b7 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c > +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c > @@ -211,9 +211,9 @@ static vm_fault_t ttm_bo_vm_fault(struct vm_fault *vm= f) > } > =20 > page_offset =3D ((address - vma->vm_start) >> PAGE_SHIFT) + > - vma->vm_pgoff - drm_vma_node_start(&bo->vma_node); > + vma->vm_pgoff - drm_vma_node_start(&bo->base.vma_node); > page_last =3D vma_pages(vma) + vma->vm_pgoff - > - drm_vma_node_start(&bo->vma_node); > + drm_vma_node_start(&bo->base.vma_node); > =20 > if (unlikely(page_offset >=3D bo->num_pages)) { > ret =3D VM_FAULT_SIGBUS; > @@ -267,7 +267,7 @@ static vm_fault_t ttm_bo_vm_fault(struct vm_fault *vm= f) > } else if (unlikely(!page)) { > break; > } > - page->index =3D drm_vma_node_start(&bo->vma_node) + > + page->index =3D drm_vma_node_start(&bo->base.vma_node) + > page_offset; > pfn =3D page_to_pfn(page); > } > @@ -413,7 +413,8 @@ static struct ttm_buffer_object *ttm_bo_vm_lookup(str= uct ttm_bo_device *bdev, > =20 > node =3D drm_vma_offset_lookup_locked(&bdev->vma_manager, offset, pages= ); > if (likely(node)) { > - bo =3D container_of(node, struct ttm_buffer_object, vma_node); > + bo =3D container_of(node, struct ttm_buffer_object, > + base.vma_node); > bo =3D ttm_bo_get_unless_zero(bo); > } > =20 > diff --git a/drivers/gpu/drm/virtio/virtgpu_prime.c b/drivers/gpu/drm/vir= tio/virtgpu_prime.c > index 8b3b2caf3364..dc642a884b88 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_prime.c > +++ b/drivers/gpu/drm/virtio/virtgpu_prime.c > @@ -68,8 +68,5 @@ void virtgpu_gem_prime_vunmap(struct drm_gem_object *ob= j, void *vaddr) > int virtgpu_gem_prime_mmap(struct drm_gem_object *obj, > struct vm_area_struct *vma) > { > - struct virtio_gpu_object *bo =3D gem_to_virtio_gpu_obj(obj); > - > - bo->gem_base.vma_node.vm_node.start =3D bo->tbo.vma_node.vm_node.start; > return drm_gem_prime_mmap(obj, vma); > } > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c b/drivers/gpu/drm/vmwgfx/= vmwgfx_bo.c > index 315da41a18b4..5739c6c49c99 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c > @@ -835,7 +835,7 @@ int vmw_bo_alloc_ioctl(struct drm_device *dev, void *= data, > goto out_no_bo; > =20 > rep->handle =3D handle; > - rep->map_handle =3D drm_vma_node_offset_addr(&vbo->base.vma_node); > + rep->map_handle =3D drm_vma_node_offset_addr(&vbo->base.base.vma_node); > rep->cur_gmr_id =3D handle; > rep->cur_gmr_offset =3D 0; > =20 > @@ -1077,7 +1077,7 @@ int vmw_dumb_map_offset(struct drm_file *file_priv, > if (ret !=3D 0) > return -EINVAL; > =20 > - *offset =3D drm_vma_node_offset_addr(&out_buf->base.vma_node); > + *offset =3D drm_vma_node_offset_addr(&out_buf->base.base.vma_node); > vmw_bo_unreference(&out_buf); > return 0; > } > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c b/drivers/gpu/drm/vm= wgfx/vmwgfx_surface.c > index 219471903bc1..3a6da3b66484 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c > @@ -1669,7 +1669,7 @@ vmw_gb_surface_define_internal(struct drm_device *d= ev, > rep->backup_size =3D res->backup_size; > if (res->backup) { > rep->buffer_map_handle =3D > - drm_vma_node_offset_addr(&res->backup->base.vma_node); > + drm_vma_node_offset_addr(&res->backup->base.base.vma_node); > rep->buffer_size =3D res->backup->base.num_pages * PAGE_SIZE; > rep->buffer_handle =3D backup_handle; > } else { > @@ -1745,7 +1745,7 @@ vmw_gb_surface_reference_internal(struct drm_device= *dev, > rep->crep.backup_size =3D srf->res.backup_size; > rep->crep.buffer_handle =3D backup_handle; > rep->crep.buffer_map_handle =3D > - drm_vma_node_offset_addr(&srf->res.backup->base.vma_node); > + drm_vma_node_offset_addr(&srf->res.backup->base.base.vma_node); > rep->crep.buffer_size =3D srf->res.backup->base.num_pages * PAGE_SIZE; > =20 > rep->creq.version =3D drm_vmw_gb_surface_v1; > --=20 > 2.18.1 >=20 > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx --tKW2IUtsqtDRztdT Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAl1S0xAACgkQ3SOs138+ s6EgVA//UpqDE4LMXsS9tr5P4hW4aXeIuY1uiNEyYx+15t1vb6jY5soPOlosXy6j qA4qYVBczFCycwulg3rzITwZo1YpWKgCQGDzwrt9rHLYOH0rGIRkWezlYkiB3TKb FKTcOioHEuR61wq940Ug9d4mYorSn3APRGh73ftKdsouskrqlBPr17wthobs5cGT nq4DyEZEQ1ugM+PNbM2Xir8cdoIGvGo4Yx/Se1J3ua357xO3seRsKlW4N9PYqF8y FyWExIed7iHjSbA4CqHiyD3bswHnyKcPlEcezEWAXdFMfgF2/WwTRzQrG/DjlySp +FCGq1/S/cPX70ky81OPrO0UOw9Vd/jSy69H37MORQwpmEDFkb3vGxbg9cM1zZEK URIls38z/VzvGza3ivvs0bkAk0fNvP6vOKFMpV+m0v+y2jS/J85Uqa05ankuYsdL yBDI54eheOIyMvq3T9MPOpFy4wTz4Ud04PLiEdGJEdwXE2oTYrNyy5v/Ap2PE/Wx OWzYKa335H4ECZMl/mA2wh47LPiX+W5s3w98q31qbrQm/r3+9/qNQGrdLbUGjFOu iF7q0E+051KFoW7msmpmsI2puRAiZHIiv2qwP87svcpSa3AYu1JTenxbrwZ6AvlI 5rOgC37SnHumsivOjxMxmlr4NtcEsr4uOETcJRBU8Q4nzA4u4xQ= =7v7k -----END PGP SIGNATURE----- --tKW2IUtsqtDRztdT--