remove alloc_vm_area

From: Christoph Hellwig
Date: Fri Sep 18 2020 - 12:39:59 EST

Hi Andrew,

this series removes alloc_vm_area, which was left over from the big
vmalloc interface rework. It is a rather arkane interface, basicaly
the equivalent of get_vm_area + actually faulting in all PTEs in
the allocated area. It was originally addeds for Xen (which isn't
modular to start with), and then grew users in zsmalloc and i915
which seems to mostly qualify as abuses of the interface, especially
for i915 as a random driver should not set up PTE bits directly.

Note that my laptop doesn't seem to actually exercise the new vmap_pfn
path, so careful review from the i915 maintainers is very welcome.

Also I wonder why zsmalloc is even doing the manual allocation of kernel
virtual address space plus mapping into it. IMHO zsmalloc should be
using our normal vm_map_ram / vm_unmap_ram interface instead of being so
special, which would also allow building it as a module again for the
virtual mapping case.

arch/x86/xen/grant-table.c | 27 +++++---
drivers/gpu/drm/i915/Kconfig | 1
drivers/gpu/drm/i915/gem/i915_gem_pages.c | 101 +++++++++++++-----------------
drivers/gpu/drm/i915/gt/shmem_utils.c | 90 +++++++++++---------------
drivers/xen/xenbus/xenbus_client.c | 30 ++++----
include/linux/vmalloc.h | 6 -
mm/Kconfig | 3
mm/nommu.c | 7 --
mm/vmalloc.c | 93 +++++++++++++--------------
mm/zsmalloc.c | 2
10 files changed, 172 insertions(+), 188 deletions(-)