From: Thomas Hellstrom Date: Thu, 11 Feb 2010 23:17:59 +0000 (+0100) Subject: drm: Fix a bug in the range manager. X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=775c67090c98780b44c4f95d5c05565df715b8bd;p=openwrt%2Fstaging%2Fblogic.git drm: Fix a bug in the range manager. When searching for free space in a range, the function could return a node extending outside of the given range. Signed-off-by: Thomas Hellstrom Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c index cdec32977129..2ac074c8f5d2 100644 --- a/drivers/gpu/drm/drm_mm.c +++ b/drivers/gpu/drm/drm_mm.c @@ -405,7 +405,8 @@ struct drm_mm_node *drm_mm_search_free_in_range(const struct drm_mm *mm, wasted += alignment - tmp; } - if (entry->size >= size + wasted) { + if (entry->size >= size + wasted && + (entry->start + wasted + size) <= end) { if (!best_match) return entry; if (entry->size < best_size) {