* Patch "drm/etnaviv: trick drm_mm into giving out a low IOVA" has been added to the 4.9-stable tree
@ 2017-07-03 11:28 gregkh
0 siblings, 0 replies; only message in thread
From: gregkh @ 2017-07-03 11:28 UTC (permalink / raw)
To: l.stach, alexander.levin, gregkh, laanwj; +Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
drm/etnaviv: trick drm_mm into giving out a low IOVA
to the 4.9-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-etnaviv-trick-drm_mm-into-giving-out-a-low-iova.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From foo@baz Mon Jul 3 13:22:04 CEST 2017
From: Lucas Stach <l.stach@pengutronix.de>
Date: Mon, 12 Dec 2016 16:15:17 +0100
Subject: drm/etnaviv: trick drm_mm into giving out a low IOVA
From: Lucas Stach <l.stach@pengutronix.de>
[ Upstream commit 3546fb0cdac25a79c89d87020566fab52b92867d ]
After rollover of the IOVA space, we want to get a low IOVA address,
otherwise the the games we play by remembering the last IOVA are
pointless. When we search for a free hole with DRM_MM_SEARCH_DEFAULT,
drm_mm will pop the next entry from the free holes stack, which will
likely be a high IOVA. By using DRM_MM_SEARCH_BELOW we can trick
drm_mm into reversing the search and provide us with a low IOVA.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Wladimir van der Laan <laanwj@gmail.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/etnaviv/etnaviv_mmu.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
--- a/drivers/gpu/drm/etnaviv/etnaviv_mmu.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_mmu.c
@@ -116,9 +116,14 @@ static int etnaviv_iommu_find_iova(struc
struct list_head list;
bool found;
+ /*
+ * XXX: The DRM_MM_SEARCH_BELOW is really a hack to trick
+ * drm_mm into giving out a low IOVA after address space
+ * rollover. This needs a proper fix.
+ */
ret = drm_mm_insert_node_in_range(&mmu->mm, node,
size, 0, mmu->last_iova, ~0UL,
- DRM_MM_SEARCH_DEFAULT);
+ mmu->last_iova ? DRM_MM_SEARCH_DEFAULT : DRM_MM_SEARCH_BELOW);
if (ret != -ENOSPC)
break;
Patches currently in stable-queue which might be from l.stach@pengutronix.de are
queue-4.9/drm-etnaviv-trick-drm_mm-into-giving-out-a-low-iova.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-07-03 11:28 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-03 11:28 Patch "drm/etnaviv: trick drm_mm into giving out a low IOVA" has been added to the 4.9-stable tree gregkh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox