• Alistair Popple's avatar
    mm/migrate_device.c: refactor migrate_vma and migrate_deivce_coherent_page() · 241f6885
    Alistair Popple authored
    migrate_device_coherent_page() reuses the existing migrate_vma family of
    functions to migrate a specific page without providing a valid mapping or
    vma.  This looks a bit odd because it means we are calling migrate_vma_*()
    without setting a valid vma, however it was considered acceptable at the
    time because the details were internal to migrate_device.c and there was
    only a single user.
    
    One of the reasons the details could be kept internal was that this was
    strictly for migrating device coherent memory.  Such memory can be copied
    directly by the CPU without intervention from a driver.  However this
    isn't true for device private memory, and a future change requires similar
    functionality for device private memory.  So refactor the code into
    something more sensible for migrating device memory without a vma.
    
    Link: https://lkml.kernel.org/r/c7b2ff84e9b33d022cf4a40f87d051f281a16d8f.1664366292.git-series.apopple@nvidia.comSigned-off-by: default avatarAlistair Popple <apopple@nvidia.com>
    Cc: "Huang, Ying" <ying.huang@intel.com>
    Cc: Zi Yan <ziy@nvidia.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Yang Shi <shy828301@gmail.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Ralph Campbell <rcampbell@nvidia.com>
    Cc: John Hubbard <jhubbard@nvidia.com>
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: Alex Sierra <alex.sierra@amd.com>
    Cc: Ben Skeggs <bskeggs@redhat.com>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Felix Kuehling <Felix.Kuehling@amd.com>
    Cc: Jason Gunthorpe <jgg@nvidia.com>
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    241f6885
migrate_device.c 24.8 KB