On Mon 05-07-21 19:05:37, Uladzislau Rezki (Sony) wrote: > Get rid of gfpflags_allow_blocking() check from the vmalloc() path > as it is supposed to be sleepable anyway. Thus remove it from the > alloc_vmap_area() as well as from the vm_area_alloc_pages(). > > Signed-off-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> Acked-by: Michal Hocko <mhocko@xxxxxxxx> > --- > mm/vmalloc.c | 18 ++++++++---------- > 1 file changed, 8 insertions(+), 10 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 5297958ac7c5..93a9cbdba905 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -1479,6 +1479,7 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, > int node, gfp_t gfp_mask) > { > struct vmap_area *va; > + unsigned long freed; > unsigned long addr; > int purged = 0; > int ret; > @@ -1542,13 +1543,12 @@ static struct vmap_area *alloc_vmap_area(unsigned long size, > goto retry; > } > > - if (gfpflags_allow_blocking(gfp_mask)) { > - unsigned long freed = 0; > - blocking_notifier_call_chain(&vmap_notify_list, 0, &freed); > - if (freed > 0) { > - purged = 0; > - goto retry; > - } > + freed = 0; > + blocking_notifier_call_chain(&vmap_notify_list, 0, &freed); > + > + if (freed > 0) { > + purged = 0; > + goto retry; > } > > if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit()) > @@ -2834,9 +2834,7 @@ vm_area_alloc_pages(gfp_t gfp, int nid, > for (i = 0; i < (1U << order); i++) > pages[nr_allocated + i] = page + i; > > - if (gfpflags_allow_blocking(gfp)) > - cond_resched(); > - > + cond_resched(); > nr_allocated += 1U << order; > } > > -- > 2.20.1 -- Michal Hocko SUSE Labs