On Sun, 1 Dec 2024 03:03:41 +0200 Dafna Hirschfeld <dafna.hirschfeld@xxxxxxxxx> wrote: > The error ENOSPC is translated in vmf_error to VM_FAULT_SIGBUS which is > further translated in EFAULT in i.e. pin/get_user_pages. > But when running out of pages/hugepages we expect to see ENOMEM and > not EFAULT. > > ... > > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -3113,7 +3113,7 @@ struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, > if (!memcg_charge_ret) > mem_cgroup_cancel_charge(memcg, nr_pages); > mem_cgroup_put(memcg); > - return ERR_PTR(-ENOSPC); > + return ERR_PTR(-ENOMEM); > } > > int alloc_bootmem_huge_page(struct hstate *h, int nid) err, yes. ENOSPC is for disk drives! I'll slap a cc:stable on this fix for a decade old bug.