On 8/25/21 8:15 PM, Matthew Wilcox wrote: > On Wed, Aug 25, 2021 at 08:10:39PM +0100, Joao Martins wrote: >> @@ -2273,8 +2273,7 @@ static int __gup_device_huge(unsigned long pfn, unsigned long addr, >> refs = record_subpages(page, addr, next, pages + *nr); >> >> SetPageReferenced(head); >> - pinned_head = try_grab_compound_head(head, refs, flags); >> - if (unlikely(!pinned_head)) { >> + if (unlikely(!try_grab_compound_head(head, refs, flags))) { >> if (PageCompound(head)) > > BTW, you can just check PageHead(head). We know it can't be PageTail ... > Ugh, yes. Your comment is also applicable to the other PageCompound() added before, as it's done on the compound head. I've fixed it on both, thanks!