Re: [PATCH] mm/cma: Fix crash on CMA allocation if bitmap allocation fails

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

 



On Mon, 25 Mar 2019 16:13:09 +0800 Yue Hu <zbestahu@xxxxxxxxx> wrote:

> From: Yue Hu <huyue2@xxxxxxxxxx>
> 
> A previous commit f022d8cb7ec7 ("mm: cma: Don't crash on allocation
> if CMA area can't be activated") fixes the crash issue when activation
> fails via setting cma->count as 0, same logic exists if bitmap
> allocation fails.
> 
> --- a/mm/cma.c
> +++ b/mm/cma.c
> @@ -106,8 +106,10 @@ static int __init cma_activate_area(struct cma *cma)
>  
>  	cma->bitmap = kzalloc(bitmap_size, GFP_KERNEL);
>  
> -	if (!cma->bitmap)
> +	if (!cma->bitmap) {
> +		cma->count = 0;
>  		return -ENOMEM;
> +	}
>  
>  	WARN_ON_ONCE(!pfn_valid(pfn));
>  	zone = page_zone(pfn_to_page(pfn));

I'm unsure whether this is needed.

kmalloc() within __init code is generally considered to be a "can't
fail".

If this was the only issue then I guess I'd take the patch if only for
documentation/clarity purposes.  But cma_areas[] is in bss and is
guaranteed to be all-zeroes, so I suspect this bug is a can't-happen. 
And we could revert f022d8cb7ec7 if we could be bothered (I can't).





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux