Patch "drm/nouveau/gem: return only valid domain when there's only one" has been added to the 4.2-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
drm/nouveau/gem: return only valid domain when there's only one
to the 4.2-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-nouveau-gem-return-only-valid-domain-when-there-s-only-one.patch
and it can be found in the queue-4.2 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
2a6c521bb41ce862e43db46f52e7681d33e8d771Mon Sep 17 00:00:00 2001
From: Ilia Mirkin <[email protected]>
Date: Tue, 20 Oct 2015 01:15:39 -0400
Subject: drm/nouveau/gem: return only valid domain when there's only one
From: Ilia Mirkin <[email protected]>
commit 2a6c521bb41ce862e43db46f52e7681d33e8d771 upstream.
On nv50+, we restrict the valid domains to just the one where the buffer was originally created. However after the buffer is evicted to system memory, we might move it back to a different domain that was not originally valid. When sharing the buffer and retrieving its GEM_INFO data, we still want the domain that will be valid for this buffer in a pushbuf, not the one where it currently happens to be.
This resolves fdo#92504 and several others. These are due to suspend evicting all buffers, making it more likely that they temporarily end up in the wrong place.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92504
--- drivers/gpu/drm/nouveau/nouveau_gem.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/gpu/drm/nouveau/nouveau_gem.c +3 -2
@@ -227,11 +227,12 @@ nouveau_gem_info(struct drm_file *file_pstruct nouveau_bo *nvbo =nouveau_gem_object (gem);struct nvkm_vma *vma; -if (nvbo->bo.mem.mem_type ==TTM_PL_TT ) +if (is_power_of_2 (nvbo->valid_domains)) + rep->domain = nvbo->valid_domains; +else if (nvbo->bo.mem.mem_type ==TTM_PL_TT ) rep->domain =NOUVEAU_GEM_DOMAIN_GART ;else rep->domain =NOUVEAU_GEM_DOMAIN_VRAM ; - rep->offset = nvbo->bo.offset;if (cli->vm) { vma =nouveau_bo_vma_find (nvbo, cli->vm);
Patches currently in stable-queue which might be from [email protected] are
queue-4.2/drm-nouveau-gem-return-only-valid-domain-when-there-s-only-one.patch