+int __must_check try_grab_folio(struct folio *folio, int refs, unsigned int flags)
Overly long line (same for the external declaration)
- struct page *page = &folio->page;
Page is only used for is_pci_p2pdma_page and is_zero_page, and for the latter a is_zero_folio already exist. Maybe remove the local variable, use is_zero_folio and just open code the dereference in the is_pci_p2pdma_page call?
ret = gup_hugepte(vma, ptep, sz, addr, end, flags, pages, nr, fast);
Overly lone line.
folio_ref_add(folio,
refs * (GUP_PIN_COUNTING_BIAS - 1));
Nit: this easily fits onto a single line.
if (gup_hugepd(NULL, __hugepd(pmd_val(pmd)), addr,
PMD_SHIFT, next, flags, pages, nr) != 1)
PMD_SHIFT, next, flags, pages, nr, true) != 1)
Overly long lin (same in the similar calls below)