[Xen-devel,for-4.11,v7,00/16] xen: Convert page_to_mfn and mfn_to_page to use typesafe MFN

Message ID 20180403153251.19595-1-julien.grall@arm.com
Headers show
Series
  • xen: Convert page_to_mfn and mfn_to_page to use typesafe MFN
Related show

Message

Julien Grall April 3, 2018, 3:32 p.m.
Hi all,

This is v6 of the series. For all the changes see in each patch.

To avoid the last patch (#16) to be a huge patch some files are converted to
use typesafe upfront. I have tried my best to push _mfn/mfn_x as down as
possible in the callers. Some of them was not feasible without major rework,
so I left them aside for now. Contribution to switch Xen code base to MFN
typesafe are more than welcomed.

Note that changes have only been build test it on x86 so far.

Cheers,

Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Gang Wei <gang.wei@intel.com>
Cc: George Dunlap <george.dunlap@eu.citrix.com>
Cc: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>
Cc: Julien Grall <julien.grall@arm.com>
Cc: Jun Nakajima <jun.nakajima@intel.com>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Paul Durrant <paul.durrant@citrix.com>
Cc: Razvan Cojocaru <rcojocaru@bitdefender.com>
Cc: Shane Wang <shane.wang@intel.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>
Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Cc: Tamas K Lengyel <tamas@tklengyel.com>
Cc: Tim Deegan <tim@xen.org>
Cc: Wei Liu <wei.liu2@citrix.com>

Julien Grall (15):
  xen/arm: setup: use maddr_to_mfn rather than _mfn(paddr_to_pfn(...))
  xen/arm: mm: Use gaddr_to_gfn rather than _gfn(paddr_to_pfn(...))
  xen/arm: mm: Remove unused M2P code
  xen/arm: mm: Remove unused relinquish_shared_pages
  xen/x86: Remove unused override of page_to_mfn/mfn_to_page
  xen/x86: mm: Switch x86/mm.c to use typesafe for virt_to_mfn
  xen/mm: Drop the parameter mfn from populate_pt_range
  xen/pdx: Introduce helper to convert MFN <-> PDX
  xen/mm: Switch map_pages_to_xen to use MFN typesafe
  xen/mm: Switch some of page_alloc.c to typesafe MFN
  xen/mm: Switch common/memory.c to use typesafe MFN
  xen/grant: Switch {create, replace}_grant_p2m_mapping to typesafe MFN
  xen/grant: Switch common/grant_table.c to use typesafe MFN
  xen/x86: Switch mfn_to_page in x86_64/mm.c to use typesafe MFN
  xen: Convert page_to_mfn and mfn_to_page to use typesafe MFN

Wei Liu (1):
  x86/mm: skip incrementing mfn if it is not a valid mfn

 xen/arch/arm/domain_build.c             |   2 -
 xen/arch/arm/kernel.c                   |   2 +-
 xen/arch/arm/mem_access.c               |   2 +-
 xen/arch/arm/mm.c                       |  33 ++++----
 xen/arch/arm/p2m.c                      |  10 +--
 xen/arch/arm/setup.c                    |   4 +-
 xen/arch/x86/cpu/vpmu.c                 |   4 +-
 xen/arch/x86/domain.c                   |  21 ++---
 xen/arch/x86/domain_page.c              |   6 +-
 xen/arch/x86/hvm/dm.c                   |   2 +-
 xen/arch/x86/hvm/dom0_build.c           |   6 +-
 xen/arch/x86/hvm/emulate.c              |   6 +-
 xen/arch/x86/hvm/grant_table.c          |  14 ++--
 xen/arch/x86/hvm/hvm.c                  |  12 +--
 xen/arch/x86/hvm/ioreq.c                |   4 +-
 xen/arch/x86/hvm/stdvga.c               |   2 +-
 xen/arch/x86/hvm/svm/svm.c              |   4 +-
 xen/arch/x86/hvm/viridian.c             |   6 +-
 xen/arch/x86/hvm/vmx/vmcs.c             |   2 +-
 xen/arch/x86/hvm/vmx/vmx.c              |  10 +--
 xen/arch/x86/hvm/vmx/vvmx.c             |   6 +-
 xen/arch/x86/mm.c                       |  75 +++++++++---------
 xen/arch/x86/mm/guest_walk.c            |   6 +-
 xen/arch/x86/mm/hap/guest_walk.c        |   2 +-
 xen/arch/x86/mm/hap/hap.c               |   6 --
 xen/arch/x86/mm/hap/nested_ept.c        |   2 +-
 xen/arch/x86/mm/hap/nested_hap.c        |   3 -
 xen/arch/x86/mm/mem_sharing.c           |   5 --
 xen/arch/x86/mm/p2m-ept.c               |   8 +-
 xen/arch/x86/mm/p2m-pod.c               |   6 --
 xen/arch/x86/mm/p2m-pt.c                |   6 --
 xen/arch/x86/mm/p2m.c                   |   6 --
 xen/arch/x86/mm/paging.c                |   6 --
 xen/arch/x86/mm/shadow/private.h        |  16 +---
 xen/arch/x86/numa.c                     |   2 +-
 xen/arch/x86/physdev.c                  |   2 +-
 xen/arch/x86/pv/callback.c              |   6 --
 xen/arch/x86/pv/descriptor-tables.c     |   6 --
 xen/arch/x86/pv/dom0_build.c            |  14 ++--
 xen/arch/x86/pv/domain.c                |   6 --
 xen/arch/x86/pv/emul-gate-op.c          |   6 --
 xen/arch/x86/pv/emul-priv-op.c          |  10 ---
 xen/arch/x86/pv/grant_table.c           |  16 ++--
 xen/arch/x86/pv/iret.c                  |   6 --
 xen/arch/x86/pv/mm.c                    |   6 --
 xen/arch/x86/pv/ro-page-fault.c         |   6 --
 xen/arch/x86/pv/shim.c                  |   4 +-
 xen/arch/x86/pv/traps.c                 |   6 --
 xen/arch/x86/setup.c                    |  20 ++---
 xen/arch/x86/smpboot.c                  |   8 +-
 xen/arch/x86/tboot.c                    |  15 ++--
 xen/arch/x86/traps.c                    |   4 +-
 xen/arch/x86/x86_64/mm.c                |  67 ++++++++--------
 xen/arch/x86/x86_64/mmconfig_64.c       |   6 +-
 xen/common/domain.c                     |   4 +-
 xen/common/efi/boot.c                   |   2 +-
 xen/common/grant_table.c                | 133 +++++++++++++++++---------------
 xen/common/kimage.c                     |   6 --
 xen/common/memory.c                     |  73 +++++++++++-------
 xen/common/page_alloc.c                 |  58 +++++++-------
 xen/common/tmem.c                       |   2 +-
 xen/common/tmem_xen.c                   |   4 -
 xen/common/trace.c                      |   4 +-
 xen/common/vmap.c                       |  10 +--
 xen/common/xenoprof.c                   |   2 -
 xen/drivers/acpi/apei/erst.c            |   2 +-
 xen/drivers/acpi/apei/hest.c            |   2 +-
 xen/drivers/passthrough/amd/iommu_map.c |  12 +--
 xen/drivers/passthrough/iommu.c         |   2 +-
 xen/drivers/passthrough/vtd/dmar.c      |   2 +-
 xen/drivers/passthrough/x86/iommu.c     |   2 +-
 xen/include/asm-arm/grant_table.h       |  11 ++-
 xen/include/asm-arm/mm.h                |  45 ++++-------
 xen/include/asm-arm/numa.h              |   8 +-
 xen/include/asm-arm/p2m.h               |   4 +-
 xen/include/asm-x86/grant_table.h       |   6 +-
 xen/include/asm-x86/hvm/grant_table.h   |   8 +-
 xen/include/asm-x86/mm.h                |   6 +-
 xen/include/asm-x86/p2m.h               |   2 +-
 xen/include/asm-x86/page.h              |  32 ++++----
 xen/include/asm-x86/pv/grant_table.h    |   8 +-
 xen/include/xen/domain_page.h           |   8 +-
 xen/include/xen/mm.h                    |  10 +--
 xen/include/xen/pdx.h                   |   3 +
 xen/include/xen/tmem_xen.h              |   2 +-
 85 files changed, 430 insertions(+), 564 deletions(-)