[PATCH v2 27/40] drm: Add asserts to catch overflow in drm_mm_init() and drm_mm_init_scan()

Joonas Lahtinen joonas.lahtinen at linux.intel.com
Fri Dec 16 13:10:12 UTC 2016


On pe, 2016-12-16 at 07:47 +0000, Chris Wilson wrote:
> A simple assert to ensure that we don't overflow start + size when
> initialising the drm_mm, or its scanner.
> 
> In future, we may want to switch to tracking the value of ranges (rather
> than size) so that we can cover the full u64, for example like resource
> tracking.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

<SNIP>

> @@ -729,6 +729,8 @@ void drm_mm_init_scan(struct drm_mm *mm,
>  		      u64 alignment,
>  		      unsigned long color)
>  {
> +	DRM_MM_BUG_ON(size == 0);

Nitpicking, DIM will complain that this should be !size.

> +
> >  	mm->scan_color = color;
> >  	mm->scan_alignment = alignment;
> >  	mm->scan_size = size;
> @@ -764,6 +766,9 @@ void drm_mm_init_scan_with_range(struct drm_mm *mm,
>  				 u64 start,
>  				 u64 end)
>  {

Ditto, could have simply DRM_MM_BUG_ON(!size);

Reviewed-by: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>

Regards, Joonas

> +	DRM_MM_BUG_ON(start >= end);
> +	DRM_MM_BUG_ON(size == 0 || size > end - start);
> +
-- 
Joonas Lahtinen
Open Source Technology Center
Intel Corporation


More information about the dri-devel mailing list