mm/hmm: use device_private_entry_to_pfn()
authorJason Gunthorpe <jgg@mellanox.com>
Fri, 27 Mar 2020 20:00:18 +0000 (17:00 -0300)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 30 Mar 2020 19:58:36 +0000 (16:58 -0300)
swp_offset() should not be called directly, the wrappers are supposed to
abstract away the encoding of the device_private specific information in
the swap entry.

Link: https://lore.kernel.org/r/20200327200021.29372-7-jgg@ziepe.ca
Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Ralph Campbell <rcampbell@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
mm/hmm.c

index 8dbd9e1..53192c3 100644 (file)
--- a/mm/hmm.c
+++ b/mm/hmm.c
@@ -267,7 +267,7 @@ static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr,
                 */
                if (hmm_is_device_private_entry(range, entry)) {
                        *pfn = hmm_device_entry_from_pfn(range,
-                                           swp_offset(entry));
+                               device_private_entry_to_pfn(entry));
                        *pfn |= range->flags[HMM_PFN_VALID];
                        if (is_write_device_private_entry(entry))
                                *pfn |= range->flags[HMM_PFN_WRITE];