start sorting out the ZONE_DEVICE refcount mess

From: Christoph Hellwig
Date: Mon Feb 07 2022 - 01:41:00 EST


Hi all,

this series removes the offset by one refcount for ZONE_DEVICE pages
that are freed back to the driver owning them, which is just device
private ones for now, but also the planned device coherent pages
and the ehanced p2p ones pending.

It does not address the fsdax pages yet, which will be attacked in a
follow on series.

Diffstat:
arch/arm64/mm/mmu.c | 1
arch/powerpc/kvm/book3s_hv_uvmem.c | 1
drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 2
drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 1
drivers/gpu/drm/drm_cache.c | 2
drivers/gpu/drm/nouveau/nouveau_dmem.c | 3 -
drivers/gpu/drm/nouveau/nouveau_svm.c | 1
drivers/infiniband/core/rw.c | 1
drivers/nvdimm/pmem.h | 1
drivers/nvme/host/pci.c | 1
drivers/nvme/target/io-cmd-bdev.c | 1
fs/Kconfig | 2
fs/fuse/virtio_fs.c | 1
include/linux/hmm.h | 9 ----
include/linux/memremap.h | 22 +++++++++-
include/linux/mm.h | 59 ++++-------------------------
lib/test_hmm.c | 4 +
mm/Kconfig | 4 -
mm/internal.h | 2
mm/memcontrol.c | 11 +----
mm/memremap.c | 63 ++++++++++++++++---------------
mm/migrate.c | 6 --
mm/swap.c | 49 ++----------------------
23 files changed, 90 insertions(+), 157 deletions(-)