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).