On 15.06.20 03:01, Jianqun Xu wrote: > In some case the cma area could not be activated, but the cma_alloc be > used under this case, then the kernel will crash caused by NULL pointer > dereference. > > Add bitmap valid check in cma_alloc to avoid this issue. > > Signed-off-by: Jianqun Xu <jay.xu@xxxxxxxxxxxxxx> > --- > mm/cma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/cma.c b/mm/cma.c > index 0463ad2ce06b..488496fa2972 100644 > --- a/mm/cma.c > +++ b/mm/cma.c > @@ -425,7 +425,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, > struct page *page = NULL; > int ret = -ENOMEM; > > - if (!cma || !cma->count) > + if (!cma || !cma->count || !cma->bitmap) > return NULL; > > pr_debug("%s(cma %p, count %zu, align %d)\n", __func__, (void *)cma, > If cma_activate_area() fails, cma_init_reserved_areas() fails. AFAIKS, init/main.c will ignore any errors via do_one_initcall(). So this seems to be possible. Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> -- Thanks, David / dhildenb