Re: [PATCH 1/2] drm: replace drm_[cm]alloc* by kvmalloc alternatives

From: Chris Wilson
Date: Wed May 17 2017 - 03:40:11 EST

On Wed, May 17, 2017 at 08:55:08AM +0200, Michal Hocko wrote:
> From: Michal Hocko <mhocko@xxxxxxxx>
> drm_[cm]alloc* has grown their own kvmalloc with vmalloc fallback
> implementations. MM has grown kvmalloc* helpers in the meantime. Let's
> use those because it a) reduces the code and b) MM has a better idea
> how to implement fallbacks (e.g. do not vmalloc before kmalloc is tried
> with __GFP_NORETRY).
> drm_calloc_large needs to get __GFP_ZERO explicitly but it is the same
> thing as kvmalloc_array in principle.
> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>

Just a little surprised that calloc_large users still exist.

Reviewed-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>

One more feature request from mm, can we have the
if (size != 0 && n > SIZE_MAX / size)
check exported by itself. It is used by both kvmalloc_array and
kmalloc_array, and in my ioctls I have it open-coded as well to
differentiate between the -EINVAL (for bogus user values) and
genuine -ENOMEM.

Chris Wilson, Intel Open Source Technology Centre