OSDN Git Service

drm/etnaviv: trick drm_mm into giving out a low IOVA
authorLucas Stach <l.stach@pengutronix.de>
Mon, 12 Dec 2016 15:15:17 +0000 (16:15 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Jul 2017 12:40:24 +0000 (14:40 +0200)
commitb8c5e7b1241362a131a2364fd166f8c8fdd9b363
treef388119c0a89f356aefe92ba1f7db7563c6fb38a
parent2bc8fcd633d8e7d59a242eb4d86fbebb8cf7ff61
drm/etnaviv: trick drm_mm into giving out a low IOVA

[ 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