Re: [PATCH] drm: use size_t variables to iterate through pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 03, 2017 at 09:38:11AM -0600, Jordan Crouse wrote:
> drm_gem_get_pages() and drm_gem_put_pages() calculate the number
> of pages to operate on from obj->size which is a size_t.  Use
> similarly sized variables to calculate and iterate through the
> pages to avoid possibly losing bits from the page calculation.
> 
> Signed-off-by: Jordan Crouse <jcrouse@xxxxxxxxxxxxxx>

Not sure it wouldn't be better to move over to u64? In theory you could
have a gpu with huge amounts of vram on a 32bit kernel, like PAE.

There's also rough consensus that size_t is just an all-around evil type
for anything :-)

Still an issue of course, just probably with a differen (and likely more
invasive) fix.
-Daniel

> ---
>  drivers/gpu/drm/drm_gem.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
> index af62017..a8c146d 100644
> --- a/drivers/gpu/drm/drm_gem.c
> +++ b/drivers/gpu/drm/drm_gem.c
> @@ -550,7 +550,7 @@ struct page **drm_gem_get_pages(struct drm_gem_object *obj)
>  {
>  	struct address_space *mapping;
>  	struct page *p, **pages;
> -	int i, npages;
> +	size_t i, npages;
>  
>  	/* This is the shared memory object that backs the GEM resource */
>  	mapping = obj->filp->f_mapping;
> @@ -603,7 +603,7 @@ struct page **drm_gem_get_pages(struct drm_gem_object *obj)
>  void drm_gem_put_pages(struct drm_gem_object *obj, struct page **pages,
>  		bool dirty, bool accessed)
>  {
> -	int i, npages;
> +	size_t i, npages;
>  
>  	/* We already BUG_ON() for non-page-aligned sizes in
>  	 * drm_gem_object_init(), so we should never hit this unless
> -- 
> 1.9.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux