> On 06/13/22 at 12:00pm, Uladzislau Rezki wrote: > > > vmalloc does not allocate a vm_struct for vm_map_ram() areas. That causes > > > us to deny usercopies from those areas. This affects XFS which uses > > > vm_map_ram() for its directories. > > > > > > Fix this by calling find_vmap_area() instead of find_vm_area(). > > > > > > Fixes: 0aef499f3172 ("mm/usercopy: Detect vmalloc overruns") > > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > > > --- > > > include/linux/vmalloc.h | 1 + > > > mm/usercopy.c | 8 +++++--- > > > mm/vmalloc.c | 2 +- > > > 3 files changed, 7 insertions(+), 4 deletions(-) > > > > > > diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h > > > index b159c2789961..096d48aa3437 100644 > > > --- a/include/linux/vmalloc.h > > > +++ b/include/linux/vmalloc.h > > > @@ -215,6 +215,7 @@ extern struct vm_struct *__get_vm_area_caller(unsigned long size, > > > void free_vm_area(struct vm_struct *area); > > > extern struct vm_struct *remove_vm_area(const void *addr); > > > extern struct vm_struct *find_vm_area(const void *addr); > > > +struct vmap_area *find_vmap_area(unsigned long addr); > > Make it "extern" since it becomes globally visible? > > extern is not suggested any more to add for function declaration in > header file, and removing it doesn't impact thing. > OK, thanks for the hint: Reviewed-by: Uladzislau Rezki (Sony) <urezki@xxxxxxxxx> -- Uladzislau Rezki