]> git.baikalelectronics.ru Git - kernel.git/commitdiff
nouveau: fix migrate_to_ram() for faulting page
authorAlistair Popple <apopple@nvidia.com>
Wed, 19 Oct 2022 12:29:34 +0000 (23:29 +1100)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 21 Oct 2022 04:27:24 +0000 (21:27 -0700)
Commit d7405e828be4 ("mm/memory.c: fix race when faulting a device private
page") changed the migrate_to_ram() callback to take a reference on the
device page to ensure it can't be freed while handling the fault.
Unfortunately the corresponding update to Nouveau to accommodate this
change was inadvertently dropped from that patch causing GPU to CPU
migration to fail so add it here.

Link: https://lkml.kernel.org/r/20221019122934.866205-1-apopple@nvidia.com
Fixes: d7405e828be4 ("mm/memory.c: fix race when faulting a device private page")
Signed-off-by: Alistair Popple <apopple@nvidia.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Ralph Campbell <rcampbell@nvidia.com>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/gpu/drm/nouveau/nouveau_dmem.c

index 5fe209107246f242514dc070be12cf77a5719893..20fe53815b20f9d5aca35ffe5727debb83e92ff3 100644 (file)
@@ -176,6 +176,7 @@ static vm_fault_t nouveau_dmem_migrate_to_ram(struct vm_fault *vmf)
                .src            = &src,
                .dst            = &dst,
                .pgmap_owner    = drm->dev,
+               .fault_page     = vmf->page,
                .flags          = MIGRATE_VMA_SELECT_DEVICE_PRIVATE,
        };