On Mon, 10 Feb 2025 20:37:45 +0100 David Hildenbrand <david@xxxxxxxxxx> wrote: > The single "real" user in the tree of make_device_exclusive_range() always > requests making only a single address exclusive. The current implementation > is hard to fix for properly supporting anonymous THP / large folios and > for avoiding messing with rmap walks in weird ways. > > So let's always process a single address/page and return folio + page to > minimize page -> folio lookups. This is a preparation for further > changes. > > Reject any non-anonymous or hugetlb folios early, directly after GUP. > > While at it, extend the documentation of make_device_exclusive() to > clarify some things. x86_64 allmodconfig: drivers/gpu/drm/nouveau/nouveau_svm.c: In function 'nouveau_atomic_range_fault': drivers/gpu/drm/nouveau/nouveau_svm.c:612:68: error: 'folio' undeclared (first use in this function) 612 | page = make_device_exclusive(mm, start, drm->dev, &folio); | ^~~~~ drivers/gpu/drm/nouveau/nouveau_svm.c:612:68: note: each undeclared identifier is reported only once for each function it appears in