On Wed, Jun 20, 2018 at 03:09:28PM -0700, Rick Edgecombe wrote:
>  
>  /**
> + *   __vmalloc_try_addr  -  try to alloc at a specific address
> + *   @addr:          address to try
> + *   @size:          size to try
> + *   @gfp_mask:      flags for the page level allocator
> + *   @prot:          protection mask for the allocated pages
> + *   @vm_flags:      additional vm area flags (e.g. %VM_NO_GUARD)
> + *   @node:          node to use for allocation or NUMA_NO_NODE
> + *   @caller:        caller's return address
> + *
> + *   Try to allocate at the specific address. If it succeeds the address is
> + *   returned. If it fails NULL is returned.  It may trigger TLB flushes.

 * Try to allocate memory at a specific address.  May trigger TLB flushes.
 *
 * Context: Process context.
 * Return: The allocated address if it succeeds.  NULL if it fails.

> @@ -1759,8 +1795,9 @@ void *__vmalloc_node_range(unsigned long size, unsigned 
> long align,
>       return addr;
>  
>  fail:
> -     warn_alloc(gfp_mask, NULL,
> -                       "vmalloc: allocation failure: %lu bytes", real_size);
> +     if (!(gfp_mask & __GFP_NOWARN))
> +             warn_alloc(gfp_mask, NULL,
> +                     "vmalloc: allocation failure: %lu bytes", real_size);
>       return NULL;

Not needed:

void warn_alloc(gfp_t gfp_mask, nodemask_t *nodemask, const char *fmt, ...)
{
...
        if ((gfp_mask & __GFP_NOWARN) || !__ratelimit(&nopage_rs))
                return;

Reply via email to